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