Aracınızda depolamayı kullanın

Depolama, Microsoft 365 Aracılar SDK'sı'nın kritik bir bileşenidir. Aracıların konuşma durumunu, kullanıcı verilerini ve diğer bilgileri oturumlar arasında kalıcı hale getirmesine olanak tanır. SDK, aşağıdakiler dahil olmak üzere çeşitli depolama seçeneklerini destekler:

  • Bellek içi depolama
  • Azure Cosmos DB
  • Azure Blob Depolama
  • Özel depolama sağlayıcıları

Ana depolama seçenekleri

Aracılar SDK'sı, her birinin kendi kullanım durumları ve avantajları olan birkaç yerleşik depolama sağlayıcısı sunar. Aracınızın gereksinimlerine en uygun olanı seçebilirsiniz. Ayrıca kendi özel depolama sağlayıcınızı uygulayabilirsiniz.

  1. Bellek depolaması

    • Sınama ve geliştirme amacına uygundur.
    • Aracı yeniden başlatıldığında veriler silinir, bu nedenle üretim için uygun değildir.
    • Veriler yalnızca web uygulaması örneğinde kullanılabilir, bu nedenle bir kümede çalışırken uygun değildir.
  2. Azure Cosmos DB

    • Üretim aracıları için ideal olan küresel olarak dağıtılmış, çok modelli bir veritabanı.
    • Ölçeklenebilirlik ve performans için bölümlenmiş depolamayı destekler.
  3. Azure Blob Depolama

    • Metin veya ikili dosyalar gibi yapılandırılmamış verileri depolamak için optimize edilmiştir.
    • Aracı durumu ve transkripsiyonu depolaması için yaygın olarak kullanılır.
  4. IStorage uygulanarak özel depolama seçenekleri

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

Bellek depolaması

Tüm örnekler MemoryStorage kullanır. Bu depolama geçicidir ve yalnızca geliştirme ve sınama için uygundur. Üretim senaryoları için Azure Cosmos DB veya Azure Blob Depolama gibi daha dayanıklı bir depolama seçeneği kullanın.

Program.cs içinde MemoryStorage kaydettirin:

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

Azure Cosmos DB depolaması

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

  2. Program.cs içinde IStorage kaydını ekleyin (veya mevcut olanını 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. Daha fazla için bkz: CosmosDbPartitionedStorageOptions.

Azure blob depolama

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

  2. Program.cs içinde IStorage kaydını ekleyin (veya mevcut olanını 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);
    });