Udostępnij za pośrednictwem


Eksplorowanie semantycznego jądraagenta asystenta OpenAI

Ostrzeżenie

Program Semantic Kernel Agent Framework jest w wersji zapoznawczej i może ulec zmianie.

Szczegółowa dokumentacja interfejsu API związana z tą dyskusją jest dostępna pod adresem:

Agenci są obecnie niedostępni w języku Java.

Co to jest asystent?

Interfejs API Asystenta OpenAI to wyspecjalizowany interfejs przeznaczony dla bardziej zaawansowanych i interaktywnych funkcji sztucznej inteligencji, który umożliwia deweloperom tworzenie spersonalizowanych i wieloetapowych agentów zorientowanych na zadania. W przeciwieństwie do interfejsu API uzupełniania czatów, który koncentruje się na prostych wymianach konwersacyjnych, interfejs API Asystenta umożliwia dynamiczne interakcje oparte na celu z dodatkowymi funkcjami, takimi jak interpreter kodu i wyszukiwanie plików.

Tworzenie agenta asystenta open AI

Utworzenie asystenta open AI wymaga wywołania usługi zdalnej, która jest obsługiwana asynchronicznie. Aby to zarządzać, agent Open AI Assistant jest tworzone za pomocą metody statycznej fabryki, zapewniając, że proces odbywa się w sposób nieblokowany. Ta metoda abstrahuje złożoność wywołania asynchronicznego, zwracając obietnicę lub przyszłość, gdy asystent zostanie w pełni zainicjowany i gotowy do użycia.

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>"
)

Agenci są obecnie niedostępni w języku Java.

Pobieranie agenta programu Open AI Assistant

Po utworzeniu identyfikator asystenta może mieć dostęp za pośrednictwem jego identyfikatora. Tego identyfikatora można użyć do utworzenia agenta asystenta open AI na podstawie istniejącej definicji asystenta.

W przypadku platformy .NET identyfikator agenta jest udostępniany jako string element za pośrednictwem właściwości zdefiniowanej przez dowolnego agenta.

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)

Agenci są obecnie niedostępni w języku Java.

Korzystanie z agenta Asystenta open AI

Podobnie jak we wszystkich aspektach interfejsu API Asystenta konwersacje są przechowywane zdalnie. Każda konwersacja jest określana jako wątek i identyfikowana przez unikatowy string identyfikator. Interakcje z agentem Asystenta OpenAI są powiązane z tym określonym identyfikatorem wątku, który należy określić podczas wywoływania agenta/

// 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)

Agenci są obecnie niedostępni w języku Java.

Usuwanie agenta programu Open AI Assistant

Ponieważ definicja asystenta jest przechowywana zdalnie, obsługuje możliwość samodzielnego usuwania. Dzięki temu agent może zostać usunięty z systemu, gdy nie jest już potrzebny.

Uwaga: próba użycia wystąpienia agenta po usunięciu powoduje wyjątek.

W przypadku platformy .NET identyfikator agenta jest udostępniany jako string element za pośrednictwem właściwości zdefiniowanej Agent.Id przez dowolnego agenta.

// 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

Agenci są obecnie niedostępni w języku Java.

Instrukcje

Aby zapoznać się z przykładem kompleksowego agenta asystenta open AI, zobacz: