Partager via


Exploration de l’agent Assistant Open AI du noyau sémantique (expérimental)

Avertissement

L’infrastructure de l’agent de noyau sémantique est expérimentale, toujours en cours de développement et est susceptible de changer.

La documentation détaillée de l’API relative à cette discussion est disponible à l’adresse suivante :

Les agents sont actuellement indisponibles en Java.

Qu’est-ce qu’un Assistant ?

L’API De l’Assistant OpenAI est une interface spécialisée conçue pour des fonctionnalités d’IA plus avancées et interactives, permettant aux développeurs de créer des agents personnalisés et multi-étapes orientés tâches. Contrairement à l’API d’achèvement de conversation, qui se concentre sur des échanges conversationnels simples, l’API Assistant permet des interactions dynamiques pilotées par les objectifs avec des fonctionnalités supplémentaires telles que l’interpréteur de code et la recherche de fichiers.

Création d’un agent Assistant Open AI

La création d’un Assistant Open AI nécessite l’appel d’un service distant, qui est géré de manière asynchrone. Pour gérer cela, l’Agent Assistant Open AI est instancié via une méthode de fabrique statique, ce qui garantit que le processus se produit de manière non bloquante. Cette méthode extrait la complexité de l’appel asynchrone, en retournant une promesse ou un avenir une fois que l’Assistant est entièrement initialisé et prêt à être utilisé.

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

Les agents sont actuellement indisponibles en Java.

Récupération d’un agent Assistant Open AI

Une fois créé, l’identificateur de l’Assistant peut être accessible via son identificateur. Cet identificateur peut être utilisé pour créer un agent Assistant Open AI à partir d’une définition d’assistant existante.

Pour .NET, l’identificateur de l’agent est exposé sous la forme d’une string propriété définie par n’importe quel agent.

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)

Les agents sont actuellement indisponibles en Java.

Utilisation d’un agent Assistant Open AI

Comme avec tous les aspects de l’API Assistant, les conversations sont stockées à distance. Chaque conversation est appelée thread et identifiée par un identificateur uniquestring. Les interactions avec votre Agent Assistant OpenAI sont liées à cet identificateur de thread spécifique qui doit être spécifié lors de l’appel de l’agent/

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

Les agents sont actuellement indisponibles en Java.

Suppression d’un agent Assistant Open AI

Étant donné que la définition de l’Assistant est stockée à distance, elle prend en charge la fonctionnalité d’auto-suppression. Cela permet à l’agent d’être supprimé du système lorsqu’il n’est plus nécessaire.

Remarque : une tentative d’utilisation d’une instance d’agent après la suppression entraîne une exception.

Pour .NET, l’identificateur de l’agent est exposé sous la forme d’une string Agent.Id propriété définie par n’importe quel agent.

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

Les agents sont actuellement indisponibles en Java.

Procédure

Pour obtenir un exemple de bout en bout pour un agent d’Assistant Open AI, consultez :