다음을 통해 공유


의미 체계 커널 채팅 완료 에이전트 탐색(실험적)

Warning

의미 체계 커널 에이전트 프레임워크는 아직 개발 중이며 변경될 수 있습니다.

이 설명과 관련된 자세한 API 설명서는 다음에서 확인할 수 있습니다.

에이전트는 현재 Java에서 사용할 수 없습니다.

의미 체계 커널의 채팅 완료

채팅 완료 는 기본적으로 채팅 기록이 유지 관리되고 각 요청과 함께 모델에 표시되는 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
Mistral Microsoft.SemanticKernel.Connectors.MistralAI
OpenAI Microsoft.SemanticKernel.Connectors.OpenAI
Onnx Microsoft.SemanticKernel.Connectors.Onnx

에이전트는 현재 Java에서 사용할 수 없습니다.

채팅 완료 에이전트 만들기

채팅 완료 에이전트는 기본적으로 AI 서비스를 기반으로 합니다. 따라서 채팅 완료 에이전트를 만드는 것은 하나 이상의 채팅 완료 서비스를 포함하는 커널 인스턴스를 만든 다음 해당 커널 인스턴스에 대한 참조로 에이전트를 인스턴스화하는 것으로 시작합니다.

// 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 서비스 선택

의미 체계 커널 AI 서비스를 직접 사용하는 것 외에도 채팅 완료 에이전트는 서비스 선택기의 사양을 지원합니다. 서비스 선택기는 커널에 둘 이상이 포함될 때 대상으로 지정할 AI 서비스를 들여쓰기합니다.

참고: 여러 AI 서비스가 있고 서비스 선택기가 제공되지 않는 경우 에이전트 프레임워크 외부에서 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에서 사용할 수 없습니다.

채팅 완료 에이전트와 대화

채팅 완료 에이전트와의 대화는 채팅 기록 인스턴스를 기반으로 하며 채팅 완료 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에서 사용할 수 없습니다.

방법:

채팅 완료 에이전트에 대한 엔드 투 엔드 예제는 다음을 참조하세요.