Prozkoumání agenta Sémantického jádra Open AI Assistant (experimentální)
Upozorňující
Sémantická architektura agenta jádra je experimentální, stále ve vývoji a může se změnit.
Podrobná dokumentace k rozhraní API související s touto diskuzí je k dispozici na adrese:
Agenti momentálně nejsou v Javě k dispozici.
Co je asistent?
Rozhraní API pro OpenAI Assistant je specializované rozhraní navržené pro pokročilejší a interaktivní funkce AI, které vývojářům umožňují vytvářet přizpůsobené a vícekrokové agenty orientované na úlohy. Na rozdíl od rozhraní API pro dokončování chatu, které se zaměřuje na jednoduché konverzační výměny, umožňuje rozhraní API pomocníka dynamické interakce řízené cíli s dalšími funkcemi, jako je interpret kódu a vyhledávání souborů.
- Průvodce otevřením pomocníka s AI
- Otevření rozhraní API pomocníka s AI
- Rozhraní API pomocníka v Azure
Vytvoření agenta Open AI Assistant
Vytvoření Nástroje Open AI Assistant vyžaduje vyvolání vzdálené služby, která se zpracovává asynchronně. Ke správě se agent Open AI Assistant vytvoří instanci prostřednictvím metody statické továrny, čímž zajistí, že proces probíhá neblokujícím způsobem. Tato metoda abstrahuje složitost asynchronního volání a vrací příslib nebo budoucnost, jakmile je asistent plně inicializován a připraven k použití.
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>"
)
Agenti momentálně nejsou v Javě k dispozici.
Načtení agenta Open AI Assistant
Po vytvoření může být identifikátor asistenta přístupný prostřednictvím jeho identifikátoru. Tento identifikátor lze použít k vytvoření agenta Open AI Assistant z existující definice asistenta.
Pro .NET je identifikátor agenta vystaven jako string
prostřednictvím vlastnosti definované libovolným agentem.
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)
Agenti momentálně nejsou v Javě k dispozici.
Použití agenta Open AI Assistant
Stejně jako u všech aspektů rozhraní API pomocníka se konverzace ukládají vzdáleně. Každá konverzace se označuje jako vlákno a identifikuje se jedinečným string
identifikátorem. Interakce s agentem OpenAI Assistant jsou svázané s tímto konkrétním identifikátorem vlákna, který je potřeba zadat při volání 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)
Agenti momentálně nejsou v Javě k dispozici.
Odstranění agenta Open AI Assistant
Vzhledem k tomu, že definice asistenta je uložená vzdáleně, podporuje možnost samoobslužného odstranění. To umožňuje, aby se agent odebral ze systému, když už ho nepotřebujete.
Poznámka: Pokus o použití instance agenta po odstranění způsobí výjimku.
Pro .NET je identifikátor agenta vystaven jako string
prostřednictvím Agent.Id
vlastnosti definované libovolným agentem.
// 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
Agenti momentálně nejsou v Javě k dispozici.
Postupy
Kompletní příklad pro agenta Open AI Assistant najdete tady: