> mutable = new HashMap<>(functionCollection);
-
- mutable.putAll(value.functionCollection);
-
- return new FunctionCollection(skillName, mutable);
+ functionCollection.putAll(value.functionCollection);
+ return this;
}
}
diff --git a/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/CodeTokenizer.java b/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/CodeTokenizer.java
index 31131a1d47..8bda82b9eb 100644
--- a/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/CodeTokenizer.java
+++ b/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/CodeTokenizer.java
@@ -169,10 +169,9 @@ public class CodeTokenizer {
if (currentTokenType == TokenTypes.None) {
if (!spaceSeparatorFound) {
- throw new TemplateException();
- // TODO error code
- // throw new TemplateException(TemplateException.ErrorCodes.SyntaxError,
- // "Tokens must be separated by one space least");
+ throw new TemplateException(
+ TemplateException.ErrorCodes.SyntaxError,
+ "Tokens must be separated by one space least");
}
if (isQuote(currentChar)) {
@@ -205,10 +204,9 @@ public class CodeTokenizer {
break;
case None:
- throw new TemplateException();
- // TODO error code
- // throw new TemplateException(TemplateException.ErrorCodes.SyntaxError,
- // "Tokens must be separated by one space least");
+ throw new TemplateException(
+ TemplateException.ErrorCodes.SyntaxError,
+ "Tokens must be separated by one space least");
}
return blocks;
diff --git a/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/DefaultPromptTemplateEngine.java b/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/DefaultPromptTemplateEngine.java
index 062784c171..ec23f15c37 100644
--- a/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/DefaultPromptTemplateEngine.java
+++ b/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/DefaultPromptTemplateEngine.java
@@ -8,6 +8,9 @@ import com.microsoft.semantickernel.templateengine.blocks.CodeBlock;
import com.microsoft.semantickernel.templateengine.blocks.CodeRendering;
import com.microsoft.semantickernel.templateengine.blocks.TextRendering;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
@@ -25,7 +28,7 @@ import java.util.List;
// immutable when invoked within the template
///
public class DefaultPromptTemplateEngine implements PromptTemplateEngine {
- // private readonly ILogger _log;
+ private static final Logger LOGGER = LoggerFactory.getLogger(DefaultPromptTemplateEngine.class);
private final TemplateTokenizer tokenizer;
@@ -46,9 +49,8 @@ public class DefaultPromptTemplateEngine implements PromptTemplateEngine {
if (validate) {
blocks.forEach(
block -> {
- // TODO ERROR MESSAGE
if (!block.isValid()) {
- throw new TemplateException();
+ throw new TemplateException(TemplateException.ErrorCodes.SyntaxError);
}
});
}
@@ -76,13 +78,15 @@ public class DefaultPromptTemplateEngine implements PromptTemplateEngine {
} else if (block instanceof CodeRendering) {
return ((CodeBlock) block).renderCodeAsync(context);
} else {
- // const string error = "Unexpected block type, the block doesn't
- // have a rendering method";
- // this._log.LogError(error);
- // throw new
- // TemplateException(TemplateException.ErrorCodes.UnexpectedBlockType, error);
+ String message =
+ "Unexpected block type, the block doesn't have a rendering"
+ + " method";
+ LOGGER.error(message);
+ return Mono.error(
+ new TemplateException(
+ TemplateException.ErrorCodes.UnexpectedBlockType,
+ message));
}
- return Mono.just("");
})
.collectList()
.map(
diff --git a/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/TemplateException.java b/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/TemplateException.java
index e8eb93a579..7a7975993e 100644
--- a/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/TemplateException.java
+++ b/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/TemplateException.java
@@ -3,4 +3,135 @@ package com.microsoft.semantickernel.templateengine;
import com.microsoft.semantickernel.SKException;
-public class TemplateException extends SKException {}
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
+public class TemplateException extends SKException {
+
+ @Nonnull private final ErrorCodes errorCode;
+
+ /**
+ * Initializes a new instance of the {@code TemplateException} class with a provided error code.
+ *
+ * @param error The error code.
+ */
+ public TemplateException(@Nonnull ErrorCodes error) {
+ this(error, null, null);
+ }
+
+ /**
+ * Initializes a new instance of the {@code TemplateException} class with a provided error code.
+ *
+ * @param errorCode The error code.
+ * @param message The exception message.
+ */
+ public TemplateException(@Nonnull ErrorCodes errorCode, @Nullable String message) {
+ this(errorCode, message, null);
+ }
+
+ /**
+ * Initializes a new instance of the {@code TemplateException} class with a provided error code.
+ *
+ * @param errorCode The error code.
+ * @param message The exception message.
+ * @param innerException The exception that is the cause of the current exception.
+ */
+ public TemplateException(
+ @Nonnull ErrorCodes errorCode,
+ @Nullable String message,
+ @Nullable Throwable innerException) {
+ super(getDefaultMessage(errorCode, message), innerException);
+ this.errorCode = errorCode;
+ }
+
+ // spotless:off
+
+ /**
+ *
+ * Gets the error code for this exception.
+ *
+ */
+ //spotless:on
+ public ErrorCodes getErrorCode() {
+ return errorCode;
+ }
+
+ // spotless:off
+
+ /**
+ *
+ * Translate the error code into a default message.
+ *
+ */
+ //spotless:on
+ private static String getDefaultMessage(
+ @Nonnull ErrorCodes errorCode, @Nullable String message) {
+ return String.format("%s: %s", errorCode.getMessage(), message);
+ }
+
+ // spotless:off
+
+ /**
+ *
+ * Error codes for {@code TemplateException}.
+ *
+ */
+ //spotless:on
+ public enum ErrorCodes {
+
+ // spotless:off
+ /**
+ *
+ * Unknown error.
+ *
+ */
+ //spotless:on
+ UnknownError("Unknown error"),
+
+ // spotless:off
+ /**
+ *
+ * Syntax error, the template syntax used is not valid.
+ *
+ */
+ //spotless:on
+ SyntaxError("Syntax error, the template syntax used is not valid"),
+
+ // spotless:off
+ /**
+ *
+ * The block type produced be the tokenizer was not expected.
+ *
+ */
+ UnexpectedBlockType("The block type produced be the tokenizer was not expected"),
+
+ //spotless:off
+ /**
+ *
+ * The template requires an unknown function.
+ *
+ */
+ //spotless:on
+ FunctionNotFound("The template requires an unknown function"),
+
+ // spotless:off
+ /**
+ *
+ * The template execution failed, e.g. a function call threw an exception.
+ *
+ */
+ //spotless:on
+ RuntimeError("The template execution failed, e.g. a function call threw an exception"),
+ ;
+
+ private final String message;
+
+ ErrorCodes(String message) {
+ this.message = message;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+ }
+}
diff --git a/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/TemplateTokenizer.java b/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/TemplateTokenizer.java
index 93e64655cb..24064dfe6e 100644
--- a/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/TemplateTokenizer.java
+++ b/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/TemplateTokenizer.java
@@ -69,7 +69,7 @@ public class TemplateTokenizer {
return Collections.singletonList(new TextBlock(text));
}
- List blocks = new ArrayList();
+ List blocks = new ArrayList<>();
int endOfLastBlock = 0;
@@ -148,12 +148,10 @@ public class TemplateTokenizer {
switch (codeBlocks.get(0).getType()) {
case Variable:
if (codeBlocks.size() > 1) {
- throw new TemplateException();
- // TODO errorcode
- // throw new
- // TemplateException(TemplateException.ErrorCodes.SyntaxError,
- // $"Invalid token detected after the variable:
- // {contentWithoutDelimiters}");
+ throw new TemplateException(
+ TemplateException.ErrorCodes.SyntaxError,
+ "Invalid token detected after the variable: "
+ + contentWithoutDelimiters);
}
blocks.add(codeBlocks.get(0));
@@ -161,12 +159,10 @@ public class TemplateTokenizer {
case Value:
if (codeBlocks.size() > 1) {
- throw new TemplateException();
- // TODO errorcode
- // throw new
- // TemplateException(TemplateException.ErrorCodes.SyntaxError,
- // $"Invalid token detected after the value:
- // {contentWithoutDelimiters}");
+ throw new TemplateException(
+ TemplateException.ErrorCodes.SyntaxError,
+ "Invalid token detected after the value: "
+ + contentWithoutDelimiters);
}
blocks.add(codeBlocks.get(0));
@@ -174,12 +170,10 @@ public class TemplateTokenizer {
case FunctionId:
if (codeBlocks.size() > 2) {
- throw new TemplateException();
- // TODO errorcode
- // throw new
- // TemplateException(TemplateException.ErrorCodes.SyntaxError,
- // $"Functions support only one parameter:
- // {contentWithoutDelimiters}");
+ throw new TemplateException(
+ TemplateException.ErrorCodes.SyntaxError,
+ "Functions support only one parameter: "
+ + contentWithoutDelimiters);
}
blocks.add(new CodeBlock(codeBlocks, contentWithoutDelimiters));
@@ -189,12 +183,10 @@ public class TemplateTokenizer {
case Text:
case Undefined:
default:
- throw new TemplateException();
- // TODO errorcode
- // throw new
- // TemplateException(TemplateException.ErrorCodes.UnexpectedBlockType,
- // $"Code tokenizer returned an incorrect first token
- // type {codeBlocks[0].Type:G}");
+ throw new TemplateException(
+ TemplateException.ErrorCodes.UnexpectedBlockType,
+ "Code tokenizer returned an incorrect first token type "
+ + codeBlocks.get(0).getType());
}
}
diff --git a/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/blocks/CodeBlock.java b/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/blocks/CodeBlock.java
index bf648e7ca0..2b83a46013 100644
--- a/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/blocks/CodeBlock.java
+++ b/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/blocks/CodeBlock.java
@@ -7,15 +7,21 @@ import com.microsoft.semantickernel.orchestration.SKContext;
import com.microsoft.semantickernel.orchestration.SKFunction;
import com.microsoft.semantickernel.skilldefinition.ReadOnlyFunctionCollection;
import com.microsoft.semantickernel.skilldefinition.ReadOnlySkillCollection;
+import com.microsoft.semantickernel.templateengine.TemplateException;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import reactor.core.publisher.Mono;
import reactor.util.annotation.Nullable;
import java.util.Collections;
import java.util.List;
+import java.util.Optional;
-// ReSharper disable TemplateIsNotCompileTimeConstantProblem
-public class CodeBlock extends Block implements CodeRendering {
+public final class CodeBlock extends Block implements CodeRendering {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(CodeBlock.class);
private final List tokens;
public CodeBlock(List tokens, String content) {
@@ -30,21 +36,39 @@ public class CodeBlock extends Block implements CodeRendering {
@Override
public boolean isValid() {
- // TODO
+ Optional invalid = tokens.stream().filter(token -> !token.isValid()).findFirst();
+ if (invalid.isPresent()) {
+ LOGGER.error("Invalid block" + invalid.get().getContent());
+ return false;
+ }
+
+ if (this.tokens.size() > 1) {
+ if (this.tokens.get(0).getType() != BlockTypes.FunctionId) {
+ LOGGER.error("Unexpected second token found: " + this.tokens.get(1).getContent());
+ return false;
+ }
+
+ if (this.tokens.get(1).getType() != BlockTypes.Value
+ && this.tokens.get(1).getType() != BlockTypes.Variable) {
+ LOGGER.error("Functions support only one parameter");
+ return false;
+ }
+ }
+
+ if (this.tokens.size() > 2) {
+ LOGGER.error("Unexpected second token found: " + this.tokens.get(1).getContent());
+ return false;
+ }
+
return true;
}
@Override
@Nullable
public Mono renderCodeAsync(SKContext context) {
- /* TODO
+ if (!this.isValid()) {
+ throw new TemplateException(TemplateException.ErrorCodes.SyntaxError);
}
- if (!this._validated && !this.IsValid(out var error))
- {
- throw new TemplateException(TemplateException.ErrorCodes.SyntaxError, error);
- }
-
- */
// this.Log.LogTrace("Rendering code: `{0}`", this.Content);
diff --git a/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/blocks/FunctionIdBlock.java b/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/blocks/FunctionIdBlock.java
index 67476b5f51..c30ab701f0 100644
--- a/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/blocks/FunctionIdBlock.java
+++ b/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/blocks/FunctionIdBlock.java
@@ -6,7 +6,7 @@ import com.microsoft.semantickernel.orchestration.ContextVariables;
import javax.annotation.Nullable;
-public class FunctionIdBlock extends Block implements TextRendering {
+public final class FunctionIdBlock extends Block implements TextRendering {
private final String skillName;
private final String functionName;
diff --git a/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/blocks/TextBlock.java b/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/blocks/TextBlock.java
index 1fcc3cbc5b..b0446959a0 100644
--- a/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/blocks/TextBlock.java
+++ b/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/blocks/TextBlock.java
@@ -4,9 +4,7 @@ package com.microsoft.semantickernel.templateengine.blocks; // Copyright (c) Mic
import com.microsoft.semantickernel.orchestration.ContextVariables;
-public class TextBlock extends Block implements TextRendering {
-
- // internal override BlockTypes Type => BlockTypes.Text;
+public final class TextBlock extends Block implements TextRendering {
public TextBlock(String text) {
super(text, BlockTypes.Text);
@@ -25,18 +23,4 @@ public class TextBlock extends Block implements TextRendering {
public TextBlock(String text, int startIndex, int stopIndex) {
super(text.substring(startIndex, stopIndex), BlockTypes.Text);
}
- /*
-
- public override bool IsValid(out string errorMsg)
- {
- errorMsg = "";
- return true;
- }
-
- public string Render(ContextVariables? variables)
- {
- return this.Content;
- }
-
- */
}
diff --git a/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/blocks/ValBlock.java b/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/blocks/ValBlock.java
index d1c61518a3..8e70167c83 100644
--- a/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/blocks/ValBlock.java
+++ b/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/blocks/ValBlock.java
@@ -4,88 +4,63 @@ package com.microsoft.semantickernel.templateengine.blocks; // Copyright (c) Mic
import com.microsoft.semantickernel.orchestration.ContextVariables;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
import reactor.util.annotation.Nullable;
-public class ValBlock extends Block implements TextRendering {
- public ValBlock(String content) {
- super(content, BlockTypes.Value);
- }
+public final class ValBlock extends Block implements TextRendering {
- @Override
- public boolean isValid() {
- return false;
+ private static final Logger LOGGER = LoggerFactory.getLogger(ValBlock.class);
+
+ // Cache the first and last char
+ private char first = '\0';
+ private char last = '\0';
+
+ // Content, excluding start/end quote chars
+ private String value = "";
+
+ public ValBlock(String quotedValue) {
+ super(quotedValue.trim(), BlockTypes.Value);
+
+ if (this.getContent().length() < 2) {
+ LOGGER.error("A value must have single quotes or double quotes on both sides");
+ return;
+ }
+
+ this.first = this.getContent().charAt(0);
+ this.last = this.getContent().charAt(getContent().length() - 1);
+ this.value = this.getContent().substring(1, this.getContent().length() - 2);
}
@Override
@Nullable
public String render(ContextVariables variables) {
- return null;
+ return value;
}
- /*
- internal override BlockTypes Type => BlockTypes.Value;
-
- // Cache the first and last char
- private readonly char _first = '\0';
- private readonly char _last = '\0';
-
- // Content, excluding start/end quote chars
- private readonly string _value = string.Empty;
-
- ///
- /// Create an instance
- ///
- /// Block content, including the delimiting chars
- /// Optional logger
- public ValBlock(string? quotedValue, ILogger? log = null)
- : base(quotedValue?.Trim(), log)
- {
- if (this.Content.Length < 2)
- {
- this.Log.LogError("A value must have single quotes or double quotes on both sides");
- return;
- }
-
- this._first = this.Content[0];
- this._last = this.Content[this.Content.Length - 1];
- this._value = this.Content.Substring(1, this.Content.Length - 2);
+ @Override
+ public boolean isValid() {
+ // Content includes the quotes, so it must be at least 2 chars long
+ if (this.getContent().length() < 2) {
+ LOGGER.error("A value must have single quotes or double quotes on both sides");
+ return false;
}
- #pragma warning disable CA2254 // error strings are used also internally, not just for logging
- // ReSharper disable TemplateIsNotCompileTimeConstantProblem
- public override bool IsValid(out string errorMsg)
- {
- errorMsg = string.Empty;
-
- // Content includes the quotes, so it must be at least 2 chars long
- if (this.Content.Length < 2)
- {
- errorMsg = "A value must have single quotes or double quotes on both sides";
- this.Log.LogError(errorMsg);
- return false;
- }
-
- // Check if delimiting chars are consistent
- if (this._first != this._last)
- {
- errorMsg = "A value must be defined using either single quotes or double quotes, not both";
- this.Log.LogError(errorMsg);
- return false;
- }
-
- return true;
- }
- #pragma warning restore CA2254
-
- public string Render(ContextVariables? variables)
- {
- return this._value;
+ // Check if delimiting chars are consistent
+ if (first != last) {
+ LOGGER.error(
+ "A value must be defined using either single quotes or double quotes, not"
+ + " both");
+ return false;
}
- public static bool HasValPrefix(string? text)
- {
- return !text.IsNullOrEmpty()
- && text.Length > 0
- && (text[0] is Symbols.DblQuote or Symbols.SglQuote);
- }*/
+ return true;
+ }
+
+ public static boolean hasValPrefix(@Nullable String text) {
+ return text != null
+ && text.length() > 0
+ && (text.charAt(0) == Symbols.DblQuote || text.charAt(0) == Symbols.SglQuote);
+ }
}
diff --git a/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/blocks/VarBlock.java b/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/blocks/VarBlock.java
index e1266ca40e..028430a5b6 100644
--- a/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/blocks/VarBlock.java
+++ b/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/blocks/VarBlock.java
@@ -5,19 +5,22 @@ package com.microsoft.semantickernel.templateengine.blocks; // Copyright (c) Mic
import com.microsoft.semantickernel.orchestration.ContextVariables;
import com.microsoft.semantickernel.templateengine.TemplateException;
-public class VarBlock extends Block implements TextRendering {
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+public final class VarBlock extends Block implements TextRendering {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(VarBlock.class);
private final String name;
public VarBlock(String content) {
super(content, BlockTypes.Variable);
- this.name = content.substring(1);
- }
+ if (content.length() < 2) {
+ LOGGER.error("The variable name is empty");
+ }
- @Override
- public boolean isValid() {
- return true;
+ this.name = content.substring(1);
}
@Override
@@ -27,93 +30,47 @@ public class VarBlock extends Block implements TextRendering {
}
if (name == null || name.isEmpty()) {
- // TODO
- // const string errMsg = "Variable rendering failed, the variable name is empty";
- // this.Log.LogError(errMsg);
- // throw new TemplateException(TemplateException.ErrorCodes.SyntaxError, errMsg);
- throw new TemplateException();
+ throw new TemplateException(
+ TemplateException.ErrorCodes.SyntaxError,
+ "Variable rendering failed, the variable name is empty");
}
String value = variables.asMap().get(name);
if (value == null) {
- // TODO
- // this.Log.LogWarning("Variable `{0}{1}` not found", Symbols.VarPrefix, this.Name);
+
+ LOGGER.warn("Variable `{}{}` not found", Symbols.VarPrefix, name);
}
return value != null ? value : "";
}
- /*
- internal override BlockTypes Type => BlockTypes.Variable;
- internal string Name { get; } = string.Empty;
-
- public VarBlock(string? content, ILogger? log = null) : base(content?.Trim(), log)
- {
- if (this.Content.Length < 2)
- {
- this.Log.LogError("The variable name is empty");
- return;
- }
-
- this.Name = this.Content.Substring(1);
+ @Override
+ public boolean isValid() {
+ if (getContent() == null || getContent().isEmpty()) {
+ LOGGER.error(
+ "A variable must start with the symbol {} and have a name", Symbols.VarPrefix);
+ return false;
}
- #pragma warning disable CA2254 // error strings are used also internally, not just for logging
- // ReSharper disable TemplateIsNotCompileTimeConstantProblem
- public override bool IsValid(out string errorMsg)
- {
- errorMsg = string.Empty;
-
- if (string.IsNullOrEmpty(this.Content))
- {
- errorMsg = $"A variable must start with the symbol {Symbols.VarPrefix} and have a name";
- this.Log.LogError(errorMsg);
- return false;
- }
-
- if (this.Content[0] != Symbols.VarPrefix)
- {
- errorMsg = $"A variable must start with the symbol {Symbols.VarPrefix}";
- this.Log.LogError(errorMsg);
- return false;
- }
-
- if (this.Content.Length < 2)
- {
- errorMsg = "The variable name is empty";
- this.Log.LogError(errorMsg);
- return false;
- }
-
- if (!Regex.IsMatch(this.Name, "^[a-zA-Z0-9_]*$"))
- {
- errorMsg = $"The variable name '{this.Name}' contains invalid characters. " +
- "Only alphanumeric chars and underscore are allowed.";
- this.Log.LogError(errorMsg);
- return false;
- }
-
- return true;
- }
- #pragma warning restore CA2254
-
- public string Render(ContextVariables? variables)
- {
- if (variables == null) { return string.Empty; }
-
- if (string.IsNullOrEmpty(this.Name))
- {
- const string errMsg = "Variable rendering failed, the variable name is empty";
- this.Log.LogError(errMsg);
- throw new TemplateException(TemplateException.ErrorCodes.SyntaxError, errMsg);
- }
-
- var exists = variables.Get(this.Name, out string value);
- if (!exists) { this.Log.LogWarning("Variable `{0}{1}` not found", Symbols.VarPrefix, this.Name); }
-
- return exists ? value : string.Empty;
+ if (getContent().charAt(0) != Symbols.VarPrefix) {
+ LOGGER.error("A variable must start with the symbol {}", Symbols.VarPrefix);
+ return false;
}
- */
+ if (getContent().length() < 2) {
+ LOGGER.error("The variable name is empty");
+ return false;
+ }
+
+ if (!name.matches("^[a-zA-Z0-9_]*$")) {
+ LOGGER.error(
+ "The variable name '{}' contains invalid characters. "
+ + "Only alphanumeric chars and underscore are allowed.",
+ name);
+ return false;
+ }
+
+ return true;
+ }
}
diff --git a/java/semantickernel-core/src/main/resources/META-INF/services/com.microsoft.semantickernel.Kernel.InternalBuilder b/java/semantickernel-core/src/main/resources/META-INF/services/com.microsoft.semantickernel.Kernel.InternalBuilder
index 25efce5e7f..c7128c8bd6 100644
--- a/java/semantickernel-core/src/main/resources/META-INF/services/com.microsoft.semantickernel.Kernel.InternalBuilder
+++ b/java/semantickernel-core/src/main/resources/META-INF/services/com.microsoft.semantickernel.Kernel.InternalBuilder
@@ -1 +1 @@
-com.microsoft.semantickernel.KernelDefaultBuilder
\ No newline at end of file
+com.microsoft.semantickernel.DefaultKernelBuilder
\ No newline at end of file
diff --git a/java/semantickernel-core/src/test/java/com/microsoft/semantickernel/DefaultKernelTest.java b/java/semantickernel-core/src/test/java/com/microsoft/semantickernel/DefaultKernelTest.java
index ee5452d486..f26f7ccbf8 100644
--- a/java/semantickernel-core/src/test/java/com/microsoft/semantickernel/DefaultKernelTest.java
+++ b/java/semantickernel-core/src/test/java/com/microsoft/semantickernel/DefaultKernelTest.java
@@ -5,6 +5,7 @@ import com.azure.ai.openai.models.Choice;
import com.azure.ai.openai.models.Completions;
import com.azure.ai.openai.models.CompletionsOptions;
import com.microsoft.openai.AzureOpenAIClient;
+import com.microsoft.openai.OpenAIAsyncClient;
import com.microsoft.semantickernel.builders.SKBuilders;
import com.microsoft.semantickernel.connectors.ai.openai.textcompletion.OpenAITextCompletion;
import com.microsoft.semantickernel.extensions.KernelExtensions;
@@ -17,6 +18,7 @@ import com.microsoft.semantickernel.textcompletion.TextCompletion;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
+import org.mockito.ArgumentMatcher;
import org.mockito.Mockito;
import reactor.core.publisher.Mono;
@@ -27,6 +29,7 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
+import java.util.stream.Collectors;
public class DefaultKernelTest {
@@ -34,10 +37,9 @@ public class DefaultKernelTest {
void contextVariableTest() {
String model = "a-model";
- List> responses =
- Arrays.asList(Tuples.of("A", "a"), Tuples.of("user: Aauser: B", "b"));
-
- com.azure.ai.openai.OpenAIAsyncClient client = mockCompletionOpenAIAsyncClient(responses);
+ OpenAIAsyncClient client =
+ mockCompletionOpenAIAsyncClient(
+ Tuples.of("A", "a"), Tuples.of("user: Aauser: B", "b"));
Kernel kernel = buildKernel(model, client);
@@ -82,8 +84,7 @@ public class DefaultKernelTest {
@Test
void tellAJoke() {
String expectedResponse = "a result joke";
- com.azure.ai.openai.OpenAIAsyncClient client =
- mockCompletionOpenAIAsyncClient("WRITE", expectedResponse);
+ OpenAIAsyncClient client = mockCompletionOpenAIAsyncClient("WRITE", expectedResponse);
String model = "a-model-name";
Kernel kernel = buildKernel(model, client);
@@ -117,10 +118,7 @@ public class DefaultKernelTest {
assertTheResultEquals(result, expectedResponse);
}
- public static Kernel buildKernel(
- String model, com.azure.ai.openai.OpenAIAsyncClient openAIAsyncClient) {
-
- com.microsoft.openai.OpenAIAsyncClient client = new AzureOpenAIClient(openAIAsyncClient);
+ public static Kernel buildKernel(String model, OpenAIAsyncClient client) {
TextCompletion textCompletion = new OpenAITextCompletion(client, model);
@@ -132,12 +130,11 @@ public class DefaultKernelTest {
return SKBuilders.kernel().setKernelConfig(kernelConfig).build();
}
- private static com.azure.ai.openai.OpenAIAsyncClient mockCompletionOpenAIAsyncClient(
- String arg, String response) {
+ private static AzureOpenAIClient mockCompletionOpenAIAsyncClient(String arg, String response) {
List> responses =
Collections.singletonList(Tuples.of(arg, response));
- return mockCompletionOpenAIAsyncClient(responses);
+ return mockCompletionOpenAIAsyncClient(responses.toArray(new Tuple2[0]));
}
/*
@@ -152,12 +149,28 @@ public class DefaultKernelTest {
This if the client is prompted with "Tell me a joke", the mocked client would respond with "This is a joke"
*/
- public static com.azure.ai.openai.OpenAIAsyncClient mockCompletionOpenAIAsyncClient(
- List> responses) {
+
+ public static AzureOpenAIClient mockCompletionOpenAIAsyncClient(
+ Tuple2... responses) {
+
+ List, String>> matchers =
+ Arrays.stream(responses)
+ .map(
+ response ->
+ Tuples., String>of(
+ arg -> arg.contains(response.getT1()),
+ response.getT2()))
+ .collect(Collectors.toList());
+
+ return mockCompletionOpenAIAsyncClientMatchers(matchers.toArray(new Tuple2[0]));
+ }
+
+ public static AzureOpenAIClient mockCompletionOpenAIAsyncClientMatchers(
+ Tuple2, String>... responses) {
com.azure.ai.openai.OpenAIAsyncClient openAIAsyncClient =
Mockito.mock(com.azure.ai.openai.OpenAIAsyncClient.class);
- for (Tuple2 response : responses) {
+ for (Tuple2, String> response : responses) {
Choice choice = Mockito.mock(Choice.class);
Mockito.when(choice.getText()).thenReturn(response.getT2());
@@ -170,13 +183,11 @@ public class DefaultKernelTest {
openAIAsyncClient.getCompletions(
Mockito.any(String.class),
Mockito.argThat(
- it ->
- it.getPrompt()
- .get(0)
- .contains(response.getT1()))))
+ it -> response.getT1().matches(it.getPrompt().get(0)))))
.thenReturn(Mono.just(completions));
}
- return openAIAsyncClient;
+ AzureOpenAIClient client = new AzureOpenAIClient(openAIAsyncClient);
+ return Mockito.spy(client);
}
@Test
@@ -185,7 +196,7 @@ public class DefaultKernelTest {
String model = "a-model";
String expectedResponse = "foo";
- com.azure.ai.openai.OpenAIAsyncClient openAIAsyncClient =
+ OpenAIAsyncClient openAIAsyncClient =
mockCompletionOpenAIAsyncClient("block", expectedResponse);
Kernel kernel = buildKernel(model, openAIAsyncClient);
@@ -219,13 +230,11 @@ public class DefaultKernelTest {
}
private static void assertCompletionsWasCalledWithModelAndText(
- com.azure.ai.openai.OpenAIAsyncClient openAIAsyncClient,
- String model,
- String expected) {
+ OpenAIAsyncClient openAIAsyncClient, String model, String expected) {
Mockito.verify(openAIAsyncClient, Mockito.times(1))
.getCompletions(
Mockito.matches(model),
- Mockito.argThat(
+ Mockito.argThat(
completionsOptions ->
completionsOptions.getPrompt().size() == 1
&& completionsOptions
diff --git a/java/semantickernel-core/src/test/java/com/microsoft/semantickernel/TextEmbeddingsTest.java b/java/semantickernel-core/src/test/java/com/microsoft/semantickernel/TextEmbeddingsTest.java
index 2ec59138d3..737bab8f2a 100644
--- a/java/semantickernel-core/src/test/java/com/microsoft/semantickernel/TextEmbeddingsTest.java
+++ b/java/semantickernel-core/src/test/java/com/microsoft/semantickernel/TextEmbeddingsTest.java
@@ -8,7 +8,6 @@ import com.microsoft.semantickernel.ai.embeddings.EmbeddingGeneration;
import com.microsoft.semantickernel.connectors.ai.openai.textembeddings.OpenAITextEmbeddingGeneration;
import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import org.mockito.Mockito;
@@ -43,7 +42,6 @@ public class TextEmbeddingsTest {
}
@Test
- @Disabled
public void testEmbedding() {
testEmbeddingGeneration(mockEmbeddingOpenAIAsyncClient(), 1);
}
diff --git a/java/semantickernel-core/src/test/java/com/microsoft/semantickernel/syntaxexamples/Example02PipelineTest.java b/java/semantickernel-core/src/test/java/com/microsoft/semantickernel/syntaxexamples/Example02PipelineTest.java
index 43b8455008..d3439c5036 100644
--- a/java/semantickernel-core/src/test/java/com/microsoft/semantickernel/syntaxexamples/Example02PipelineTest.java
+++ b/java/semantickernel-core/src/test/java/com/microsoft/semantickernel/syntaxexamples/Example02PipelineTest.java
@@ -1,6 +1,7 @@
// Copyright (c) Microsoft. All rights reserved.
package com.microsoft.semantickernel.syntaxexamples;
+import com.microsoft.openai.OpenAIAsyncClient;
import com.microsoft.semantickernel.DefaultKernelTest;
import com.microsoft.semantickernel.Kernel;
import com.microsoft.semantickernel.orchestration.SKContext;
@@ -12,13 +13,10 @@ import org.junit.jupiter.api.Test;
import reactor.core.publisher.Mono;
-import java.util.ArrayList;
-
public class Example02PipelineTest {
@Test
public void run() {
- com.azure.ai.openai.OpenAIAsyncClient client =
- DefaultKernelTest.mockCompletionOpenAIAsyncClient(new ArrayList<>());
+ OpenAIAsyncClient client = DefaultKernelTest.mockCompletionOpenAIAsyncClient();
Kernel kernel = DefaultKernelTest.buildKernel("model", client);
// Load native skill
diff --git a/java/semantickernel-core/src/test/java/com/microsoft/semantickernel/syntaxexamples/Example03VariablesTest.java b/java/semantickernel-core/src/test/java/com/microsoft/semantickernel/syntaxexamples/Example03VariablesTest.java
index 99a3a7d75a..dc4a9dcb0b 100644
--- a/java/semantickernel-core/src/test/java/com/microsoft/semantickernel/syntaxexamples/Example03VariablesTest.java
+++ b/java/semantickernel-core/src/test/java/com/microsoft/semantickernel/syntaxexamples/Example03VariablesTest.java
@@ -1,6 +1,7 @@
// Copyright (c) Microsoft. All rights reserved.
package com.microsoft.semantickernel.syntaxexamples;
+import com.microsoft.openai.OpenAIAsyncClient;
import com.microsoft.semantickernel.DefaultKernelTest;
import com.microsoft.semantickernel.Kernel;
import com.microsoft.semantickernel.builders.SKBuilders;
@@ -14,13 +15,10 @@ import org.junit.jupiter.api.Test;
import reactor.core.publisher.Mono;
-import java.util.ArrayList;
-
public class Example03VariablesTest {
@Test
public void run() {
- com.azure.ai.openai.OpenAIAsyncClient client =
- DefaultKernelTest.mockCompletionOpenAIAsyncClient(new ArrayList<>());
+ OpenAIAsyncClient client = DefaultKernelTest.mockCompletionOpenAIAsyncClient();
Kernel kernel = DefaultKernelTest.buildKernel("model", client);
// Load native skill
diff --git a/java/semantickernel-core/src/test/java/com/microsoft/semantickernel/syntaxexamples/Example04CombineLLMPromptsAndNativeCode.java b/java/semantickernel-core/src/test/java/com/microsoft/semantickernel/syntaxexamples/Example04CombineLLMPromptsAndNativeCodeTest.java
similarity index 68%
rename from java/semantickernel-core/src/test/java/com/microsoft/semantickernel/syntaxexamples/Example04CombineLLMPromptsAndNativeCode.java
rename to java/semantickernel-core/src/test/java/com/microsoft/semantickernel/syntaxexamples/Example04CombineLLMPromptsAndNativeCodeTest.java
index 52c814e103..cdfce84f2d 100644
--- a/java/semantickernel-core/src/test/java/com/microsoft/semantickernel/syntaxexamples/Example04CombineLLMPromptsAndNativeCode.java
+++ b/java/semantickernel-core/src/test/java/com/microsoft/semantickernel/syntaxexamples/Example04CombineLLMPromptsAndNativeCodeTest.java
@@ -2,8 +2,9 @@
package com.microsoft.semantickernel.syntaxexamples; // Copyright (c) Microsoft. All rights
// reserved.
+import static com.microsoft.semantickernel.DefaultKernelTest.mockCompletionOpenAIAsyncClient;
+
import com.microsoft.openai.AzureOpenAIClient;
-import com.microsoft.semantickernel.DefaultKernelTest;
import com.microsoft.semantickernel.Kernel;
import com.microsoft.semantickernel.KernelConfig;
import com.microsoft.semantickernel.builders.SKBuilders;
@@ -16,17 +17,17 @@ import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import reactor.core.publisher.Mono;
+import reactor.util.function.Tuples;
-import java.util.ArrayList;
-
-// ReSharper disable once InconsistentNaming
-public class Example04CombineLLMPromptsAndNativeCode {
+public class Example04CombineLLMPromptsAndNativeCodeTest {
@Test
public void run() {
- com.microsoft.openai.OpenAIAsyncClient client =
- new AzureOpenAIClient(
- DefaultKernelTest.mockCompletionOpenAIAsyncClient(new ArrayList<>()));
+ AzureOpenAIClient client =
+ mockCompletionOpenAIAsyncClient(
+ Tuples.of(
+ "Gran Torre Santiago is the tallest building in South America",
+ "A-SUMMARY"));
KernelConfig kernelConfig =
SKBuilders.kernelConfig()
@@ -62,28 +63,6 @@ public class Example04CombineLLMPromptsAndNativeCode {
kernel.getSkills().getFunction("Search", null),
kernel.getSkill("SummarizeSkill").getFunction("Summarize", null));
- Assertions.assertEquals(
- "Gran Torre Santiago is the tallest building in South America summary",
- result.block().getResult());
-
- /*
- var result2 = await kernel.RunAsync(
- ask,
- search["Search"],
- sumSkill["Summarize"]
- );
-
- var result3 = await kernel.RunAsync(
- ask,
- search["Search"],
- sumSkill["Notegen"]
- );
-
- Console.WriteLine(ask + "\n");
- Console.WriteLine("Bing Answer: " + result1 + "\n");
- Console.WriteLine("Summary: " + result2 + "\n");
- Console.WriteLine("Notes: " + result3 + "\n");
-
- */
+ Assertions.assertEquals("A-SUMMARY", result.block().getResult());
}
}
diff --git a/java/semantickernel-core/src/test/java/com/microsoft/semantickernel/syntaxexamples/Example05UsingThePlannerTest.java b/java/semantickernel-core/src/test/java/com/microsoft/semantickernel/syntaxexamples/Example05UsingThePlannerTest.java
new file mode 100644
index 0000000000..0bb8651a22
--- /dev/null
+++ b/java/semantickernel-core/src/test/java/com/microsoft/semantickernel/syntaxexamples/Example05UsingThePlannerTest.java
@@ -0,0 +1,62 @@
+// Copyright (c) Microsoft. All rights reserved.
+package com.microsoft.semantickernel.syntaxexamples;
+
+import static com.microsoft.semantickernel.DefaultKernelTest.mockCompletionOpenAIAsyncClientMatchers;
+
+import com.microsoft.openai.AzureOpenAIClient;
+import com.microsoft.semantickernel.Kernel;
+import com.microsoft.semantickernel.KernelConfig;
+import com.microsoft.semantickernel.builders.SKBuilders;
+import com.microsoft.semantickernel.extensions.KernelExtensions;
+import com.microsoft.semantickernel.planner.sequentialplanner.SequentialPlanner;
+
+import org.junit.jupiter.api.Test;
+import org.mockito.ArgumentMatcher;
+
+import reactor.util.function.Tuples;
+
+public class Example05UsingThePlannerTest {
+
+ public static SequentialPlanner getPlanner(Kernel kernel) {
+ kernel.importSkill(
+ "SummarizeSkill",
+ KernelExtensions.importSemanticSkillFromDirectory(
+ "../../samples/skills", "SummarizeSkill"));
+ kernel.importSkill(
+ "WriterSkill",
+ KernelExtensions.importSemanticSkillFromDirectory(
+ "../../samples/skills", "WriterSkill"));
+
+ return new SequentialPlanner(kernel, null, null);
+ }
+
+ @Test
+ public void run() {
+ ArgumentMatcher matcher =
+ prompt -> {
+ return prompt.contains(
+ "Create an XML plan step by step, to satisfy the goal given");
+ };
+
+ AzureOpenAIClient client =
+ mockCompletionOpenAIAsyncClientMatchers(Tuples.of(matcher, "A-PLAN"));
+
+ KernelConfig config =
+ SKBuilders.kernelConfig()
+ .addTextCompletionService(
+ "davinci",
+ kernel ->
+ SKBuilders.textCompletionService()
+ .build(client, "text-davinci-003"))
+ .build();
+
+ Kernel kernel = SKBuilders.kernel().setKernelConfig(config).build();
+
+ SequentialPlanner planner = getPlanner(kernel);
+ System.out.println(
+ planner.createPlanAsync(
+ "Write a poem about John Doe, then translate it into Italian.")
+ .block()
+ .getResult());
+ }
+}
diff --git a/java/semantickernel-core/src/test/java/com/microsoft/semantickernel/syntaxexamples/Example06TemplateLanguageTest.java b/java/semantickernel-core/src/test/java/com/microsoft/semantickernel/syntaxexamples/Example06TemplateLanguageTest.java
new file mode 100644
index 0000000000..b8b1b4ac16
--- /dev/null
+++ b/java/semantickernel-core/src/test/java/com/microsoft/semantickernel/syntaxexamples/Example06TemplateLanguageTest.java
@@ -0,0 +1,90 @@
+// Copyright (c) Microsoft. All rights reserved.
+package com.microsoft.semantickernel.syntaxexamples; // Copyright (c) Microsoft. All rights
+// reserved.
+
+import static com.microsoft.semantickernel.DefaultKernelTest.mockCompletionOpenAIAsyncClient;
+
+import com.microsoft.openai.AzureOpenAIClient;
+import com.microsoft.semantickernel.Kernel;
+import com.microsoft.semantickernel.KernelConfig;
+import com.microsoft.semantickernel.builders.SKBuilders;
+import com.microsoft.semantickernel.coreskills.TimeSkill;
+import com.microsoft.semantickernel.orchestration.SKContext;
+import com.microsoft.semantickernel.semanticfunctions.PromptTemplate;
+import com.microsoft.semantickernel.semanticfunctions.PromptTemplateConfig;
+import com.microsoft.semantickernel.templateengine.PromptTemplateEngine;
+import com.microsoft.semantickernel.textcompletion.CompletionSKFunction;
+
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
+
+import reactor.core.publisher.Mono;
+import reactor.util.function.Tuples;
+
+import java.util.ArrayList;
+
+public class Example06TemplateLanguageTest {
+
+ @Test
+ public void run() {
+ AzureOpenAIClient client =
+ mockCompletionOpenAIAsyncClient(Tuples.of("Today is", "A-RESULT"));
+
+ KernelConfig kernelConfig =
+ SKBuilders.kernelConfig()
+ .addTextCompletionService(
+ "text-davinci-003",
+ kernel ->
+ SKBuilders.textCompletionService()
+ .build(client, "text-davinci-003"))
+ .addTextEmbeddingsGenerationService(
+ "text-embedding-ada-002",
+ kernel ->
+ SKBuilders.textEmbeddingGenerationService()
+ .build(client, "text-embedding-ada-002"))
+ .build();
+
+ Kernel kernel = SKBuilders.kernel().setKernelConfig(kernelConfig).build();
+
+ // Load native skill into the kernel skill collection, sharing its functions with prompt
+ // templates
+ // Functions loaded here are available as "time.*"
+ kernel.importSkill(new TimeSkill(), "time");
+
+ // Semantic Function invoking time.Date and time.Time native functions
+ String functionDefinition =
+ "\n"
+ + "Today is: {{time.Date}}\n"
+ + "Current time is: {{time.Time}}\n"
+ + "\n"
+ + "Answer to the following questions using JSON syntax, including the data"
+ + " used.\n"
+ + "Is it morning, afternoon, evening, or night"
+ + " (morning/afternoon/evening/night)?\n"
+ + "Is it weekend time (weekend/not weekend)?";
+
+ PromptTemplate promptRenderer = SKBuilders.promptTemplate().build(functionDefinition, null);
+
+ SKContext skContext = SKBuilders.context().build(kernel.getSkills());
+
+ PromptTemplateEngine promptTemplateEngine = SKBuilders.promptTemplateEngine().build();
+
+ Mono renderedPrompt = promptRenderer.renderAsync(skContext, promptTemplateEngine);
+
+ // Check that it has been rendered
+ Assertions.assertTrue(!renderedPrompt.block().contains("time.Date"));
+
+ // Run the prompt / semantic function
+ CompletionSKFunction kindOfDay =
+ kernel.getSemanticFunctionBuilder()
+ .createFunction(
+ functionDefinition,
+ null,
+ null,
+ null,
+ new PromptTemplateConfig.CompletionConfig(
+ 0, 0, 0, 0, 256, new ArrayList<>()));
+
+ Assertions.assertEquals("A-RESULT", kindOfDay.invokeAsync("").block().getResult());
+ }
+}
From cb6d1c7d54fc6819258331c3c5ef03dac8a3d17b Mon Sep 17 00:00:00 2001
From: John Oliver <1615532+johnoliver@users.noreply.github.com>
Date: Tue, 23 May 2023 21:11:27 +0100
Subject: [PATCH 2/3] Tidy up Java license headers (#1180)
### Motivation and Context
### Description
### Contribution Checklist
- [ ] The code builds clean without any errors or warnings
- [ ] The PR follows SK Contribution Guidelines
(https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md)
- [ ] The code follows the .NET coding conventions
(https://learn.microsoft.com/dotnet/csharp/fundamentals/coding-style/coding-conventions)
verified with `dotnet format`
- [ ] All unit tests pass, and I have added new tests where possible
- [ ] I didn't break anyone :smile:
---
.../com/microsoft/semantickernel/e2e/TextEmbeddingsTest.java | 2 +-
.../src/main/java/com/microsoft/openai/OpenAIAsyncClient.java | 4 +---
.../main/java/com/microsoft/openai/OpenAIClientBuilder.java | 4 +---
.../syntaxexamples/Example06_TemplateLanguage.java | 3 ++-
.../semantickernel/syntaxexamples/Example08_RetryHandler.java | 3 ++-
.../java/com/microsoft/semantickernel/ai/AIException.java | 2 +-
.../semantickernel/ai/embeddings/EmbeddingGeneration.java | 2 +-
.../java/com/microsoft/semantickernel/memory/NullMemory.java | 2 +-
.../semantickernel/orchestration/AbstractSKContext.java | 1 -
.../orchestration/WritableContextVariables.java | 2 --
.../semantickernel/semanticfunctions/PromptTemplate.java | 3 +--
.../semanticfunctions/PromptTemplateConfig.java | 3 +--
.../semantickernel/skilldefinition/ParameterView.java | 3 +--
.../skilldefinition/ReadOnlySkillCollection.java | 3 +--
.../semantickernel/templateengine/PromptTemplateEngine.java | 3 +--
.../semantickernel/templateengine/blocks/BlockTypes.java | 3 +--
.../semantickernel/textcompletion/TextCompletion.java | 3 +--
.../connectors/ai/openai/azuresdk/ClientBase.java | 3 +--
.../microsoft/semantickernel/coreskills/TextMemorySkill.java | 2 +-
.../com/microsoft/semantickernel/coreskills/TextSkill.java | 2 +-
.../com/microsoft/semantickernel/coreskills/TimeSkill.java | 2 +-
.../orchestration/DefaultCompletionSKFunction.java | 2 +-
.../semantickernel/orchestration/DefaultContextVariables.java | 2 --
.../orchestration/DefaultSemanticSKFunction.java | 2 +-
.../semantickernel/orchestration/NativeSKFunction.java | 2 +-
.../semanticfunctions/DefaultPromptTemplate.java | 3 +--
.../skilldefinition/DefaultSkillCollection.java | 3 +--
.../semantickernel/templateengine/CodeTokenizer.java | 3 +--
.../templateengine/DefaultPromptTemplateEngine.java | 3 +--
.../semantickernel/templateengine/TemplateTokenizer.java | 3 +--
.../semantickernel/templateengine/blocks/CodeBlock.java | 3 +--
.../semantickernel/templateengine/blocks/CodeRendering.java | 3 +--
.../semantickernel/templateengine/blocks/FunctionIdBlock.java | 3 +--
.../semantickernel/templateengine/blocks/Symbols.java | 3 +--
.../semantickernel/templateengine/blocks/TextBlock.java | 3 +--
.../semantickernel/templateengine/blocks/TextRendering.java | 3 +--
.../semantickernel/templateengine/blocks/ValBlock.java | 3 +--
.../semantickernel/templateengine/blocks/VarBlock.java | 3 +--
.../Example04CombineLLMPromptsAndNativeCodeTest.java | 3 +--
.../syntaxexamples/Example06TemplateLanguageTest.java | 3 +--
.../semantickernel/syntaxexamples/skills/StaticTextSkill.java | 3 +--
.../semantickernel/syntaxexamples/skills/TextSkill.java | 3 +--
.../planner/SequentialPlannerRequestSettings.java | 2 +-
.../planner/sequentialplanner/EmbeddedResource.java | 3 +--
.../planner/sequentialplanner/SequentialPlanner.java | 3 +--
45 files changed, 44 insertions(+), 78 deletions(-)
diff --git a/java/api-test/integration-tests/src/test/java/com/microsoft/semantickernel/e2e/TextEmbeddingsTest.java b/java/api-test/integration-tests/src/test/java/com/microsoft/semantickernel/e2e/TextEmbeddingsTest.java
index ddc1de491d..1bbc987856 100644
--- a/java/api-test/integration-tests/src/test/java/com/microsoft/semantickernel/e2e/TextEmbeddingsTest.java
+++ b/java/api-test/integration-tests/src/test/java/com/microsoft/semantickernel/e2e/TextEmbeddingsTest.java
@@ -1,5 +1,5 @@
// Copyright (c) Microsoft. All rights reserved.
-package com.microsoft.semantickernel.e2e; // Copyright (c) Microsoft. All rights reserved.
+package com.microsoft.semantickernel.e2e;
import com.microsoft.openai.OpenAIAsyncClient;
import com.microsoft.semantickernel.Kernel;
diff --git a/java/openai-sdk/src/main/java/com/microsoft/openai/OpenAIAsyncClient.java b/java/openai-sdk/src/main/java/com/microsoft/openai/OpenAIAsyncClient.java
index 1eaa4250be..01f5c7d85d 100644
--- a/java/openai-sdk/src/main/java/com/microsoft/openai/OpenAIAsyncClient.java
+++ b/java/openai-sdk/src/main/java/com/microsoft/openai/OpenAIAsyncClient.java
@@ -1,7 +1,5 @@
// Copyright (c) Microsoft. All rights reserved.
-package com.microsoft.openai; // Copyright (c) Microsoft Corporation. All rights reserved.
-// Licensed under the MIT License.
-// Code generated by Microsoft (R) AutoRest Code Generator.
+package com.microsoft.openai;
import com.azure.ai.openai.models.*;
diff --git a/java/openai-sdk/src/main/java/com/microsoft/openai/OpenAIClientBuilder.java b/java/openai-sdk/src/main/java/com/microsoft/openai/OpenAIClientBuilder.java
index 3ca55c9621..6b208b852d 100644
--- a/java/openai-sdk/src/main/java/com/microsoft/openai/OpenAIClientBuilder.java
+++ b/java/openai-sdk/src/main/java/com/microsoft/openai/OpenAIClientBuilder.java
@@ -1,7 +1,5 @@
// Copyright (c) Microsoft. All rights reserved.
-package com.microsoft.openai; // Copyright (c) Microsoft Corporation. All rights reserved.
-// Licensed under the MIT License.
-// Code generated by Microsoft (R) AutoRest Code Generator.
+package com.microsoft.openai;
/** Builds an OpenAIClient for use with api.openai.com/v1 */
public final class OpenAIClientBuilder {
diff --git a/java/samples/src/main/java/com/microsoft/semantickernel/syntaxexamples/Example06_TemplateLanguage.java b/java/samples/src/main/java/com/microsoft/semantickernel/syntaxexamples/Example06_TemplateLanguage.java
index d4bc44bd85..7aeee22a5b 100644
--- a/java/samples/src/main/java/com/microsoft/semantickernel/syntaxexamples/Example06_TemplateLanguage.java
+++ b/java/samples/src/main/java/com/microsoft/semantickernel/syntaxexamples/Example06_TemplateLanguage.java
@@ -1,4 +1,5 @@
-package com.microsoft.semantickernel.syntaxexamples;// Copyright (c) Microsoft. All rights reserved.
+// Copyright (c) Microsoft. All rights reserved.
+package com.microsoft.semantickernel.syntaxexamples;
import com.microsoft.openai.OpenAIAsyncClient;
import com.microsoft.semantickernel.Config;
diff --git a/java/samples/src/main/java/com/microsoft/semantickernel/syntaxexamples/Example08_RetryHandler.java b/java/samples/src/main/java/com/microsoft/semantickernel/syntaxexamples/Example08_RetryHandler.java
index c163edbccd..c4ff1ff7d5 100644
--- a/java/samples/src/main/java/com/microsoft/semantickernel/syntaxexamples/Example08_RetryHandler.java
+++ b/java/samples/src/main/java/com/microsoft/semantickernel/syntaxexamples/Example08_RetryHandler.java
@@ -1,4 +1,5 @@
-package com.microsoft.semantickernel.syntaxexamples;// Copyright (c) Microsoft. All rights reserved.
+// Copyright (c) Microsoft. All rights reserved.
+package com.microsoft.semantickernel.syntaxexamples;
import com.azure.ai.openai.OpenAIClientBuilder;
import com.azure.core.credential.AzureKeyCredential;
diff --git a/java/semantickernel-api/src/main/java/com/microsoft/semantickernel/ai/AIException.java b/java/semantickernel-api/src/main/java/com/microsoft/semantickernel/ai/AIException.java
index 59e43e9deb..226ef8847a 100644
--- a/java/semantickernel-api/src/main/java/com/microsoft/semantickernel/ai/AIException.java
+++ b/java/semantickernel-api/src/main/java/com/microsoft/semantickernel/ai/AIException.java
@@ -1,5 +1,5 @@
// Copyright (c) Microsoft. All rights reserved.
-package com.microsoft.semantickernel.ai; // Copyright (c) Microsoft. All rights reserved.
+package com.microsoft.semantickernel.ai;
import com.microsoft.semantickernel.SKException;
diff --git a/java/semantickernel-api/src/main/java/com/microsoft/semantickernel/ai/embeddings/EmbeddingGeneration.java b/java/semantickernel-api/src/main/java/com/microsoft/semantickernel/ai/embeddings/EmbeddingGeneration.java
index 0a11897b5e..41df12d129 100644
--- a/java/semantickernel-api/src/main/java/com/microsoft/semantickernel/ai/embeddings/EmbeddingGeneration.java
+++ b/java/semantickernel-api/src/main/java/com/microsoft/semantickernel/ai/embeddings/EmbeddingGeneration.java
@@ -1,5 +1,5 @@
// Copyright (c) Microsoft. All rights reserved.
-package com.microsoft.semantickernel.ai.embeddings; // Copyright (c) Microsoft. All rights reserved.
+package com.microsoft.semantickernel.ai.embeddings;
import com.microsoft.openai.OpenAIAsyncClient;
diff --git a/java/semantickernel-api/src/main/java/com/microsoft/semantickernel/memory/NullMemory.java b/java/semantickernel-api/src/main/java/com/microsoft/semantickernel/memory/NullMemory.java
index 88f495e289..7e119acc73 100644
--- a/java/semantickernel-api/src/main/java/com/microsoft/semantickernel/memory/NullMemory.java
+++ b/java/semantickernel-api/src/main/java/com/microsoft/semantickernel/memory/NullMemory.java
@@ -1,5 +1,5 @@
// Copyright (c) Microsoft. All rights reserved.
-package com.microsoft.semantickernel.memory; // Copyright (c) Microsoft. All rights reserved.
+package com.microsoft.semantickernel.memory;
import reactor.core.publisher.Mono;
diff --git a/java/semantickernel-api/src/main/java/com/microsoft/semantickernel/orchestration/AbstractSKContext.java b/java/semantickernel-api/src/main/java/com/microsoft/semantickernel/orchestration/AbstractSKContext.java
index f0f13f53cf..24286fa614 100644
--- a/java/semantickernel-api/src/main/java/com/microsoft/semantickernel/orchestration/AbstractSKContext.java
+++ b/java/semantickernel-api/src/main/java/com/microsoft/semantickernel/orchestration/AbstractSKContext.java
@@ -1,6 +1,5 @@
// Copyright (c) Microsoft. All rights reserved.
package com.microsoft.semantickernel.orchestration;
-// Copyright (c) Microsoft. All rights reserved.
import com.microsoft.semantickernel.builders.SKBuilders;
import com.microsoft.semantickernel.memory.SemanticTextMemory;
diff --git a/java/semantickernel-api/src/main/java/com/microsoft/semantickernel/orchestration/WritableContextVariables.java b/java/semantickernel-api/src/main/java/com/microsoft/semantickernel/orchestration/WritableContextVariables.java
index f05f29b0d3..0dd49bf983 100644
--- a/java/semantickernel-api/src/main/java/com/microsoft/semantickernel/orchestration/WritableContextVariables.java
+++ b/java/semantickernel-api/src/main/java/com/microsoft/semantickernel/orchestration/WritableContextVariables.java
@@ -1,8 +1,6 @@
// Copyright (c) Microsoft. All rights reserved.
package com.microsoft.semantickernel.orchestration;
-// Copyright (c) Microsoft. All rights reserved.
-
import reactor.util.annotation.NonNull;
import java.util.Map;
diff --git a/java/semantickernel-api/src/main/java/com/microsoft/semantickernel/semanticfunctions/PromptTemplate.java b/java/semantickernel-api/src/main/java/com/microsoft/semantickernel/semanticfunctions/PromptTemplate.java
index e4dde9ed4a..809d8a7228 100644
--- a/java/semantickernel-api/src/main/java/com/microsoft/semantickernel/semanticfunctions/PromptTemplate.java
+++ b/java/semantickernel-api/src/main/java/com/microsoft/semantickernel/semanticfunctions/PromptTemplate.java
@@ -1,6 +1,5 @@
// Copyright (c) Microsoft. All rights reserved.
-package com.microsoft.semantickernel.semanticfunctions; // Copyright (c) Microsoft. All rights
-// reserved.
+package com.microsoft.semantickernel.semanticfunctions;
import com.microsoft.semantickernel.orchestration.SKContext;
import com.microsoft.semantickernel.skilldefinition.ParameterView;
diff --git a/java/semantickernel-api/src/main/java/com/microsoft/semantickernel/semanticfunctions/PromptTemplateConfig.java b/java/semantickernel-api/src/main/java/com/microsoft/semantickernel/semanticfunctions/PromptTemplateConfig.java
index fa6587ffb9..65d3536ab8 100644
--- a/java/semantickernel-api/src/main/java/com/microsoft/semantickernel/semanticfunctions/PromptTemplateConfig.java
+++ b/java/semantickernel-api/src/main/java/com/microsoft/semantickernel/semanticfunctions/PromptTemplateConfig.java
@@ -1,6 +1,5 @@
// Copyright (c) Microsoft. All rights reserved.
-package com.microsoft.semantickernel.semanticfunctions; // Copyright (c) Microsoft. All rights
-// reserved.
+package com.microsoft.semantickernel.semanticfunctions;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
diff --git a/java/semantickernel-api/src/main/java/com/microsoft/semantickernel/skilldefinition/ParameterView.java b/java/semantickernel-api/src/main/java/com/microsoft/semantickernel/skilldefinition/ParameterView.java
index 60063b277f..717dfaaef1 100644
--- a/java/semantickernel-api/src/main/java/com/microsoft/semantickernel/skilldefinition/ParameterView.java
+++ b/java/semantickernel-api/src/main/java/com/microsoft/semantickernel/skilldefinition/ParameterView.java
@@ -1,6 +1,5 @@
// Copyright (c) Microsoft. All rights reserved.
-package com.microsoft.semantickernel.skilldefinition; // Copyright (c) Microsoft. All rights
-// reserved.
+package com.microsoft.semantickernel.skilldefinition;
///
/// Class used to copy and export data from
diff --git a/java/semantickernel-api/src/main/java/com/microsoft/semantickernel/skilldefinition/ReadOnlySkillCollection.java b/java/semantickernel-api/src/main/java/com/microsoft/semantickernel/skilldefinition/ReadOnlySkillCollection.java
index 2124cd45e9..2d1a7e52f0 100644
--- a/java/semantickernel-api/src/main/java/com/microsoft/semantickernel/skilldefinition/ReadOnlySkillCollection.java
+++ b/java/semantickernel-api/src/main/java/com/microsoft/semantickernel/skilldefinition/ReadOnlySkillCollection.java
@@ -1,6 +1,5 @@
// Copyright (c) Microsoft. All rights reserved.
-package com.microsoft.semantickernel.skilldefinition; // Copyright (c) Microsoft. All rights
-// reserved.
+package com.microsoft.semantickernel.skilldefinition;
import com.microsoft.semantickernel.orchestration.SKFunction;
diff --git a/java/semantickernel-api/src/main/java/com/microsoft/semantickernel/templateengine/PromptTemplateEngine.java b/java/semantickernel-api/src/main/java/com/microsoft/semantickernel/templateengine/PromptTemplateEngine.java
index db223dfa66..64c73ec185 100644
--- a/java/semantickernel-api/src/main/java/com/microsoft/semantickernel/templateengine/PromptTemplateEngine.java
+++ b/java/semantickernel-api/src/main/java/com/microsoft/semantickernel/templateengine/PromptTemplateEngine.java
@@ -1,6 +1,5 @@
// Copyright (c) Microsoft. All rights reserved.
-package com.microsoft.semantickernel.templateengine; // Copyright (c) Microsoft. All rights
-// reserved.
+package com.microsoft.semantickernel.templateengine;
import com.microsoft.semantickernel.orchestration.SKContext;
diff --git a/java/semantickernel-api/src/main/java/com/microsoft/semantickernel/templateengine/blocks/BlockTypes.java b/java/semantickernel-api/src/main/java/com/microsoft/semantickernel/templateengine/blocks/BlockTypes.java
index 627bb6c2e5..99a8662175 100644
--- a/java/semantickernel-api/src/main/java/com/microsoft/semantickernel/templateengine/blocks/BlockTypes.java
+++ b/java/semantickernel-api/src/main/java/com/microsoft/semantickernel/templateengine/blocks/BlockTypes.java
@@ -1,6 +1,5 @@
// Copyright (c) Microsoft. All rights reserved.
-package com.microsoft.semantickernel.templateengine.blocks; // Copyright (c) Microsoft. All rights
-// reserved.
+package com.microsoft.semantickernel.templateengine.blocks;
public enum BlockTypes {
Undefined(0),
diff --git a/java/semantickernel-api/src/main/java/com/microsoft/semantickernel/textcompletion/TextCompletion.java b/java/semantickernel-api/src/main/java/com/microsoft/semantickernel/textcompletion/TextCompletion.java
index 3b726c4b31..929cdb3c1c 100644
--- a/java/semantickernel-api/src/main/java/com/microsoft/semantickernel/textcompletion/TextCompletion.java
+++ b/java/semantickernel-api/src/main/java/com/microsoft/semantickernel/textcompletion/TextCompletion.java
@@ -1,6 +1,5 @@
// Copyright (c) Microsoft. All rights reserved.
-package com.microsoft.semantickernel.textcompletion; // Copyright (c) Microsoft. All rights
-// reserved.
+package com.microsoft.semantickernel.textcompletion;
import com.microsoft.openai.OpenAIAsyncClient;
diff --git a/java/semantickernel-connectors-parent/semantickernel-connectors/src/main/java/com/microsoft/semantickernel/connectors/ai/openai/azuresdk/ClientBase.java b/java/semantickernel-connectors-parent/semantickernel-connectors/src/main/java/com/microsoft/semantickernel/connectors/ai/openai/azuresdk/ClientBase.java
index fe73b98688..1152d2f7c4 100644
--- a/java/semantickernel-connectors-parent/semantickernel-connectors/src/main/java/com/microsoft/semantickernel/connectors/ai/openai/azuresdk/ClientBase.java
+++ b/java/semantickernel-connectors-parent/semantickernel-connectors/src/main/java/com/microsoft/semantickernel/connectors/ai/openai/azuresdk/ClientBase.java
@@ -1,6 +1,5 @@
// Copyright (c) Microsoft. All rights reserved.
-package com.microsoft.semantickernel.connectors.ai.openai.azuresdk; // Copyright (c) Microsoft. All
-// rights reserved.
+package com.microsoft.semantickernel.connectors.ai.openai.azuresdk;
import com.microsoft.openai.OpenAIAsyncClient;
diff --git a/java/semantickernel-core-skills/src/main/java/com/microsoft/semantickernel/coreskills/TextMemorySkill.java b/java/semantickernel-core-skills/src/main/java/com/microsoft/semantickernel/coreskills/TextMemorySkill.java
index 6f3461acb7..923c84d122 100644
--- a/java/semantickernel-core-skills/src/main/java/com/microsoft/semantickernel/coreskills/TextMemorySkill.java
+++ b/java/semantickernel-core-skills/src/main/java/com/microsoft/semantickernel/coreskills/TextMemorySkill.java
@@ -1,5 +1,5 @@
// Copyright (c) Microsoft. All rights reserved.
-package com.microsoft.semantickernel.coreskills; // Copyright (c) Microsoft. All rights reserved.
+package com.microsoft.semantickernel.coreskills;
import com.microsoft.semantickernel.memory.SemanticTextMemory;
import com.microsoft.semantickernel.orchestration.SKContext;
diff --git a/java/semantickernel-core-skills/src/main/java/com/microsoft/semantickernel/coreskills/TextSkill.java b/java/semantickernel-core-skills/src/main/java/com/microsoft/semantickernel/coreskills/TextSkill.java
index 7051ff757e..0364202a63 100644
--- a/java/semantickernel-core-skills/src/main/java/com/microsoft/semantickernel/coreskills/TextSkill.java
+++ b/java/semantickernel-core-skills/src/main/java/com/microsoft/semantickernel/coreskills/TextSkill.java
@@ -1,5 +1,5 @@
// Copyright (c) Microsoft. All rights reserved.
-package com.microsoft.semantickernel.coreskills; // Copyright (c) Microsoft. All rights reserved.
+package com.microsoft.semantickernel.coreskills;
import com.microsoft.semantickernel.skilldefinition.annotations.DefineSKFunction;
import com.microsoft.semantickernel.skilldefinition.annotations.SKFunctionParameters;
diff --git a/java/semantickernel-core-skills/src/main/java/com/microsoft/semantickernel/coreskills/TimeSkill.java b/java/semantickernel-core-skills/src/main/java/com/microsoft/semantickernel/coreskills/TimeSkill.java
index e7f5f586f4..c0517cf904 100644
--- a/java/semantickernel-core-skills/src/main/java/com/microsoft/semantickernel/coreskills/TimeSkill.java
+++ b/java/semantickernel-core-skills/src/main/java/com/microsoft/semantickernel/coreskills/TimeSkill.java
@@ -1,5 +1,5 @@
// Copyright (c) Microsoft. All rights reserved.
-package com.microsoft.semantickernel.coreskills; // Copyright (c) Microsoft. All rights reserved.
+package com.microsoft.semantickernel.coreskills;
import com.microsoft.semantickernel.skilldefinition.annotations.DefineSKFunction;
diff --git a/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/orchestration/DefaultCompletionSKFunction.java b/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/orchestration/DefaultCompletionSKFunction.java
index 4906127121..7d98d0214d 100644
--- a/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/orchestration/DefaultCompletionSKFunction.java
+++ b/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/orchestration/DefaultCompletionSKFunction.java
@@ -1,5 +1,5 @@
// Copyright (c) Microsoft. All rights reserved.
-package com.microsoft.semantickernel.orchestration; // Copyright (c) Microsoft. All rights reserved.
+package com.microsoft.semantickernel.orchestration;
import com.microsoft.semantickernel.Kernel;
import com.microsoft.semantickernel.memory.SemanticTextMemory;
diff --git a/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/orchestration/DefaultContextVariables.java b/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/orchestration/DefaultContextVariables.java
index ab2cbd7f55..c515dcef3e 100644
--- a/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/orchestration/DefaultContextVariables.java
+++ b/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/orchestration/DefaultContextVariables.java
@@ -1,8 +1,6 @@
// Copyright (c) Microsoft. All rights reserved.
package com.microsoft.semantickernel.orchestration;
-// Copyright (c) Microsoft. All rights reserved.
-
import com.microsoft.semantickernel.skilldefinition.CaseInsensitiveMap;
import reactor.util.annotation.NonNull;
diff --git a/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/orchestration/DefaultSemanticSKFunction.java b/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/orchestration/DefaultSemanticSKFunction.java
index 53499dafed..0fe413fc1c 100644
--- a/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/orchestration/DefaultSemanticSKFunction.java
+++ b/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/orchestration/DefaultSemanticSKFunction.java
@@ -1,5 +1,5 @@
// Copyright (c) Microsoft. All rights reserved.
-package com.microsoft.semantickernel.orchestration; // Copyright (c) Microsoft. All rights reserved.
+package com.microsoft.semantickernel.orchestration;
import com.microsoft.semantickernel.builders.SKBuilders;
import com.microsoft.semantickernel.memory.NullMemory;
diff --git a/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/orchestration/NativeSKFunction.java b/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/orchestration/NativeSKFunction.java
index fdeee131ea..5bf5f985fa 100644
--- a/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/orchestration/NativeSKFunction.java
+++ b/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/orchestration/NativeSKFunction.java
@@ -1,5 +1,5 @@
// Copyright (c) Microsoft. All rights reserved.
-package com.microsoft.semantickernel.orchestration; // Copyright (c) Microsoft. All rights reserved.
+package com.microsoft.semantickernel.orchestration;
import com.microsoft.semantickernel.Kernel;
import com.microsoft.semantickernel.memory.SemanticTextMemory;
diff --git a/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/semanticfunctions/DefaultPromptTemplate.java b/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/semanticfunctions/DefaultPromptTemplate.java
index fe11ee0ccc..42d6eb2d08 100644
--- a/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/semanticfunctions/DefaultPromptTemplate.java
+++ b/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/semanticfunctions/DefaultPromptTemplate.java
@@ -1,6 +1,5 @@
// Copyright (c) Microsoft. All rights reserved.
-package com.microsoft.semantickernel.semanticfunctions; // Copyright (c) Microsoft. All rights
-// reserved.
+package com.microsoft.semantickernel.semanticfunctions;
import com.microsoft.semantickernel.orchestration.SKContext;
import com.microsoft.semantickernel.skilldefinition.ParameterView;
diff --git a/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/skilldefinition/DefaultSkillCollection.java b/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/skilldefinition/DefaultSkillCollection.java
index 9ca54583d0..80e05ac4be 100644
--- a/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/skilldefinition/DefaultSkillCollection.java
+++ b/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/skilldefinition/DefaultSkillCollection.java
@@ -1,6 +1,5 @@
// Copyright (c) Microsoft. All rights reserved.
-package com.microsoft.semantickernel.skilldefinition; // Copyright (c) Microsoft. All rights
-// reserved.
+package com.microsoft.semantickernel.skilldefinition;
import com.microsoft.semantickernel.orchestration.SKFunction;
diff --git a/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/CodeTokenizer.java b/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/CodeTokenizer.java
index 8bda82b9eb..ab70091bf5 100644
--- a/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/CodeTokenizer.java
+++ b/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/CodeTokenizer.java
@@ -1,6 +1,5 @@
// Copyright (c) Microsoft. All rights reserved.
-package com.microsoft.semantickernel.templateengine; // Copyright (c) Microsoft. All rights
-// reserved.
+package com.microsoft.semantickernel.templateengine;
import com.microsoft.semantickernel.templateengine.blocks.*;
diff --git a/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/DefaultPromptTemplateEngine.java b/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/DefaultPromptTemplateEngine.java
index ec23f15c37..cb9361078a 100644
--- a/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/DefaultPromptTemplateEngine.java
+++ b/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/DefaultPromptTemplateEngine.java
@@ -1,6 +1,5 @@
// Copyright (c) Microsoft. All rights reserved.
-package com.microsoft.semantickernel.templateengine; // Copyright (c) Microsoft. All rights
-// reserved.
+package com.microsoft.semantickernel.templateengine;
import com.microsoft.semantickernel.orchestration.SKContext;
import com.microsoft.semantickernel.templateengine.blocks.Block;
diff --git a/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/TemplateTokenizer.java b/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/TemplateTokenizer.java
index 24064dfe6e..16534062b9 100644
--- a/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/TemplateTokenizer.java
+++ b/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/TemplateTokenizer.java
@@ -1,6 +1,5 @@
// Copyright (c) Microsoft. All rights reserved.
-package com.microsoft.semantickernel.templateengine; // Copyright (c) Microsoft. All rights
-// reserved.
+package com.microsoft.semantickernel.templateengine;
import com.microsoft.semantickernel.templateengine.blocks.Block;
import com.microsoft.semantickernel.templateengine.blocks.CodeBlock;
diff --git a/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/blocks/CodeBlock.java b/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/blocks/CodeBlock.java
index 2b83a46013..2f9d376830 100644
--- a/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/blocks/CodeBlock.java
+++ b/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/blocks/CodeBlock.java
@@ -1,6 +1,5 @@
// Copyright (c) Microsoft. All rights reserved.
-package com.microsoft.semantickernel.templateengine.blocks; // Copyright (c) Microsoft. All rights
-// reserved.
+package com.microsoft.semantickernel.templateengine.blocks;
import com.microsoft.semantickernel.orchestration.ContextVariables;
import com.microsoft.semantickernel.orchestration.SKContext;
diff --git a/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/blocks/CodeRendering.java b/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/blocks/CodeRendering.java
index 7bfe301fb0..49347d9816 100644
--- a/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/blocks/CodeRendering.java
+++ b/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/blocks/CodeRendering.java
@@ -1,6 +1,5 @@
// Copyright (c) Microsoft. All rights reserved.
-package com.microsoft.semantickernel.templateengine.blocks; // Copyright (c) Microsoft. All rights
-// reserved.
+package com.microsoft.semantickernel.templateengine.blocks;
import com.microsoft.semantickernel.orchestration.SKContext;
diff --git a/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/blocks/FunctionIdBlock.java b/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/blocks/FunctionIdBlock.java
index c30ab701f0..8b9acec649 100644
--- a/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/blocks/FunctionIdBlock.java
+++ b/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/blocks/FunctionIdBlock.java
@@ -1,6 +1,5 @@
// Copyright (c) Microsoft. All rights reserved.
-package com.microsoft.semantickernel.templateengine.blocks; // Copyright (c) Microsoft. All rights
-// reserved.
+package com.microsoft.semantickernel.templateengine.blocks;
import com.microsoft.semantickernel.orchestration.ContextVariables;
diff --git a/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/blocks/Symbols.java b/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/blocks/Symbols.java
index cbe435304d..994d2c113f 100644
--- a/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/blocks/Symbols.java
+++ b/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/blocks/Symbols.java
@@ -1,6 +1,5 @@
// Copyright (c) Microsoft. All rights reserved.
-package com.microsoft.semantickernel.templateengine.blocks; // Copyright (c) Microsoft. All rights
-// reserved.
+package com.microsoft.semantickernel.templateengine.blocks;
public class Symbols {
public static final char BlockStarter = '{';
diff --git a/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/blocks/TextBlock.java b/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/blocks/TextBlock.java
index b0446959a0..5760f3a3ad 100644
--- a/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/blocks/TextBlock.java
+++ b/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/blocks/TextBlock.java
@@ -1,6 +1,5 @@
// Copyright (c) Microsoft. All rights reserved.
-package com.microsoft.semantickernel.templateengine.blocks; // Copyright (c) Microsoft. All rights
-// reserved.
+package com.microsoft.semantickernel.templateengine.blocks;
import com.microsoft.semantickernel.orchestration.ContextVariables;
diff --git a/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/blocks/TextRendering.java b/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/blocks/TextRendering.java
index 9b65862e8c..2064102a0e 100644
--- a/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/blocks/TextRendering.java
+++ b/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/blocks/TextRendering.java
@@ -1,6 +1,5 @@
// Copyright (c) Microsoft. All rights reserved.
-package com.microsoft.semantickernel.templateengine.blocks; // Copyright (c) Microsoft. All rights
-// reserved.
+package com.microsoft.semantickernel.templateengine.blocks;
import com.microsoft.semantickernel.orchestration.ContextVariables;
diff --git a/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/blocks/ValBlock.java b/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/blocks/ValBlock.java
index 8e70167c83..1cbfec1231 100644
--- a/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/blocks/ValBlock.java
+++ b/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/blocks/ValBlock.java
@@ -1,6 +1,5 @@
// Copyright (c) Microsoft. All rights reserved.
-package com.microsoft.semantickernel.templateengine.blocks; // Copyright (c) Microsoft. All rights
-// reserved.
+package com.microsoft.semantickernel.templateengine.blocks;
import com.microsoft.semantickernel.orchestration.ContextVariables;
diff --git a/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/blocks/VarBlock.java b/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/blocks/VarBlock.java
index 028430a5b6..afb6c3da64 100644
--- a/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/blocks/VarBlock.java
+++ b/java/semantickernel-core/src/main/java/com/microsoft/semantickernel/templateengine/blocks/VarBlock.java
@@ -1,6 +1,5 @@
// Copyright (c) Microsoft. All rights reserved.
-package com.microsoft.semantickernel.templateengine.blocks; // Copyright (c) Microsoft. All rights
-// reserved.
+package com.microsoft.semantickernel.templateengine.blocks;
import com.microsoft.semantickernel.orchestration.ContextVariables;
import com.microsoft.semantickernel.templateengine.TemplateException;
diff --git a/java/semantickernel-core/src/test/java/com/microsoft/semantickernel/syntaxexamples/Example04CombineLLMPromptsAndNativeCodeTest.java b/java/semantickernel-core/src/test/java/com/microsoft/semantickernel/syntaxexamples/Example04CombineLLMPromptsAndNativeCodeTest.java
index cdfce84f2d..575d250691 100644
--- a/java/semantickernel-core/src/test/java/com/microsoft/semantickernel/syntaxexamples/Example04CombineLLMPromptsAndNativeCodeTest.java
+++ b/java/semantickernel-core/src/test/java/com/microsoft/semantickernel/syntaxexamples/Example04CombineLLMPromptsAndNativeCodeTest.java
@@ -1,6 +1,5 @@
// Copyright (c) Microsoft. All rights reserved.
-package com.microsoft.semantickernel.syntaxexamples; // Copyright (c) Microsoft. All rights
-// reserved.
+package com.microsoft.semantickernel.syntaxexamples;
import static com.microsoft.semantickernel.DefaultKernelTest.mockCompletionOpenAIAsyncClient;
diff --git a/java/semantickernel-core/src/test/java/com/microsoft/semantickernel/syntaxexamples/Example06TemplateLanguageTest.java b/java/semantickernel-core/src/test/java/com/microsoft/semantickernel/syntaxexamples/Example06TemplateLanguageTest.java
index b8b1b4ac16..cde64d023e 100644
--- a/java/semantickernel-core/src/test/java/com/microsoft/semantickernel/syntaxexamples/Example06TemplateLanguageTest.java
+++ b/java/semantickernel-core/src/test/java/com/microsoft/semantickernel/syntaxexamples/Example06TemplateLanguageTest.java
@@ -1,6 +1,5 @@
// Copyright (c) Microsoft. All rights reserved.
-package com.microsoft.semantickernel.syntaxexamples; // Copyright (c) Microsoft. All rights
-// reserved.
+package com.microsoft.semantickernel.syntaxexamples;
import static com.microsoft.semantickernel.DefaultKernelTest.mockCompletionOpenAIAsyncClient;
diff --git a/java/semantickernel-core/src/test/java/com/microsoft/semantickernel/syntaxexamples/skills/StaticTextSkill.java b/java/semantickernel-core/src/test/java/com/microsoft/semantickernel/syntaxexamples/skills/StaticTextSkill.java
index 2028c259c8..7bd46a8198 100644
--- a/java/semantickernel-core/src/test/java/com/microsoft/semantickernel/syntaxexamples/skills/StaticTextSkill.java
+++ b/java/semantickernel-core/src/test/java/com/microsoft/semantickernel/syntaxexamples/skills/StaticTextSkill.java
@@ -1,6 +1,5 @@
// Copyright (c) Microsoft. All rights reserved.
-package com.microsoft.semantickernel.syntaxexamples.skills; // Copyright (c) Microsoft. All rights
-// reserved.
+package com.microsoft.semantickernel.syntaxexamples.skills;
import com.microsoft.semantickernel.skilldefinition.annotations.DefineSKFunction;
import com.microsoft.semantickernel.skilldefinition.annotations.SKFunctionParameters;
diff --git a/java/semantickernel-core/src/test/java/com/microsoft/semantickernel/syntaxexamples/skills/TextSkill.java b/java/semantickernel-core/src/test/java/com/microsoft/semantickernel/syntaxexamples/skills/TextSkill.java
index a19dbd1799..d6baefccba 100644
--- a/java/semantickernel-core/src/test/java/com/microsoft/semantickernel/syntaxexamples/skills/TextSkill.java
+++ b/java/semantickernel-core/src/test/java/com/microsoft/semantickernel/syntaxexamples/skills/TextSkill.java
@@ -1,6 +1,5 @@
// Copyright (c) Microsoft. All rights reserved.
-package com.microsoft.semantickernel.syntaxexamples.skills; // Copyright (c) Microsoft. All rights
-// reserved.
+package com.microsoft.semantickernel.syntaxexamples.skills;
import com.microsoft.semantickernel.skilldefinition.annotations.DefineSKFunction;
import com.microsoft.semantickernel.skilldefinition.annotations.SKFunctionParameters;
diff --git a/java/semantickernel-extensions-parent/sequentialplanner-extensions/src/main/java/com/microsoft/semantickernel/planner/SequentialPlannerRequestSettings.java b/java/semantickernel-extensions-parent/sequentialplanner-extensions/src/main/java/com/microsoft/semantickernel/planner/SequentialPlannerRequestSettings.java
index b2c43bcb7f..2dffaceb4f 100644
--- a/java/semantickernel-extensions-parent/sequentialplanner-extensions/src/main/java/com/microsoft/semantickernel/planner/SequentialPlannerRequestSettings.java
+++ b/java/semantickernel-extensions-parent/sequentialplanner-extensions/src/main/java/com/microsoft/semantickernel/planner/SequentialPlannerRequestSettings.java
@@ -1,5 +1,5 @@
// Copyright (c) Microsoft. All rights reserved.
-package com.microsoft.semantickernel.planner; // Copyright (c) Microsoft. All rights reserved.
+package com.microsoft.semantickernel.planner;
import java.util.Collections;
import java.util.HashSet;
diff --git a/java/semantickernel-extensions-parent/sequentialplanner-extensions/src/main/java/com/microsoft/semantickernel/planner/sequentialplanner/EmbeddedResource.java b/java/semantickernel-extensions-parent/sequentialplanner-extensions/src/main/java/com/microsoft/semantickernel/planner/sequentialplanner/EmbeddedResource.java
index db4678b43e..24c25ecd7a 100644
--- a/java/semantickernel-extensions-parent/sequentialplanner-extensions/src/main/java/com/microsoft/semantickernel/planner/sequentialplanner/EmbeddedResource.java
+++ b/java/semantickernel-extensions-parent/sequentialplanner-extensions/src/main/java/com/microsoft/semantickernel/planner/sequentialplanner/EmbeddedResource.java
@@ -1,6 +1,5 @@
// Copyright (c) Microsoft. All rights reserved.
-package com.microsoft.semantickernel.planner.sequentialplanner; // Copyright (c) Microsoft. All
-// rights reserved.
+package com.microsoft.semantickernel.planner.sequentialplanner;
import java.io.IOException;
import java.io.InputStream;
diff --git a/java/semantickernel-extensions-parent/sequentialplanner-extensions/src/main/java/com/microsoft/semantickernel/planner/sequentialplanner/SequentialPlanner.java b/java/semantickernel-extensions-parent/sequentialplanner-extensions/src/main/java/com/microsoft/semantickernel/planner/sequentialplanner/SequentialPlanner.java
index eab812494e..45dea1d4fc 100644
--- a/java/semantickernel-extensions-parent/sequentialplanner-extensions/src/main/java/com/microsoft/semantickernel/planner/sequentialplanner/SequentialPlanner.java
+++ b/java/semantickernel-extensions-parent/sequentialplanner-extensions/src/main/java/com/microsoft/semantickernel/planner/sequentialplanner/SequentialPlanner.java
@@ -1,6 +1,5 @@
// Copyright (c) Microsoft. All rights reserved.
-package com.microsoft.semantickernel.planner.sequentialplanner; // Copyright (c) Microsoft. All
-// rights reserved.
+package com.microsoft.semantickernel.planner.sequentialplanner;
import com.microsoft.semantickernel.Kernel;
import com.microsoft.semantickernel.builders.FunctionBuilders;
From e848043fa6d487b499c2d37a8f909d7f9a8bbb11 Mon Sep 17 00:00:00 2001
From: Bruno Borges
Date: Tue, 23 May 2023 15:38:28 -0700
Subject: [PATCH 3/3] Quick fix on the java readme (camel case on SK) (#1190)
---
java/README.md | 23 +++++++++++------------
1 file changed, 11 insertions(+), 12 deletions(-)
diff --git a/java/README.md b/java/README.md
index 90d3e30ba7..3f49d19560 100644
--- a/java/README.md
+++ b/java/README.md
@@ -10,7 +10,7 @@ The Semantic Kernel for Java is an SDK that implements the key concepts of the S
to be used in Java applications and services in an idiomatic way, and to be easily integrated with other Java libraries
and frameworks.
-## Get Started
+## Get started
To run the LLM prompts and semantic functions in this kernel, make sure you have
an [Open AI API Key](https://openai.com/api/)
@@ -18,26 +18,25 @@ or [Azure Open AI service key](https://learn.microsoft.com/azure/cognitive-servi
### Requirements
-To build the semantic kernel, you will need to have:
+To build the Semantic Kernel, you will need:
- **Required**:
- - [JDK 8](https://microsoft.com/openjdk/) or newer to build the Semantic Kernel library
- - [JDK 17](https://microsoft.com/openjdk/) or newer to run samples
+ - [OpenJDK 17](https://microsoft.com/openjdk/) or newer
-### Build the semantic kernel
+### Build the Semantic Kernel
1. Clone this repository
git clone git@github.com:microsoft/semantic-kernel.git
-2. Build the semantic kernel
+2. Build the Semantic Kernel
cd semantic-kernel/java
- mvn install
+ ./mvnw install
-## Using the semantic kernel
+## Using the Semantic Kernel
-Check the `samples` folder for examples of how to use the semantic kernel.
+Check the `samples` folder for examples of how to use the Semantic Kernel for Java.
## Discord community
@@ -48,7 +47,7 @@ and get help from the community. We have a `#java` channel for Java-specific que
### Testing locally
-The project may contain integration tests that require an OpenAI key to run. To run the integration tests locally, you
+The project may contain end-to-end tests that require an OpenAI key to run. To run these tests locally, you
will need to set the following environment variable:
- `OPENAI_API_KEY` - the OpenAI API key.
@@ -65,11 +64,11 @@ on [how to get your Azure OpenAI credentials](https://learn.microsoft.com/en-us/
To run the unit tests only, run the following command:
- mvn package
+ ./mvnw package
To run all tests, including integration tests that require an OpenAI key, run the following command:
- mvn verify
+ ./mvnw verify
### Submitting a pull request