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.
L'archiviazione è un componente fondamentale di Managed Disks. Consente agli agenti di mantenere lo stato della conversazione, i dati utente e altre informazioni tra le sessioni. L'SDK supporta varie opzioni di archiviazione, tra cui:
- Archiviazione in memoria
- Azure Cosmos DB, un servizio di database distribuito globale di Microsoft
- Archiviazione BLOB di Azure (Servizio di archiviazione Blob di Azure)
- Provider di archiviazione personalizzati
Opzioni di archiviazione delle chiavi
Agents SDK offre diversi provider di archiviazione predefiniti, ognuno con casi d'uso e vantaggi specifici. È possibile scegliere quello più adatto alle esigenze dell'agente. È anche possibile implementare il proprio provider di archiviazione personalizzato.
Archiviazione in memoria
- Adatta per scopi di test e sviluppo.
- I dati vengono eliminati quando l'agente si riavvia, quindi non è adatto all'uso in produzione.
- I dati sono disponibili solo nell'istanza dell'app Web, quindi non sono adatti quando vengono eseguiti in un cluster.
Azure Cosmos DB, un servizio di database distribuito globale di Microsoft
- Un database multimodello distribuito a livello globale ideale per gli agenti di produzione.
- Supporta l'archiviazione partizionata per scalabilità e prestazioni.
Archiviazione BLOB di Azure (Servizio di archiviazione Blob di Azure)
- Ottimizzato per l'archiviazione di dati non strutturati come file di testo o binari.
- Comunemente usato per l'archiviazione dello stato e della trascrizione dell'agente.
Opzioni di archiviazione personalizzate implementando
IStorage
Uso di provider di archiviazione diversi
Archiviazione in memoria
Tutti gli esempi usano MemoryStorage. Questa risorsa di archiviazione è volatile e adatta solo allo sviluppo e ai test. Per gli scenari di produzione, usare un'opzione di archiviazione più durevole, ad esempio Azure Cosmos DB o Archiviazione BLOB di Azure.
In Program.cs, registrare MemoryStorage:
builder.Services.AddSingleton<IStorage, MemoryStorage>();
Archiviazione Azure Cosmos DB
Aggiungere una dipendenza del pacchetto per
Microsoft.Agents.Storage.CosmosDb.In
Program.csaggiungere (o sostituire la registrazione esistente)IStoragecon:builder.Services.AddSingleton<IStorage>(sp => { var options = new CosmosDbPartitionedStorageOptions() { CosmosDbEndpoint = "your-cosmosdb-endpoint", DatabaseId = "your-database-id", ContainerId = "your-container-id", // Get a TokenCredential from your defined Connections TokenCredential = sp.GetService<IConnections>().GetConnection("ServiceConnection").GetTokenCredential() }; return new CosmosDbPartitionedStorage(options); });Altre informazioni sono disponibili in
CosmosDbPartitionedStorageOptions.
Archiviazione BLOB di Azure
Aggiungere una dipendenza del pacchetto per
Microsoft.Agents.Storage.Blobs.In
Program.csaggiungere (o sostituire la registrazione esistente)IStoragecon:builder.Services.AddSingleton<IStorage>(sp => { // Get a TokenCredential from your defined Connections var tokenCredential = sp.GetService<IConnections>().GetConnection("ServiceConnection").GetTokenCredential(); return new BlobsStorage( new Uri("{{your-blobs-storage-endpoint}}/agent-state"), tokenCredential); });