Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O armazenamento é um componente crítico do SDK de Agentes da Microsoft, permitindo que os agentes persistam o estado da conversa, os dados do usuário e outras informações entre as sessões. Ele dá suporte a várias opções de armazenamento, incluindo armazenamento na memória, Azure Cosmos DB, Armazenamento de Blobs do Azure e permite provedores de armazenamento personalizados.
Opções de armazenamento de chaves
Armazenamento de Memória
- Adequado para fins de teste e desenvolvimento.
- Os dados são limpos quando o agente é reiniciado, tornando-os inadequados para produção.
- Os dados só são válidos na instância do webapp, tornando-os inadequados ao serem executados em um cluster.
Azure Cosmos DB
- Um banco de dados multimodelo distribuído globalmente ideal para agentes de produção.
- Dá suporte ao armazenamento particionado para escalabilidade e desempenho.
Armazenamento de Blobs do Azure
- Otimizado para armazenar dados não estruturados, como arquivos binários ou texto.
- Normalmente usado para o estado do agente e o armazenamento de transcrição.
As opções de armazenamento personalizado podem ser fornecidas implementando
IStorage
Usando provedores de armazenamento diferentes
Armazenamento de memória
Todas as amostras usam MemoryStorage
Para .NET, em Program.cs, registre MemoryStorage
builder.Services.AddSingleton<IStorage, MemoryStorage>();
Armazenamento do Azure CosmosDb
Para .NET:
Adicionar uma dependência de pacote para
Microsoft.Agents.Storage.CosmosDbEm Program.cs, adicione (ou substitua o registro existente)
IStoragepor: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); });Para obter mais detalhes, confira
CosmosDbPartitionedStorageOptions.
Armazenamento de blobs do Azure
Para .NET:
Adicionar uma dependência de pacote para
Microsoft.Agents.Storage.BlobsEm Program.cs, adicione (ou substitua o registro existente)
IStoragepor: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); });