Гайд · TNWS AI
Как подключить File Search в Gemini API и отвечать по своим документам
Создание хранилища File Search, загрузка документов, запрос с цитатами, metadata-фильтры и тесты против выдуманных ответов.
Создайте File Search store, загрузите документы, дождитесь завершения индексации и передайте имя хранилища инструменту file_search. В ответе сохраняйте annotations: они связывают утверждение с файлом и метаданными. Если подтверждения нет, интерфейс должен честно показать, что источник не найден.
Рабочий пример
const interaction = await ai.interactions.create({
model: "gemini-3.8-flash",
input: "По внутренним документам назови срок гарантии и источник.",
tools: [{
type: "file_search",
file_search_store_names: [process.env.FILE_SEARCH_STORE]
}]
});
console.log(interaction.output_text);
for (const step of interaction.steps ?? []) {
console.dir(step, {depth: 6}); // ищем annotations
}
Что означает каждая важная часть
- Хранилище создаётся и наполняется заранее; запрос не должен стартовать до окончания обработки файла.
file_search_store_namesограничивает поиск конкретными хранилищами. Не подключайте общий store с документами разных клиентов.- Annotations могут содержать имя файла, источник и custom metadata. Их нужно выводить рядом с утверждением, а не прятать в техническом объекте.
- В Gemini 3 File Search можно сочетать со Structured Outputs, что удобно для извлечения суммы и валюты по схеме.
Порядок внедрения
- Разделите документы по правам доступа и жизненному циклу, затем создайте отдельные stores.
- При загрузке добавьте metadata: продукт, версия, дата действия и владелец.
- Дождитесь статуса готовности индекса; ошибочный файл отправьте в отдельную очередь.
- Перед запросом проверьте, что пользователь имеет доступ ко всем указанным stores.
- Разберите
stepsи annotations, сформируйте кликабельные ссылки на разрешённые оригиналы.
Как проверить результат
Загрузите документ с контрольной фразой и документ с устаревшим конфликтующим значением. Запросите факт на актуальную дату. Система должна показать источник и учитывать metadata версии. Затем спросите о факте, которого нет: корректный результат — отсутствие подтверждения, а не правдоподобная догадка.
Ограничения
Поиск извлекает релевантные фрагменты, но не гарантирует полноту. Плохая структура, сканы и противоречивые версии мешают ответу. Результаты нельзя показывать пользователю, который не имел доступа к исходному документу.
Чего не делать
- Не смешивайте документы разных организаций в одном доступном store.
- Не публикуйте ответ без annotations для важных фактов.
- Не оставляйте устаревшие версии без даты и статуса.
Частые вопросы
Можно ли использовать пример в production?
Как основу — да, но добавьте авторизацию, таймауты, обработку ошибок, лимиты и тесты из статьи.
Где проверять актуальное имя модели?
В официальном каталоге Gemini API и Google AI Studio непосредственно перед развёртыванием.
Нужно ли доверять ответу без проверки?
Нет. Формат проверяется кодом, а важные факты — источником или вашей базой данных.
Что делать при изменении API?
Зафиксировать версию SDK, прочитать release notes и прогнать сохранённый набор интеграционных тестов.
Официальный источник
Документация Google, проверена 11 сентября 2026 года: https://ai.google.dev/gemini-api/docs/file-search
Читайте также
Как анализировать веб-страницы через Gemini URL Context с цитатами
Как передать Gemini список URL, извлечь данные, получить url_citation и проверить статус загрузки каждой страницы.
Как добавить Grounding with Google Search в Gemini API и вывести ссылки
Настройка Google Search grounding в Gemini API: актуальный запрос, grounding metadata, ссылки и проверка утверждений.
Как выполнять вычисления через Code Execution в Gemini API и проверять результат
Как подключить Code Execution в Gemini API для расчётов: постановка задачи, код, вывод и независимая контрольная проверка.
Комментарии
Пока тихо. Скажите первое слово