Επισκόπηση χώρου αποθήκευσης SDK αντιπροσώπων

Ο χώρος αποθήκευσης είναι ένα κρίσιμο στοιχείο του SDK των Microsoft Agents, επιτρέποντας στους υπαλλήλους να διατηρούν την κατάσταση συνομιλίας, τα δεδομένα χρήστη και άλλες πληροφορίες σε όλες τις περιόδους λειτουργίας. Υποστηρίζει διάφορες επιλογές αποθήκευσης, όπως χώρο αποθήκευσης στη μνήμη, Azure Cosmos DB, Χώρος αποθήκευσης αντικειμένων blob Azure και επιτρέπει προσαρμοσμένες υπηρεσίες παροχής χώρου αποθήκευσης.

Επιλογές αποθήκευσης κλειδιών

  1. Χώρος αποθήκευσης μνήμης

    • Κατάλληλο για δοκιμές και σκοπούς ανάπτυξης.
    • Τα δεδομένα καταργούνται όταν επανεκκινείται ο παράγοντας, καθιστώντας τα ακατάλληλα για παραγωγή.
    • Τα δεδομένα είναι διαθέσιμα μόνο στην παρουσία webapp, καθιστώντας τα ακατάλληλα όταν εκτελούνται σε ένα σύμπλεγμα.
  2. Azure Cosmos DB

    • Μια παγκόσμια κατανεμημένη βάση δεδομένων πολλών μοντέλων, ιδανική για παράγοντες παραγωγής.
    • Υποστηρίζει διαμετμημένο χώρο αποθήκευσης για κλιμάκωση και επιδόσεις.
  3. Χώρος αποθήκευσης Azure Blob

    • Βελτιστοποιημένο για την αποθήκευση μη δομημένων δεδομένων, όπως κειμένου ή δυαδικών αρχείων.
    • Χρησιμοποιείται συνήθως για την κατάσταση του παράγοντα και την αποθήκευση κειμένων.
  4. Οι προσαρμοσμένες επιλογές αποθήκευσης μπορούν να παρέχονται με την υλοποίηση IStorage

Χρήση διαφορετικών υπηρεσιών παροχής χώρου αποθήκευσης

Χώρος αποθήκευσης μνήμης

Όλα τα δείγματα χρησιμοποιούν MemoryStorage

Για .NET, Σε Program.cs, εγγραφείτε MemoryStorage

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

Χώρος αποθήκευσης Azure CosmosDb

Για .NET:

  1. Προσθέστε μια εξάρτηση πακέτου για Microsoft.Agents.Storage.CosmosDb

  2. Σε Program.cs, προσθέστε (ή αντικαταστήστε την υπάρχουσα) IStorage καταχώρηση με:

    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. Για περισσότερες λεπτομέρειες, ανατρέξτε στο θέμα CosmosDbPartitionedStorageOptions.

Χώρος αποθήκευσης blob Azure

Για .NET:

  1. Προσθέστε μια εξάρτηση πακέτου για Microsoft.Agents.Storage.Blobs

  2. Σε Program.cs, προσθέστε (ή αντικαταστήστε την υπάρχουσα) IStorage καταχώρηση με:

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