Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Примечание
Этот документ ссылается на агентов Microsoft Foundry (classic).
🔍 Просмотрите новую документацию по поиску файлов. Агенты (классические) в настоящее время устарели и будут удалены 31 марта 2027 года. Используйте новые агенты в общедоступной службе Microsoft Foundry Agents. Следуйте инструкциям по миграции , чтобы обновить рабочие нагрузки.
Поиск по файлам расширяет агентов, предоставляя им знания из внешних источников, таких как конфиденциальная информация о продуктах или документы, которые могут быть предоставлены пользователями.
Примечание
Используя стандартную настройку агента, улучшенное средство поиска файлов гарантирует, что файлы остаются в собственном хранилище, а Поиск с использованием ИИ Azure ресурс используется для их приема, обеспечивая полный контроль над данными.
Источники файлов
- Отправка локальных файлов
- Хранилище BLOB-объектов Azure
Поддержка использования
Примечание
Средство поиска файлов в настоящее время недоступно в следующих регионах:
- Северная Италия
- Южная Бразилия
- Западная Европа
| поддержка Azure ИИ | пакет SDK Python | C# SDK | JavaScript SDK | пакет SDK Java | REST API | Базовая настройка агента | Настройка стандартного агента |
|---|---|---|---|---|---|---|---|
| ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | Только отправка файлов | Отправка файлов и использование собственного хранилища BLOB-объектов |
Зависимость от настройки агента
Базовая настройка агента
Средство поиска файлов имеет те же функции, что и Azure Помощники OpenAI. используются управляемые Microsoft ресурсы поиска и хранилища.
- Отправленные файлы хранятся в управляемом хранилище Microsoft
- Хранилище векторов создается с помощью ресурса управляемого поиска Microsoft
Настройка стандартного агента
Средство поиска файлов использует Поиск с использованием ИИ Azure и Хранилище BLOB-объектов Azure ресурсы, подключенные во время установки агента.
- Отправленные файлы хранятся в подключенной учетной записи Хранилище BLOB-объектов Azure
- Хранилища векторов создаются с помощью подключенного ресурса Поиск с использованием ИИ Azure
Для обоих настроек агента служба обрабатывает весь процесс приема, который включает в себя:
- Автоматический синтаксический анализ и сегментация документов
- Создание и хранение эмбеддингов
- Использование поиска векторов и ключевых слов для получения соответствующего содержимого для запросов пользователей.
Нет разницы в коде между двумя настройками; единственным вариантом является место хранения файлов и созданных векторных хранилищ.
Принцип работы
Средство поиска файлов реализует несколько лучших практик по извлечению данных из коробки, которые помогут извлекать правильные данные из файлов и улучшать ответы модели. Средство поиска файлов:
- Перезаписывает запросы пользователей, чтобы оптимизировать их для поиска.
- Разбивает сложные запросы пользователей на несколько поисковых запросов, которые могут выполняться параллельно.
- Выполняет как ключевые слова, так и семантические поиски в хранилищах векторов агента и потока.
- Повторно выбирает результаты поиска, чтобы выбрать наиболее релевантные, прежде чем создавать окончательный ответ.
- По умолчанию средство поиска файлов использует следующие параметры:
- Размер блока: 800 токенов
- Перекрытие блока: 400 маркеров
- Модель встраивания: text-embedding-3-large с 256 измерениями
- Максимальное количество блоков, добавленных в контекст: 20
Векторные хранилища
Объекты векторного хранилища предоставляют средству поиска файлов возможность поиска файлов. Добавление файла в векторное хранилище автоматически анализирует, разбивает на части, встраивает и сохраняет файл в векторной базе данных, которая поддерживает как поиск по ключевым словам, так и семантический поиск. Каждое векторное хранилище может содержать до 10 000 файлов. Хранилища векторов можно подключать как к агентам, так и к потокам. В настоящее время можно подключить не более одного векторного хранилища к агенту и по крайней мере одно векторное хранилище к потоку.
Аналогичным образом эти файлы можно удалить из векторного хранилища следующим образом:
- Удаление объекта файла векторного хранилища или
- Удалив базовый объект файла, что приведет к удалению файла из всех конфигураций vector_store и code_interpreter для всех агентов и потоков в организации.
Максимальный размер файла составляет 512 МБ. Каждый файл должен содержать не более 5 000 000 маркеров для каждого файла (вычисляется автоматически при присоединении файла).
Обеспечение готовности хранилища векторов перед созданием запусков
Мы настоятельно рекомендуем убедиться, что все файлы в хранилище векторов (vector_store) были полностью обработаны перед созданием выполнения. Это гарантирует возможность поиска всех данных в хранилище векторов. Вы можете проверить готовность векторного хранилища с помощью вспомогательных средств опроса в пакетах SDK или вручную провести опрос объекта векторного хранилища, чтобы убедиться, что состояние завершено.
В качестве запасного варианта в объекте выполнения устанавливается 60-секундное максимальное ожидание, когда векторное хранилище потока содержит файлы, которые всё ещё обрабатываются. Это обеспечивает, что любые файлы, которые пользователи загружают в тему, полностью доступны для поиска перед началом выполнения. Это резервное ожидание не применяется к хранилищу векторов агента.
Создание векторных хранилищ и добавление файлов
Добавление файлов в векторные хранилища — это асинхронная операция. Чтобы убедиться, что операция завершена, рекомендуется использовать вспомогательные средства создания и опроса в наших официальных пакетах SDK. Если вы не используете SDK, вы можете получить vector_store объект и отслеживать его file_counts свойство, чтобы увидеть результат процесса приема файлов.
Файлы также можно добавить в векторное хранилище после его создания путем создания файлов векторного хранилища.
# create a vector store with no file and wait for it to be processed
vector_store = project_client.agents.vector_stores.create_and_poll(data_sources=[], name="sample_vector_store")
print(f"Created vector store, vector store ID: {vector_store.id}")
# add the file to the vector store or you can supply file ids in the vector store creation
vector_store_file_batch = project_client.agents.vector_store_file_batches.create_and_poll(
vector_store_id=vector_store.id, file_ids=[file.id]
)
print(f"Created vector store file batch, vector store file batch ID: {vector_store_file_batch.id}")
Кроме того, можно добавить несколько файлов в векторное хранилище путем создания пакетов до 500 файлов.
batch = project_client.agents.vector_store_file_batches.create_and_poll(
vector_store_id=vector_store.id,
file_ids=[file_1.id, file_2.id, file_3.id, file_4.id, file_5.id]
)
Базовая настройка агента: удаление файлов из векторных хранилищ
Файлы можно удалить из векторного хранилища с помощью следующих способов:
- Удаление объекта файла векторного хранилища или
- Удаление базового объекта файла, которое удаляет файл из всех конфигураций vector_store и code_interpreter во всех агентах и потоках выполнения в организации.
Максимальный размер файла составляет 512 МБ. Каждый файл должен содержать не более 5 000 000 маркеров для каждого файла (вычисляется автоматически при присоединении файла).
Удаление хранилища векторов
Вы можете удалить векторное хранилище из средства поиска файлов.
file_search_tool.remove_vector_store(vector_store.id)
print(f"Removed vector store from file search, vector store ID: {vector_store.id}")
project_client.agents.update_agent(
agent_id=agent.id, tools=file_search_tool.definitions, tool_resources=file_search_tool.resources
)
print(f"Updated agent, agent ID: {agent.id}")
Удаление хранилищ векторов
project_client.agents.vector_stores.delete(vector_store.id)
print("Deleted vector store")
Управление затратами с помощью политик истечения срока действия
Для базовой настройки file_search агента инструмент использует vector_stores объект как ресурс, и выставляется счет в зависимости от размера созданных объектов vector_store. Размер объекта векторного хранилища данных — это сумма всех проанализированных блоков из ваших файлов и их соответствующих векторов.
Чтобы помочь вам управлять затратами, связанными с этими объектами vector_store, мы добавили поддержку политик истечения срока действия в объекте vector_store . Эти политики можно задать при создании или обновлении vector_store объекта.
vector_store = project_client.agents.vector_stores.create_and_poll(
name="Product Documentation",
file_ids=[file_1.id],
expires_after={
"anchor": "last_active_at",
"days": 7
}
)
Хранилища векторов потоков имеют политики истечения срока действия по умолчанию
Хранилища векторов, созданные с помощью вспомогательных классов потоков (например, tool_resources.file_search.vector_stores в потоках или message.attachments в сообщениях), имеют политику автоматического истечения спустя семь дней после последнего использования, что определяется как момент, когда хранилище векторов последний раз участвовало в выполнении.
Когда срок действия хранилища векторов истекает, запуски в этом потоке завершаются сбоем. Чтобы устранить эту проблему, можно повторно создать vector_store с теми же файлами и повторно подключить его к потоку.
Поддерживаемые типы файлов
Примечание
Для типов text/MIME кодировка должна быть либо utf-8, utf-16, либо ASCII.
| Формат файла | Тип MIME |
|---|---|
.c |
text/x-c |
.cs |
text/x-csharp |
.cpp |
text/x-c++ |
.doc |
application/msword |
.docx |
application/vnd.openxmlformats-officedocument.wordprocessingml.document |
.html |
text/html |
.java |
text/x-java |
.json |
application/json |
.md |
text/markdown |
.pdf |
application/pdf |
.php |
text/x-php |
.pptx |
application/vnd.openxmlformats-officedocument.presentationml.presentation |
.py |
text/x-python |
.py |
text/x-script.python |
.rb |
text/x-ruby |
.tex |
text/x-tex |
.txt |
text/plain |
.css |
text/css |
.js |
text/javascript |
.sh |
application/x-sh |
.ts |
application/typescript |
Ограничения
- Отправка файлов и создание векторного хранилища завершится ошибкой, если в вашей Политике Azure для индексов ресурсов Azure Search стоит запрет на индексы, не содержащие CMK, для значения Encryption. В этом случае необходимо заранее выгрузить индексы из ресурса Поиск с использованием ИИ Azure, а затем ссылаться на них в вашем агенте. Невозможно создать индексы из Foundry с типом шифрования = ключи, управляемые клиентом.