Semantic カーネルチャット完了エージェントの探索 (試験段階)
警告
Semantic Kernel Agent Framework はまだ開発中であり、変更される可能性があります。
この説明に関連する詳細な API ドキュメントは、次のサイトで入手できます。
現在、エージェントは Java では使用できません。
Semantic カーネルでのチャットの完了
チャットの完了 は基本的に、チャット履歴が維持され、各要求でモデルに提示される AI モデルとのチャットベースの対話のためのプロトコルです。 セマンティック カーネル AI サービス は、さまざまな AI モデルのチャット完了機能を統合するための統合フレームワークを提供します。
チャット完了エージェントは、これらの AI サービスのいずれかを利用してユーザーまたは別のエージェントに送信されるかどうかにかかわらず、応答を生成できます。
.NET の場合、 チャット完了 AI サービスは、 IChatCompletionService
インターフェイスに基づいています。
.NET の場合、チャット補完機能を備えたモデルをサポートする AI サービスの一部を次に示します。
モデル | セマンティック カーネル AI サービス |
---|---|
Azure Open AI | Microsoft.SemanticKernel.Connectors.AzureOpenAI |
双子座 | Microsoft.SemanticKernel.Connectors.Google |
HuggingFace | Microsoft.SemanticKernel.Connectors.HuggingFace |
ミストラル | Microsoft.SemanticKernel.Connectors.MistralAI |
OpenAI | Microsoft.SemanticKernel.Connectors.OpenAI |
Onnx | Microsoft.SemanticKernel.Connectors.Onnx |
現在、エージェントは Java では使用できません。
チャット完了エージェントの作成
チャット完了エージェントは基本的にAI サービスに基づいています。 そのため、 チャット完了エージェントの作成 は、1 つ以上のチャット完了サービスを含む Kernel インスタンスの作成から始まり、その Kernel インスタンスへの参照を使用してエージェントをインスタンス化します。
// Initialize a Kernel with a chat-completion service
IKernelBuilder builder = Kernel.CreateBuilder();
builder.AddAzureOpenAIChatCompletion(/*<...configuration parameters>*/);
Kernel kernel = builder.Build();
// Create the agent
ChatCompletionAgent agent =
new()
{
Name = "SummarizationAgent",
Instructions = "Summarize user input",
Kernel = kernel
};
# Define the Kernel
kernel = Kernel()
# Add the AzureChatCompletion AI Service to the Kernel
kernel.add_service(AzureChatCompletion(service_id="<service_id>"))
# Create the agent
agent = ChatCompletionAgent(
service_id="agent",
kernel=kernel,
name="<agent name>",
instructions="<agent instructions>",
)
現在、エージェントは Java では使用できません。
AI サービスの選択
Semantic Kernel AI サービス直接使用するのと同じチャット完了エージェントservice-selectorの仕様をサポートしています。 service-selectorは、Kernelに複数のサービスが含まれている場合どのAIサービスをターゲットにするかをインデントします。
注: 複数のAI サービスが存在し、service-selectorが指定されていない場合、Agent Framework の外部でAI サービスを使用する場合に見つかるのと同じ既定ロジックが適用されます。
IKernelBuilder builder = Kernel.CreateBuilder();
// Initialize multiple chat-completion services.
builder.AddAzureOpenAIChatCompletion(/*<...service configuration>*/, serviceId: "service-1");
builder.AddAzureOpenAIChatCompletion(/*<...service configuration>*/, serviceId: "service-2");
Kernel kernel = builder.Build();
ChatCompletionAgent agent =
new()
{
Name = "<agent name>",
Instructions = "<agent instructions>",
Kernel = kernel,
Arguments = // Specify the service-identifier via the KernelArguments
new KernelArguments(
new OpenAIPromptExecutionSettings()
{
ServiceId = "service-2" // The target service-identifier.
});
};
# Define the Kernel
kernel = Kernel()
# Add the AzureChatCompletion AI Service to the Kernel
kernel.add_service(AzureChatCompletion(service_id="<service_id>"))
# Create the agent
agent = ChatCompletionAgent(
service_id="agent",
kernel=kernel,
name="<agent name>",
instructions="<agent instructions>",
)
現在、エージェントは Java では使用できません。
Chat 完了エージェントとの会話
Chat Completion Agent との会話は、Chat History インスタンスに基づいており、Chat Completion AI サービスとの対話と変わりはありません。
// Define agent
ChatCompletionAgent agent = ...;
// Create a ChatHistory object to maintain the conversation state.
ChatHistory chat = [];
// Add a user message to the conversation
chat.Add(new ChatMessageContent(AuthorRole.User, "<user input>"));
// Generate the agent response(s)
await foreach (ChatMessageContent response in agent.InvokeAsync(chat))
{
// Process agent response(s)...
}
# Define agent
agent = ChatCompletionAgent(...)
# Define the chat history
chat = ChatHistory()
# Add the user message
chat.add_message(ChatMessageContent(role=AuthorRole.USER, content=input))
# Generate the agent response(s)
async for response in agent.invoke(chat):
# process agent response(s)
現在、エージェントは Java では使用できません。
方法:
Chat 完了エージェントのエンドツーエンドの例についてはを参照してください。