Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Il blocco costitutivo Dapr Conversation instrada l'inferenza del modello tramite un sidecar Dapr ed espone un oggetto IChatClient che può fungere da supporto per un agente .NET di Agent Framework. Il fornitore del modello e le credenziali sono configurati nel componente Dapr Conversation anziché direttamente nel processo agente.
Prerequisites
- .NET 10 o versione successiva.
- Docker e l'interfaccia della riga di comando di Dapr.
- Componente di conversazione Dapr configurato, ad esempio un componente supportato da Ollama.
Installare i pacchetti
dotnet add package Dapr.AI.Microsoft.Extensions
dotnet add package Microsoft.Agents.AI --prerelease
Configuration
DAPR_GRPC_ENDPOINT="http://localhost:3501"
DAPR_GRPC_ENDPOINT è facoltativo e il valore predefinito è http://localhost:3501. Impostare ConversationComponentName nel codice dell'applicazione sul nome del componente Dapr Conversation, ad esempio ollama.
Creare un agente supportato daPr
Configura l'endpoint sidecar di Dapr e il componente Conversation tramite l'iniezione delle dipendenze, risolvi il IChatClient e convertilo in un agente.
// the sidecar (see this sample's README). Override it with the DAPR_GRPC_ENDPOINT environment
// variable if you run the sidecar on a different port.
var daprGrpcEndpoint = Environment.GetEnvironmentVariable("DAPR_GRPC_ENDPOINT") ?? "http://localhost:3501";
// Register the Dapr Conversation client with dependency injection.
var app = Host.CreateDefaultBuilder()
.ConfigureServices(services =>
{
// Configure the gRPC endpoint for the Dapr sidecar.
services.AddDaprConversationClient((_, builder) => builder.UseGrpcEndpoint(daprGrpcEndpoint));
// Provide the name of the Conversation component loaded in the sidecar to use.
services.AddDaprChatClient(opt => opt.ConversationComponentName = "ollama");
}).Build();
// Get an instance of the Dapr chat client from the dependency injection container.
using var scope = app.Services.CreateScope();
var daprChatClient = scope.ServiceProvider.GetRequiredService<IChatClient>();
// Use this chat client to construct an AIAgent.
AIAgent agent = daprChatClient.AsAIAgent(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."));
Le funzionalità del provider dipendono dal componente Dapr Conversation e dal modello sottostante.
Tools
Il supporto per gli strumenti viene ereditato dal componente e dal modello Dapr Conversation configurati.
| Tool | Condizione | Notes |
|---|---|---|
| Strumenti per le funzioni | Variabile | Richiede il supporto per le chiamate di funzione dal componente e dal modello configurati. |
| Approvazione degli strumenti | Variabile | Disponibile quando il modello produce chiamate a strumenti di funzione. |
| Strumenti ospitati dal provider | ❌ | Dapr non aggiunge un'interfaccia separata per gli strumenti ospitati di Agent Framework. |
| Strumenti MCP locali | ✅ | Viene eseguito nel processo dell'applicazione. |