Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Хранилище — критически важный компонент SDK Microsoft Agents, позволяющий агентам сохранять состояние разговора, пользовательские данные и другую информацию на протяжении сессий. Он поддерживает различные варианты хранения, включая хранение в памяти, Azure Cosmos DB, Azure Blobs Storage, а также позволяет создавать пользовательских поставщиков хранилищ.
Варианты хранения ключей
Хранилище памяти
- Подходит для тестирования и разработки.
- Данные очищаются при повторном запуске агента, что делает его непригодным для производства.
- Данные доступны только в экземпляре веб-приложения, что делает их неподходящими при работе в кластере.
Azure Cosmos DB (облачная база данных)
- Глобально распределённая многомодельная база данных, идеально подходящая для производственных агентов.
- Поддерживает разделённое хранилище для масштабируемости и производительности.
Хранилище BLOB-объектов Azure (Азур Блоб Сторадж)
- Оптимизирован для хранения неструктурированных данных, таких как текстовые или двоичные файлы.
- Часто используется для хранения состояния агента и транскриптов.
Опции пользовательского хранения можно реализовать
IStorage
Использование разных поставщиков хранения данных
Запоминающее устройство
Все сэмплы используются MemoryStorage
Для .NET, в Program.cs регистрируйтесь MemoryStorage
builder.Services.AddSingleton<IStorage, MemoryStorage>();
Azure CosmosDb storage
Для .NET:
Добавить зависимость пакета для
Microsoft.Agents.Storage.CosmosDbВ 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); });Дополнительные сведения см. в статье
CosmosDbPartitionedStorageOptions.
Хранилище BLOB-объектов Azure
Для .NET:
Добавить зависимость пакета для
Microsoft.Agents.Storage.BlobsВ 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); });