ใช้พื้นที่จัดเก็บข้อมูลในเอเจนต์ของคุณ

ที่เก็บข้อมูลเป็นองค์ประกอบสําคัญของ SDK เอเจนต์สำหรับ Microsoft 365 ซึ่งช่วยให้ตัวแทนยังคงสถานะการสนทนา ข้อมูลผู้ใช้ และข้อมูลอื่น ๆ ในเซสชัน SDK สนับสนุนตัวเลือกพื้นที่จัดเก็บข้อมูลต่าง ๆ รวมถึง:

  • ที่เก็บในหน่วยความจํา
  • Azure Cosmos DB
  • ที่เก็บข้อมูล Azure Blob
  • ผู้ให้บริการที่เก็บข้อมูลแบบกําหนดเอง

ตัวเลือกการจัดเก็บคีย์

SDK ของตัวแทนมีผู้ให้บริการที่เก็บข้อมูลภายในหลายตัว ซึ่งแต่ละตัวมีกรณีการใช้งานและประโยชน์ของตนเอง คุณสามารถเลือกแบบที่เหมาะสมกับความต้องการของเจ้าหน้าที่ของคุณได้ คุณยังสามารถใช้ผู้ให้บริการที่เก็บข้อมูลแบบกําหนดเองของคุณเองได้

  1. ที่เก็บข้อมูลหน่วยความจํา

    • เหมาะสําหรับการทดสอบและพัฒนา
    • ข้อมูลจะถูกล้างเมื่อตัวแทนรีสตาร์ต ดังนั้นจึงไม่เหมาะสมสําหรับการผลิต
    • ข้อมูลจะพร้อมใช้งานบนอินสแตนซ์ของเว็บแอปเท่านั้น ดังนั้นจึงไม่เหมาะสมเมื่อทํางานในคลัสเตอร์
  2. Azure Cosmos DB

    • ฐานข้อมูลแบบหลายโมเดลที่กระจายอยู่ทั่วโลกเหมาะสําหรับตัวแทนการผลิต
    • รองรับที่เก็บข้อมูลที่มีการแบ่งพาร์ติชันสําหรับความสามารถในการปรับขนาดและประสิทธิภาพการทํางาน
  3. ที่เก็บข้อมูล Azure Blob

    • ปรับให้เหมาะสมสําหรับการจัดเก็บข้อมูลที่ไม่มีโครงสร้าง เช่น ข้อความหรือไฟล์ไบนารี
    • ใช้ทั่วไปสําหรับที่เก็บข้อมูลสถานะตัวแทนและสําเนาบทสนทนา
  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

ที่เก็บข้อมูล Azure blob

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