Aracılığıyla paylaş


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

OpenAIAIAssistantAgentgeliş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 AssistantClientile 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

OpenAIAssistantAgentiçin uçtan uca bir örnek için bkz: