Ajanlar SDK depolama genel bakış

Depolama, Microsoft Aracılar SDK'sının kritik bir bileşenidir ve aracıların konuşma durumunu, kullanıcı verilerini ve diğer bilgileri oturumlar arasında kalıcı hale getirir. Bellek içi depolama, Azure Cosmos DB, Azure Blob depolama gibi çeşitli depolama seçeneklerini destekler ve özel depolama sağlayıcılarına izin verir.

Anahtar depolama seçenekleri

  1. Bellek Depolama

    • Test ve geliştirme amaçları için uygundur.
    • Aracı yeniden başlatıldığında veriler temizlenir ve bu da üretim için uygun değildir.
    • Veriler yalnızca web uygulaması örneğinde kullanılabilir olduğundan kümede çalıştırılırken uygun değildir.
  2. Azure Cosmos DB veritabanı

    • Üretim aracıları için ideal olan genel olarak dağıtılmış, çok modelli bir veritabanı.
    • Ölçeklenebilirlik ve performans için bölümlenmiş depolamayı destekler.
  3. Azure Blob Depolama (Microsoft'un bulut depolama hizmeti)

    • Metin veya ikili dosyalar gibi yapılandırılmamış verileri depolamak için iyileştirilmiştir.
    • Aracı durumu ve transkript depolama için yaygın olarak kullanılır.
  4. Özel depolama seçenekleri uygulanarak sağlanabilir IStorage

Farklı depolama sağlayıcıları kullanma

Bellek depolama

Tüm örnekler MemoryStorage kullanır.

.NET için, Program.cs'de MemoryStorage kaydedin.

builder.Services.AddSingleton<IStorage, MemoryStorage>();

Azure CosmosDb depolama

.NET için:

  1. "Microsoft.Agents.Storage.CosmosDb için bir paket bağımlılığı ekle"

  2. Program.cs'da, var olan IStorage kaydı şu şekilde ekleyin (veya değiştirin):

    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);
    });
    
  3. Diğer ayrıntılar için bkz. CosmosDbPartitionedStorageOptions.

Azure Blob Depolama

.NET için:

  1. "Microsoft.Agents.Storage.Blobs için bir paket bağımlılığı ekle"

  2. Program.cs'da, var olan IStorage kaydı şu şekilde ekleyin (veya değiştirin):

    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);
    });