Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Microsoft Agent Framework admite la creación de agentes que usan el servicio ChatCompletion de Azure OpenAI .
Introducción
Agregue los paquetes NuGet necesarios al proyecto.
dotnet add package Azure.AI.OpenAI --prerelease
dotnet add package Azure.Identity
dotnet add package Microsoft.Agents.AI.OpenAI --prerelease
Creación de un agente ChatCompletion de Azure OpenAI
Como primer paso, debe crear un cliente para conectarse al servicio Azure OpenAI.
using System;
using Azure.AI.OpenAI;
using Azure.Identity;
using Microsoft.Agents.AI;
using OpenAI;
AzureOpenAIClient client = new AzureOpenAIClient(
new Uri("https://<myresource>.openai.azure.com"),
new AzureCliCredential());
Azure OpenAI admite varios servicios que proporcionan funcionalidades de llamada de modelos. Es necesario elegir el servicio ChatCompletion para crear un agente basado en ChatCompletion.
var chatCompletionClient = client.GetChatClient("gpt-4o-mini");
Por último, cree el agente mediante el método de extensión CreateAIAgent en ChatCompletionClient.
AIAgent agent = chatCompletionClient.CreateAIAgent(
instructions: "You are good at telling jokes.",
name: "Joker");
// Invoke the agent and output the text result.
Console.WriteLine(await agent.RunAsync("Tell me a joke about a pirate."));
Características del agente
Herramientas de funciones
Puede proporcionar herramientas de función personalizadas a los agentes de ChatCompletion de Azure OpenAI:
using System;
using System.ComponentModel;
using Azure.AI.OpenAI;
using Azure.Identity;
using Microsoft.Agents.AI;
using Microsoft.Extensions.AI;
using OpenAI;
var endpoint = Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT") ?? throw new InvalidOperationException("AZURE_OPENAI_ENDPOINT is not set.");
var deploymentName = Environment.GetEnvironmentVariable("AZURE_OPENAI_DEPLOYMENT_NAME") ?? "gpt-4o-mini";
[Description("Get the weather for a given location.")]
static string GetWeather([Description("The location to get the weather for.")] string location)
=> $"The weather in {location} is cloudy with a high of 15°C.";
// Create the chat client and agent, and provide the function tool to the agent.
AIAgent agent = new AzureOpenAIClient(
new Uri(endpoint),
new AzureCliCredential())
.GetChatClient(deploymentName)
.CreateAIAgent(instructions: "You are a helpful assistant", tools: [AIFunctionFactory.Create(GetWeather)]);
// Non-streaming agent interaction with function tools.
Console.WriteLine(await agent.RunAsync("What is the weather like in Amsterdam?"));
Respuestas de streaming
Obtenga respuestas a medida que se generan mediante streaming:
AIAgent agent = chatCompletionClient.CreateAIAgent(
instructions: "You are good at telling jokes.",
name: "Joker");
// Invoke the agent with streaming support.
await foreach (var update in agent.RunStreamingAsync("Tell me a joke about a pirate."))
{
Console.Write(update);
}
Uso del agente
El agente es un AIAgent estándar y admite todas las operaciones estándar AIAgent.
Consulte los tutoriales de introducción del agente para obtener más información sobre cómo ejecutar e interactuar con agentes.
Configuración
Variables de entorno
Antes de usar agentes de ChatCompletion de Azure OpenAI, debe configurar estas variables de entorno:
export AZURE_OPENAI_ENDPOINT="https://<myresource>.openai.azure.com"
export AZURE_OPENAI_CHAT_DEPLOYMENT_NAME="gpt-4o-mini"
Opcionalmente, también puede establecer:
export AZURE_OPENAI_API_VERSION="2024-10-21" # Default API version
export AZURE_OPENAI_API_KEY="<your-api-key>" # If not using Azure CLI authentication
Installation
Agregue el paquete de Agent Framework al proyecto:
pip install agent-framework --pre
Introducción
Autenticación
Los agentes de Azure OpenAI usan credenciales de Azure para la autenticación. El enfoque más sencillo es usar AzureCliCredential después de ejecutar az login:
from azure.identity import AzureCliCredential
credential = AzureCliCredential()
Creación de un agente ChatCompletion de Azure OpenAI
Creación básica del agente
La manera más sencilla de crear un agente es usar el AzureOpenAIChatClient con variables de entorno:
import asyncio
from agent_framework.azure import AzureOpenAIChatClient
from azure.identity import AzureCliCredential
async def main():
agent = AzureOpenAIChatClient(credential=AzureCliCredential()).create_agent(
instructions="You are good at telling jokes.",
name="Joker"
)
result = await agent.run("Tell me a joke about a pirate.")
print(result.text)
asyncio.run(main())
Configuración explícita
También puede proporcionar la configuración explícitamente en lugar de usar variables de entorno:
import asyncio
from agent_framework.azure import AzureOpenAIChatClient
from azure.identity import AzureCliCredential
async def main():
agent = AzureOpenAIChatClient(
endpoint="https://<myresource>.openai.azure.com",
deployment_name="gpt-4o-mini",
credential=AzureCliCredential()
).create_agent(
instructions="You are good at telling jokes.",
name="Joker"
)
result = await agent.run("Tell me a joke about a pirate.")
print(result.text)
asyncio.run(main())
Características del agente
Herramientas de funciones
Puede proporcionar herramientas de función personalizadas a los agentes de ChatCompletion de Azure OpenAI:
import asyncio
from typing import Annotated
from agent_framework.azure import AzureOpenAIChatClient
from azure.identity import AzureCliCredential
from pydantic import Field
def get_weather(
location: Annotated[str, Field(description="The location to get the weather for.")],
) -> str:
"""Get the weather for a given location."""
return f"The weather in {location} is sunny with a high of 25°C."
async def main():
agent = AzureOpenAIChatClient(credential=AzureCliCredential()).create_agent(
instructions="You are a helpful weather assistant.",
tools=get_weather
)
result = await agent.run("What's the weather like in Seattle?")
print(result.text)
asyncio.run(main())
Respuestas de streaming
Obtenga respuestas a medida que se generan mediante streaming:
import asyncio
from agent_framework.azure import AzureOpenAIChatClient
from azure.identity import AzureCliCredential
async def main():
agent = AzureOpenAIChatClient(credential=AzureCliCredential()).create_agent(
instructions="You are a helpful assistant."
)
print("Agent: ", end="", flush=True)
async for chunk in agent.run_stream("Tell me a short story about a robot"):
if chunk.text:
print(chunk.text, end="", flush=True)
print()
asyncio.run(main())
Uso del agente
El agente es un estándar BaseAgent y admite todas las operaciones estándar.
Consulte los tutoriales de introducción del agente para obtener más información sobre cómo ejecutar e interactuar con agentes.