Vue d’ensemble du stockage Agents SDK

Le stockage est un composant essentiel de Microsoft Agents SDK, permettant aux assistants de conserver l’état de conversation, les données utilisateur et d’autres informations entre les sessions. Il prend en charge différentes options de stockage, notamment le stockage en mémoire, Azure Cosmos DB, le stockage d’objets blob Azure et autorise des fournisseurs de stockage personnalisés.

Options de stockage de clés

  1. Stockage mémoire

    • Adapté aux fins de test et de développement.
    • Les données sont effacées lorsque l’assistant redémarre, ce qui le rend inadapté à la production.
    • Les données ne sont disponibles que sur l’instance webapp, ce qui le rend inadapté lors de l’exécution dans un cluster.
  2. Azure Cosmos DB, une base de données distribuée globale

    • Une base de données multimodèle distribuée mondialement idéale pour les assistants de production.
    • Prend en charge le stockage partitionné pour la scalabilité et les performances.
  3. Stockage Blob Azure

    • Optimisé pour stocker des données non structurées telles que des fichiers texte ou binaires.
    • Couramment utilisé pour le stockage d’état et de transcription de l’assistant.
  4. Les options de stockage personnalisées peuvent être fournies en implémentant IStorage

Utilisation de différents fournisseurs de stockage

Stockage mémoire

Tous les exemples utilisent MemoryStorage

Pour .NET, dans Program.cs, inscrivez-vous MemoryStorage

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

Stockage Azure CosmosDb

Pour .NET :

  1. Ajouter une dépendance de package pour Microsoft.Agents.Storage.CosmosDb

  2. Dans Program.cs, ajoutez (ou remplacez l’inscription existante) IStorage par :

    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. Pour plus d’informations, consultez CosmosDbPartitionedStorageOptions.

Stockage Blob Azure

Pour .NET :

  1. Ajouter une dépendance de package pour Microsoft.Agents.Storage.Blobs

  2. Dans Program.cs, ajoutez (ou remplacez l’inscription existante) IStorage par :

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