diff --git a/java/semantickernel-api/src/main/java/com/microsoft/semantickernel/orchestration/SKFunction.java b/java/semantickernel-api/src/main/java/com/microsoft/semantickernel/orchestration/SKFunction.java index 2fbbc18116..29fd2d3ff3 100644 --- a/java/semantickernel-api/src/main/java/com/microsoft/semantickernel/orchestration/SKFunction.java +++ b/java/semantickernel-api/src/main/java/com/microsoft/semantickernel/orchestration/SKFunction.java @@ -1,9 +1,12 @@ // Copyright (c) Microsoft. All rights reserved. package com.microsoft.semantickernel.orchestration; +import java.util.Map; + import javax.annotation.CheckReturnValue; import javax.annotation.Nullable; +import com.microsoft.semantickernel.Kernel; import com.microsoft.semantickernel.memory.SemanticTextMemory; import com.microsoft.semantickernel.skilldefinition.FunctionView; import com.microsoft.semantickernel.skilldefinition.ReadOnlySkillCollection; @@ -81,6 +84,14 @@ public interface SKFunction { @Deprecated Mono invokeAsync(SKContext context, @Nullable Object settings); + /** + * @return The result of invoking the function. + * @param kernel The kernel to invoke the function on + * @param variables The variables to invoke the function with + * @since 1.0.0 + */ + Mono invokeAsync(Kernel kernel, Map variables); + /** * @return The name of the skill that this function is within */ diff --git a/java/semantickernel-api/src/main/java/com/microsoft/semantickernel/skilldefinition/annotations/DefineSKFunction.java b/java/semantickernel-api/src/main/java/com/microsoft/semantickernel/skilldefinition/annotations/DefineSKFunction.java index b6f9366623..d5dfc7f52e 100644 --- a/java/semantickernel-api/src/main/java/com/microsoft/semantickernel/skilldefinition/annotations/DefineSKFunction.java +++ b/java/semantickernel-api/src/main/java/com/microsoft/semantickernel/skilldefinition/annotations/DefineSKFunction.java @@ -17,4 +17,6 @@ public @interface DefineSKFunction { String returnType() default "void"; String returnDescription() default ""; + + SKSample[] samples() default {}; } diff --git a/java/semantickernel-api/src/main/java/com/microsoft/semantickernel/skilldefinition/annotations/SKSample.java b/java/semantickernel-api/src/main/java/com/microsoft/semantickernel/skilldefinition/annotations/SKSample.java new file mode 100644 index 0000000000..a3d82aee97 --- /dev/null +++ b/java/semantickernel-api/src/main/java/com/microsoft/semantickernel/skilldefinition/annotations/SKSample.java @@ -0,0 +1,17 @@ +// Copyright (c) Microsoft. All rights reserved. +package com.microsoft.semantickernel.skilldefinition.annotations; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; +/** + * + * @since 1.0.0 + */ +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.METHOD) +public @interface SKSample { + String inputs(); + String output(); +}