Anlam Çekirdeği Keşfi OpenAIAssistantAgent
Önemli
Bu özellik, sürüm adayı aşamasındadır. Bu aşamadaki özellikler neredeyse eksiksiz ve genel olarak kararlıdır, ancak genel kullanıma ulaşmadan önce küçük iyileştirmeler veya iyileştirmeler yapabilir.
Bu tartışmayla ilgili ayrıntılı API belgelerine şu adreste ulaşabilirsiniz:
Ajanslar şu anda Java'da kullanılamıyor.
Yardımcı nedir?
OpenAI Yardımcısı API'si, geliştiricilerin kişiselleştirilmiş ve çok adımlı görev odaklı aracılar oluşturmasına olanak tanıyan, daha gelişmiş ve etkileşimli yapay zeka özellikleri için tasarlanmış özel bir arabirimdir. Basit konuşma değişimlerine odaklanan Sohbet Tamamlama API'sinin aksine, Yardımcı API kod yorumlayıcı ve dosya arama gibi ek özelliklerle dinamik, hedef odaklı etkileşimlere olanak tanır.
Geliştirme Ortamınızı Hazırlama
OpenAIAIAssistantAgent
geliştirmeye devam etmek için geliştirme ortamınızı uygun paketlerle yapılandırın.
projenize Microsoft.SemanticKernel.Agents.OpenAI
paketini ekleyin:
dotnet add package Microsoft.SemanticKernel.Agents.AzureAI --prerelease
ayrıca Azure.Identity
paketini de dahil etmek isteyebilirsiniz:
dotnet add package Azure.Identity
İsteğe bağlı semantic-kernel
bağımlılıklarıyla paketini yükleyin:
pip install semantic-kernel[azure]
Ajanlar şu anda Java'da kullanılamıyor.
Bir OpenAIAssistantAgent
oluşturma
Bir OpenAIAssistant
oluşturmak için, zaman uyumsuz olarak işlenen uzak bir hizmet çağrılır. Bunu yönetmek için, OpenAIAssistantAgent
statik bir fabrika yöntemiyle örneklendirilir ve bu işlemin engelleyici olmayan bir biçimde gerçekleşmesi sağlanır. Bu yöntem zaman uyumsuz çağrının karmaşıklığını soyutlar ve yardımcı tam olarak başlatıldığında ve kullanıma hazır olduğunda bir söz veya gelecek döndürür.
AssistantClient client = OpenAIAssistantAgent.CreateAzureOpenAIClient(...).GetAssistantClient();
Assistant assistant =
await this.AssistantClient.CreateAssistantAsync(
"<model name>",
"<agent name>",
instructions: "<agent instructions>");
OpenAIAssistantAgent agent = new(assistant, client);
from semantic_kernel.agents.open_ai import AzureAssistantAgent, OpenAIAssistantAgent
# Set up the client and model using Azure OpenAI Resources
client, model = AzureAssistantAgent.setup_resources()
# Define the assistant definition
definition = await client.beta.assistants.create(
model=model,
instructions="<instructions>",
name="<agent name>",
)
# Create the AzureAssistantAgent instance using the client and the assistant definition
agent = AzureAssistantAgent(
client=client,
definition=definition,
)
# or
# Set up the client and model using OpenAI Resources
client, model = OpenAIAssistantAgent.setup_resources()
# Define the assistant definition
definition = await client.beta.assistants.create(
model=model,
instructions="<instructions>",
name="<agent name>",
)
# Create the OpenAIAssistantAgent instance using the client and the assistant definition
agent = OpenAIAssistantAgent(
client=client,
definition=definition,
)
Şu anda Java'da ajanlar kullanılamıyor.
OpenAIAssistantAgent
geri alma
Oluşturulduktan sonra, yardımcının tanımlayıcısına tanımlayıcısı aracılığıyla erişilebilir. Bu tanımlayıcı, var olan bir yardımcı tanımından OpenAIAssistantAgent
oluşturmak için kullanılabilir.
.NET için aracı tanımlayıcısı, herhangi bir aracı tarafından tanımlanan özellik aracılığıyla string
olarak görünür hale getirilir.
AssistantClient client = OpenAIAssistantAgent.CreateAzureOpenAIClient(...).GetAssistantClient();
Assistant assistant = await this.AssistantClient.GetAssistantAsync("<assistant id>");
OpenAIAssistantAgent agent = new(assistant, client);
# Using Azure OpenAI Resources
# Create the client using Azure OpenAI resources and configuration
client, model = AzureAssistantAgent.setup_resources()
# Create the assistant definition
definition = await client.beta.assistants.create(
model=model,
name="<agent name>",
instructions="<instructions>",
)
# Store the assistant ID
assistant_id = definition.id
# Retrieve the assistant definition from the server based on the assistant ID
new_asst_definition = await client.beta.assistants.retrieve(assistant_id)
# Create the AzureAssistantAgent instance using the client and the assistant definition
agent = AzureAssistantAgent(
client=client,
definition=new_asst_definition,
)
Ajanlar şimdilik Java'da mevcut değil.
OpenAIAssistantAgent
kullanma
Yardımcı API'sinin tüm yönleriyle olduğu gibi konuşmalar da uzaktan depolanır. Her konuşma bir konu olarak adlandırılır ve benzersiz bir string
tanımlayıcıyla belirtilir.
OpenAIAssistantAgent
ile olan etkileşimler, aracı çağırırken belirtilmesi gereken belirli iş parçacığı tanımlayıcısına bağlıdır.
// 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)
Ajanlar şu anda Java'da kullanılamıyor.
Bir OpenAIAssistantAgent
silme işlemi
Yardımcının tanımı uzaktan depolandığından, silinmezse kalıcı olur.
Yardımcı tanımını silme işlemi doğrudan AssistantClient
ile gerçekleştirilebilir.
Not: Silinmiş bir aracı örneğini kullanmaya çalışmak, bir hizmet hatasıyla sonuçlanacaktır.
.NET için, aracı tanımlayıcısı, herhangi bir aracı tarafından tanımlanan bir özellik olarak string
aracılığıyla görünür hale getirilir.
AssistantClient client = OpenAIAssistantAgent.CreateAzureOpenAIClient(...).GetAssistantClient();
Assistant assistant = await this.AssistantClient.DeleteAssistantAsync("<assistant id>");
await agent.delete()
is_deleted = agent._is_deleted
Ajanlar şu anda Java'da kullanılamıyor.
Nasıl Yapılır
OpenAIAssistantAgent
için uçtan uca bir örnek için bkz: