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

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

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

ตัวเลือกการจัดเก็บที่สำคัญ

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

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

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

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

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

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