ภาพรวมที่เก็บข้อมูล SDK ของตัวแทน

ที่เก็บข้อมูลเป็นองค์ประกอบสําคัญของ SDK ตัวแทน Microsoft ทําให้ตัวแทนสามารถคงสถานะการสนทนา ข้อมูลผู้ใช้ และข้อมูลอื่น ๆ ในเซสชันได้ สนับสนุนตัวเลือกที่เก็บข้อมูลต่าง ๆ รวมถึงที่เก็บข้อมูลในหน่วยความจํา Azure Cosmos DB, Azure Blobs Storage และอนุญาตให้สําหรับผู้ให้บริการที่เก็บข้อมูลแบบกําหนดเอง

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

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

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

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

    • ปรับให้เหมาะสมสําหรับการจัดเก็บข้อมูลที่ไม่มีโครงสร้าง เช่น ข้อความหรือไฟล์ไบนารี
    • ใช้ทั่วไปสําหรับที่เก็บข้อมูลสถานะตัวแทนและสําเนาบทสนทนา
  4. สามารถให้ตัวเลือกที่เก็บข้อมูลแบบกําหนดเองได้โดยใช้ IStorage

การใช้ผู้ให้บริการพื้นที่เก็บข้อมูลที่แตกต่างกัน

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

ตัวอย่างทั้งหมดใช้ MemoryStorage

สําหรับ .NET, In 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

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

สําหรับ .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);
    });