Χρήση χώρου αποθήκευσης στον παράγοντά σας

Η αποθήκευση αποτελεί κρίσιμο στοιχείο του SDK παραγόντων Microsoft 365. Επιτρέπει στους παράγοντες να αποθηκεύουν την κατάσταση της συνομιλίας, τα δεδομένα χρήστη και άλλες πληροφορίες μεταξύ συνεδριών. Το SDK υποστηρίζει διάφορες επιλογές αποθήκευσης, όπως:

  • Αποθήκευση στη μνήμη
  • Azure Cosmos DB
  • Εικονίδιο χώρου αποθήκευσης αντικειμένου Blob Azure
  • Προσαρμοσμένοι πάροχοι αποθήκευσης

Βασικές επιλογές αποθήκευσης

Το Agents SDK παρέχει πολλούς ενσωματωμένους παρόχους αποθήκευσης, ο καθένας με τις δικές του περιπτώσεις χρήσης και πλεονεκτήματα. Μπορείτε να επιλέξετε αυτό που ταιριάζει καλύτερα στις ανάγκες του παράγοντα σας. Μπορείτε επίσης να υλοποιήσετε τον δικό σας προσαρμοσμένο πάροχο αποθήκευσης.

  1. Αποθήκευση στη μνήμη

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

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

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

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

Αποθήκευση στη μνήμη

Όλα τα παραδείγματα χρησιμοποιούν MemoryStorage. Αυτή η αποθήκευση είναι πτητική και κατάλληλη μόνο για ανάπτυξη και δοκιμές. Για σενάρια παραγωγής, χρησιμοποιήστε μια πιο βιώσιμη επιλογή αποθήκευσης, όπως το Azure Cosmos DB ή το Azure Blob Storage.

Στο Program.cs, καταχωρήστε το MemoryStorage:

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

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

  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

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