Removed KernelFunctionFactory. Added AiServiceCollection. Relocated internel classes to implementation package

This commit is contained in:
John Oliver
2024-02-15 13:46:46 +00:00
parent 14142051dd
commit 73caad5286
49 changed files with 203 additions and 190 deletions
@@ -5,7 +5,6 @@ import com.microsoft.semantickernel.orchestration.KernelFunction;
import com.microsoft.semantickernel.orchestration.KernelFunctionArguments;
import com.microsoft.semantickernel.orchestration.PromptExecutionSettings;
import com.microsoft.semantickernel.orchestration.contextvariables.ContextVariableTypes;
import com.microsoft.semantickernel.plugin.KernelFunctionFactory;
import com.microsoft.semantickernel.plugin.annotations.DefineKernelFunction;
import com.microsoft.semantickernel.plugin.annotations.KernelFunctionParameter;
import com.microsoft.semantickernel.text.TextChunker;
@@ -37,7 +36,7 @@ public class ConversationSummaryPlugin {
.withTopP(0.5)
.build();
this.summarizeConversationFunction = KernelFunctionFactory
this.summarizeConversationFunction = KernelFunction
.<String>createFromPrompt(PromptFunctionConstants.SummarizeConversationDefinition)
.withDefaultExecutionSettings(settings)
.withName("summarizeConversation")
@@ -45,14 +44,14 @@ public class ConversationSummaryPlugin {
"Given a section of a conversation transcript, summarize the part of the conversation.")
.build();
this.conversationActionItemsFunction = KernelFunctionFactory
this.conversationActionItemsFunction = KernelFunction
.<String>createFromPrompt(PromptFunctionConstants.GetConversationActionItemsDefinition)
.withDefaultExecutionSettings(settings)
.withName("conversationActionItems")
.withDescription("Given a section of a conversation transcript, identify action items.")
.build();
this.conversationTopicsFunction = KernelFunctionFactory
this.conversationTopicsFunction = KernelFunction
.<String>createFromPrompt(PromptFunctionConstants.GetConversationTopicsDefinition)
.withDefaultExecutionSettings(settings)
.withName("conversationTopics")
@@ -9,9 +9,9 @@ import com.azure.core.credential.KeyCredential;
import com.microsoft.semantickernel.Kernel;
import com.microsoft.semantickernel.exceptions.ConfigurationException;
import com.microsoft.semantickernel.orchestration.FunctionResult;
import com.microsoft.semantickernel.orchestration.KernelFunction;
import com.microsoft.semantickernel.orchestration.KernelFunctionArguments;
import com.microsoft.semantickernel.orchestration.PromptExecutionSettings;
import com.microsoft.semantickernel.plugin.KernelFunctionFactory;
import com.microsoft.semantickernel.semanticfunctions.KernelFunctionFromPrompt;
import com.microsoft.semantickernel.textcompletion.TextGenerationService;
import java.time.Instant;
@@ -99,7 +99,7 @@ public class Example05_InlineFunctionDefinition {
var date = DateTimeFormatter.ISO_LOCAL_DATE.withZone(ZoneOffset.UTC)
.format(Instant.ofEpochSecond(1));
var message = "Translate this date " + date + " to French format";
var fixedFunction = KernelFunctionFactory.createFromPrompt(message)
var fixedFunction = KernelFunction.createFromPrompt(message)
.withDefaultExecutionSettings(
PromptExecutionSettings.builder()
.withMaxTokens(100)
@@ -7,8 +7,8 @@ import com.azure.core.credential.KeyCredential;
import com.microsoft.semantickernel.Kernel;
import com.microsoft.semantickernel.aiservices.openai.textcompletion.OpenAITextGenerationService;
import com.microsoft.semantickernel.exceptions.ConfigurationException;
import com.microsoft.semantickernel.orchestration.KernelFunction;
import com.microsoft.semantickernel.orchestration.PromptExecutionSettings;
import com.microsoft.semantickernel.plugin.KernelFunctionFactory;
import com.microsoft.semantickernel.plugin.KernelPlugin;
import com.microsoft.semantickernel.plugin.KernelPluginFactory;
import com.microsoft.semantickernel.plugin.annotations.DefineKernelFunction;
@@ -91,7 +91,7 @@ public class Example06_TemplateLanguage {
var renderedPrompt = promptTemplate.renderAsync(kernel, null, null).block();
System.out.println(renderedPrompt);
var kindOfDay = KernelFunctionFactory.createFromPrompt(functionDefinition)
var kindOfDay = KernelFunction.createFromPrompt(functionDefinition)
.withDefaultExecutionSettings(
PromptExecutionSettings.builder()
.withMaxTokens(100)
@@ -6,9 +6,9 @@ import com.azure.core.credential.AzureKeyCredential;
import com.azure.core.credential.KeyCredential;
import com.microsoft.semantickernel.Kernel;
import com.microsoft.semantickernel.chatcompletion.ChatCompletionService;
import com.microsoft.semantickernel.orchestration.KernelFunction;
import com.microsoft.semantickernel.orchestration.KernelFunctionArguments;
import com.microsoft.semantickernel.orchestration.contextvariables.ContextVariableTypes;
import com.microsoft.semantickernel.plugin.KernelFunctionFactory;
public class Example27_PromptFunctionsUsingChatGPT {
@@ -47,7 +47,7 @@ public class Example27_PromptFunctionsUsingChatGPT {
.withAIService(ChatCompletionService.class, openAIChatCompletion)
.build();
var func = KernelFunctionFactory.<String>createFromPrompt(
var func = KernelFunction.<String>createFromPrompt(
"List the two planets closest to '{{$input}}', excluding moons, using bullet points.")
.build();
@@ -14,7 +14,7 @@ import com.microsoft.semantickernel.samples.plugins.TimePlugin;
import com.microsoft.semantickernel.semanticfunctions.PromptTemplateConfig;
import com.microsoft.semantickernel.semanticfunctions.PromptTemplateFactory;
import com.microsoft.semantickernel.services.ServiceNotFoundException;
import com.microsoft.semantickernel.util.EmbeddedResourceLoader;
import com.microsoft.semantickernel.implementation.EmbeddedResourceLoader;
import java.io.FileNotFoundException;
import java.time.ZoneId;
@@ -7,12 +7,11 @@ import com.azure.core.credential.KeyCredential;
import com.microsoft.semantickernel.Kernel;
import com.microsoft.semantickernel.aiservices.openai.chatcompletion.OpenAIChatCompletion;
import com.microsoft.semantickernel.chatcompletion.ChatCompletionService;
import com.microsoft.semantickernel.orchestration.KernelFunction;
import com.microsoft.semantickernel.orchestration.PromptExecutionSettings;
import com.microsoft.semantickernel.plugin.KernelFunctionFactory;
import com.microsoft.semantickernel.semanticfunctions.KernelFunctionFromPrompt;
import com.microsoft.semantickernel.semanticfunctions.OutputVariable;
import com.microsoft.semantickernel.semanticfunctions.PromptTemplateConfig;
import com.microsoft.semantickernel.templateengine.semantickernel.DefaultPromptTemplate;
public class Example58_ConfigureExecutionSettings {
@@ -92,7 +91,7 @@ public class Example58_ConfigureExecutionSettings {
.parseFromJson(configPayload)
.setTemplate(prompt);
var func = KernelFunctionFactory
var func = KernelFunction
.createFromPrompt(promptConfig)
.build();
@@ -4,7 +4,8 @@ import com.azure.ai.openai.OpenAIAsyncClient;
import com.azure.ai.openai.OpenAIClientBuilder;
import com.azure.core.credential.AzureKeyCredential;
import com.azure.core.credential.KeyCredential;
import com.microsoft.semantickernel.AIService;
import com.microsoft.semantickernel.services.AIService;
import com.microsoft.semantickernel.services.AiServiceCollection;
import com.microsoft.semantickernel.Kernel;
import com.microsoft.semantickernel.chatcompletion.ChatCompletionService;
import com.microsoft.semantickernel.orchestration.KernelFunction;
@@ -84,7 +85,7 @@ public class Example62_CustomAIServiceSelector {
// A dumb AIServiceSelector that just returns the first service and execution settings it finds
static class CustomAIServiceSelector extends BaseAIServiceSelector {
public CustomAIServiceSelector(Map<Class<? extends AIService>, AIService> services) {
public CustomAIServiceSelector(AiServiceCollection services) {
super(services);
}
@@ -1,7 +1,7 @@
package com.microsoft.semantickernel.samples.syntaxexamples;
import com.microsoft.semantickernel.Kernel;
import com.microsoft.semantickernel.plugin.KernelFunctionFactory;
import com.microsoft.semantickernel.orchestration.KernelFunction;
import com.microsoft.semantickernel.plugin.KernelPlugin;
import com.microsoft.semantickernel.plugin.annotations.DefineKernelFunction;
@@ -25,7 +25,7 @@ public class Example69_MutableKernelPlugin {
System.out.println("======== Example69_MutableKernelPlugin ========");
KernelPlugin plugin = new KernelPlugin("Plugin", "Mutable plugin", null);
plugin.addFunction(KernelFunctionFactory.createFromMethod(
plugin.addFunction(KernelFunction.createFromMethod(
Time.class.getMethod("date"), new Time())
.withFunctionName("dateFunction")
.build());