다음을 통해 공유


의미 체계 커널 및Open AI Assistant Agent 탐색하기

Warning

의미 체계 커널 에이전트 프레임워크 미리 보기 상태이며 변경될 수 있습니다.

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

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

도우미란?

OpenAI Assistant API는 고급 및 대화형 AI 기능을 위해 설계된 특수 인터페이스로, 개발자가 개인 설정된 다단계 작업 지향 에이전트를 만들 수 있도록 합니다. 간단한 대화형 교환에 중점을 둔 채팅 완료 API와 달리 Assistant API는 코드 인터프리터 및 파일 검색과 같은 추가 기능과 동적 목표 기반 상호 작용을 허용합니다.

Open AI Assistant 에이전트 만들기

Open AI Assistant만들려면 비동기적으로 처리되는 원격 서비스를 호출해야 합니다. 이를 관리하기 위해 Open AI Assistant 에이전트 는 정적 팩터리 메서드를 통해 인스턴스화되어 프로세스가 비차단 방식으로 수행되도록 합니다. 이 메서드는 도우미가 완전히 초기화되고 사용할 준비가 되면 약속 또는 미래를 반환하는 비동기 호출의 복잡성을 추상화합니다.

OpenAIAssistantAgent agent =
    await OpenAIAssistantAgent.CreateAsync(
        OpenAIClientProvider.ForAzureOpenAI(/*<...service configuration>*/),
        new OpenAIAssistantDefinition("<model name>")
        {
          Name = "<agent name>",
          Instructions = "<agent instructions>",
        },
        new Kernel());
azure_agent = await AzureAssistantAgent.create(
    kernel=kernel, 
    service_id=service_id, 
    name="<agent name>", 
    instructions="<agent instructions>"
)

# or

openai_agent = await OpenAIAssistantAgent.create(
    kernel=kernel, 
    service_id=service_id, 
    name="<agent name>", 
    instructions="<agent instructions>"
)

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

Open AI Assistant 에이전트 검색

일단 만들어지면 도우미의 식별자는 해당 식별자를 통해 액세스할 수 있습니다. 이 식별자는 기존 도우미 정의에서 Open AI Assistant 에이전트를 만드는 데 사용할 수 있습니다.

.NET의 경우 에이전트 식별자는 에이전트에서 정의한 string 속성을 통해 노출됩니다.

OpenAIAssistantAgent agent =
    await OpenAIAssistantAgent.RetrieveAsync(
        OpenAIClientProvider.ForAzureOpenAI(/*<...service configuration>*/),
        "<your agent id>",
        new Kernel());
agent = await OpenAIAssistantAgent.retrieve(id=agent_id, kernel=kernel)

# or

agent = await AzureAssistantAgent.retrieve(id=agent_id, kernel=kernel)

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

Open AI Assistant 에이전트 사용

Assistant API모든 측면과 마찬가지로 대화는 원격으로 저장됩니다. 각 대화를 스레드라고 하며 고유 string 식별자로 식별됩니다. OpenAI 도우미 에이전트와의 상호 작용은 에이전트 를 호출할 때 지정해야 하는 이 특정 스레드 식별자에 연결됩니다.

// Define agent
OpenAIAssistantAgent agent = ...;

// Create a thread for the agent conversation.
string threadId = await agent.CreateThreadAsync();

// Add a user message to the conversation
chat.Add(threadId, new ChatMessageContent(AuthorRole.User, "<user input>"));

// Generate the agent response(s)
await foreach (ChatMessageContent response in agent.InvokeAsync(threadId))
{
  // Process agent response(s)...
}

// Delete the thread when it is no longer needed
await agent.DeleteThreadAsync(threadId);
# Define agent
openai_agent = await ...

# Create a thread for the agent conversation
thread_id = await agent.create_thread()

# Add a user message to the conversation
await agent.add_chat_message(
  thread_id=thread_id, 
  message=ChatMessageContent(role=AuthorRole.USER, content="<user input>"),
)

# Generate the agent response(s)
async for response in agent.invoke(thread_id=thread_id):
  # process agent response(s)...

# Delete the thread when it is no longer needed
await agent.delete_thread(thread_id)

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

Open AI Assistant 에이전트 삭제

도우미의 정의는 원격으로 저장되므로 자체 삭제 기능을 지원합니다. 이렇게 하면 에이전트가 더 이상 필요하지 않은 경우 시스템에서 에이전트를 제거할 수 있습니다.

참고: 삭제된 후 에이전트 인스턴스를 사용하려고 시도하면 예외가 발생합니다.

.NET의 경우 에이전트 식별자는 에이전트에서 정의한 string 속성을 통해 Agent.Id 노출됩니다.

// Perform the deletion
await agent.DeleteAsync();

// Inspect whether an agent has been deleted
bool isDeleted = agent.IsDeleted();
await agent.delete()

is_deleted = agent._is_deleted

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

사용 방법

Open AI Assistant 에이전트에 대한 엔드 투 엔드 예제는 다음을 참조하세요.