Что именно будем собирать
Поиск по смыслу нужен, когда вы помните содержание документа, но не его название и точную формулировку. В учебном примере человек спрашивает «как вернуть покупку», а нужный текст называется «Порядок возврата товара». Задача системы — предложить близкие по содержанию фрагменты. Это не обещание, что любой похожий текст содержит правильный ответ.
В документации OpenAI для такой задачи описаны embeddings — числовые представления текста. По-русски будем называть их смысловыми векторами: модель превращает текст в список чисел, а расстояние между списками помогает оценивать близость содержания. Чем меньше расстояние, тем выше предполагаемая близость. Числа не нужно читать вручную.
Сначала соберём именно поиск: вопрос, несколько подходящих отрывков и возможность открыть оригинал. Написание ответа нейросетью — отдельный, необязательный этап. Разница существенная: найти пункт инструкции и красиво пересказать его — не одна и та же проверка. О рисках второго этапа есть материал где полезен ИИ-поиск по внутренним документам и когда ответу нельзя доверять.
Шаг 1. Выберите небольшую задачу и безопасные документы
Не начинайте со всего архива. Возьмите одну понятную тему: инструкции по возвратам, описания услуг или собственные заметки об одном проекте. Это редакционная рекомендация для первого испытания, а не установленный OpenAI размер набора. На небольшой подборке проще понять, почему система нашла не тот документ.
Описанный путь использует программный интерфейс OpenAI, а не готовую кнопку загрузки папки. Потребуется доступ к API и средство, которое отправляет запросы и сохраняет результаты. Возможность доступа, условия оплаты и правила для своей страны нужно проверить отдельно: приложенный источник не подтверждает доступность для каждого читателя. На компьютере удобнее готовить файлы и запускать код; телефон подходит для составления вопросов и просмотра уже настроенной выдачи.
- Запишите одну задачу: «Найти действующее правило возврата в моих инструкциях».
- Подготовьте копии текстов, которые разрешено отправлять выбранному сервису. Не используйте пароли, персональные сведения и закрытые договоры в пробном наборе.
- Составьте проверочные вопросы и заранее укажите документ или отрывок, который должен отвечать на каждый из них. Добавьте вопрос, ответа на который в подборке нет.
Шаг 2. Подготовьте текст, который можно проверить
Смысловой вектор строится из переданного текста. Поэтому сначала убедитесь, что вы действительно передаёте содержание документа, а не имя файла или испорченную выгрузку. Источник показывает работу со строками текста; автоматическое распознавание сканов и разбор офисных файлов он в предоставленном фрагменте не описывает. Для первого опыта используйте уже читаемый текст.
Практический вариант — разбить длинный материал по разделам и хранить каждый раздел вместе с названием документа и указанием места. Это рекомендация по организации поиска. Не режьте инструкцию так, чтобы условие осталось в одном фрагменте, а исключение — в другом: найденный абзац должен быть понятен читателю без догадок.
В учебной инструкции «Возврат товара» сохраните рядом с правилом его заголовок, дату версии и относящиеся к нему оговорки. Если в архиве лежат две редакции, заранее решите, какая считается действующей. Близость по смыслу сама по себе не выбирает актуальную версию.
- Проверьте несколько подготовленных фрагментов глазами: сохранены ли отрицания, суммы, даты и условия.
- Дайте каждому фрагменту постоянный идентификатор и сохраните путь к исходному документу.
- Отделите действующие инструкции от черновиков или явно подпишите их статус.
Шаг 3. Получите смысловые векторы
OpenAI описывает две модели третьего поколения: text-embedding-3-small и text-embedding-3-large. Для учебного запроса ниже используется первая. Это пример обращения к API, а не готовое приложение для папки. Код предполагает уже установленную библиотеку openai и настроенную авторизацию; секретный ключ в текст программы вставлять не нужно.
В запрос передают название модели и текст. В ответе поле embedding содержит список чисел. Сохраните этот список вместе с исходным отрывком и его идентификатором: один вектор без текста не поможет человеку проверить находку. Сначала обработайте один пробный отрывок и убедитесь, что сохранённый результат соответствует именно ему.
По документации стандартная длина вектора text-embedding-3-small составляет 1536 чисел, а text-embedding-3-large — 3072. Более длинные представления требуют больше ресурсов хранения и обработки. Параметр dimensions позволяет сократить размер, но это компромисс, который следует проверять на своих вопросах. Для первого опыта проще не менять размер.
- Отправьте один безопасный фрагмент по образцу.
- После успешного запроса повторите обработку для остальных подготовленных фрагментов.
- Запишите выбранную модель и параметры рядом с набором, чтобы затем одинаково обрабатывать вопросы.
Фрагмент для копирования
from openai import OpenAI
client = OpenAI()
text = "Учебный фрагмент инструкции о возврате товара."
response = client.embeddings.create(
input=text,
model="text-embedding-3-small"
)
vector = response.data[0].embedding
print(len(vector))Шаг 4. Сравните вопрос с документами
Вопрос тоже нужно превратить в смысловой вектор. Используйте ту же модель и те же параметры, что при обработке документов. Затем средство поиска сравнивает вектор вопроса с сохранёнными векторами и располагает фрагменты по близости. В источнике прямо описан поиск с ранжированием по соответствию запросу.
Попросите разработчика или настройте своё средство так, чтобы выдача показывала текст отрывка, название файла и способ открыть оригинал. Конкретная программа хранения здесь не выбрана: документация допускает сохранение векторов в специализированной базе, но приложенные сведения не дают инструкции по готовому интерфейсу. Проверяемый результат этого шага — список находок, а не фраза «система успешно настроена».
Пример ожидаемой выдачи: на вопрос «что нужно для возврата» появляется раздел с условиями возврата и ссылка на соответствующую инструкцию. Это учебный сценарий, не результат редакционного тестирования. Если наверху оказывается документ о покупке, откройте оба текста: возможно, в подготовленном фрагменте потерялось правило или вопрос получился слишком расплывчатым.
- Получите вектор проверочного вопроса тем же способом, что и вектор отрывка.
- Настройте сравнение с сохранённым набором и вывод нескольких наиболее близких результатов.
- Проверьте, что каждый результат ведёт к своему исходному тексту, а не к соседнему файлу.
Шаг 5. Проверьте смысл, а не красивую выдачу
Теперь пройдите по вопросам, которые записали до настройки. Для каждого отметьте: найден ли нужный фрагмент, содержит ли он ответ целиком и можно ли подтвердить его оригиналом. Не ограничивайтесь вопросом, повторяющим заголовок документа. Добавьте разговорную формулировку, похожую тему с другим условием и запрос, для которого сведений нет.
Самая близкая находка не обязательно является ответом. Если система обязана всегда показывать первый результат, она покажет что-нибудь даже для неподходящего вопроса. Поэтому отдельно предусмотрите понятное сообщение о том, что подтверждения не найдено, и проверяйте его на пустых для вашей подборки запросах. Источник не задаёт универсальный порог близости: нельзя честно выбрать одну цифру и объявить её гарантией качества.
Если ошибки повторяются, меняйте одну вещь за раз: состав подборки, границы фрагментов или формулировку вопроса. Сохраняйте примеры до и после изменения. Иначе легко улучшить один удачный запрос и не заметить, что остальные стали хуже. Для редкого поиска по нескольким знакомым файлам ручная проверка может оказаться проще всей этой настройки.
- Сравните найденные отрывки с заранее записанными правильными местами.
- Убедитесь, что запрос без ответа не получает уверенного утверждения из похожего документа.
- После добавления или изменения инструкции повторите проверочные вопросы.
Когда можно добавить готовый ответ
В документации OpenAI описан следующий подход: найти нужную информацию и передать её модели вместе с вопросом. Это позволяет использовать сведения, которых нет в её обучении. Вместо всего архива в запрос можно включать найденные отрывки; источник отмечает, что передача дополнительного текста увеличивает расходы на обработку.
Если добавляете пересказ, требуйте опоры только на переданные фрагменты и сохраняйте возможность открыть их. Ниже — рекомендуемый текст задания, а не доказанная защита от ошибок. Даже хороший запрос не заменяет проверку сумм, сроков и исключений. О дальнейшем использовании найденных документов можно прочитать в разборе задач, которые решает поиск с последующим ответом по документам.
Фрагмент для копирования
Ответь на вопрос только по приведённым фрагментам.
Укажи название документа и фрагмент, на который опираешься.
Если сведений недостаточно, напиши: «В этих документах ответа не найдено».
Не дополняй условия своими предположениями.
Вопрос: [вставьте вопрос]
Фрагменты: [вставьте найденные отрывки с названиями документов]Что влияет на расходы и где обычно ошибаются
OpenAI тарифицирует получение векторов по количеству входных токенов — частей текста, которые обрабатывает модель. Поэтому при планировании бюджета учитывайте объём подготовленных документов и вопросов, а не только число файлов. Точную стоимость своей подборки нужно рассчитывать по действующим условиям; подтверждённой суммы для вашего архива у нас нет.
Вторая часть расходов связана с хранением и обработкой векторов. Источник прямо указывает, что большие векторы требуют больше вычислений, памяти и места. Если объём растёт, можно сравнить варианты размера на сохранённых проверочных вопросах. Сокращение размера — не повод перестать контролировать выдачу.
Типичные ошибки в таком сценарии — отправить весь длинный документ без проверки, потерять связь с оригиналом, смешать старые и новые редакции и принять похожий фрагмент за доказательство. Ещё одна ошибка — сразу строить разговорного помощника: уверенный пересказ может скрыть, что поиск уже на первом этапе не нашёл нужного правила. Начните с выдачи, которую можно проверить глазами.
Чек-лист
Вы справились с первым этапом, если можете задать вопрос своими словами, получить подходящий отрывок и подтвердить его в исходном документе. Если пока этого нет, не расширяйте архив: исправьте конкретный сбой на небольшом наборе.
- Задача поиска сформулирована, проверочные вопросы записаны заранее.
- В пробных документах нет секретов и данных, которые нельзя передавать сервису.
- Тексты читаются правильно; условия и исключения не оторваны друг от друга.
- Каждый вектор связан с фрагментом и оригинальным документом.
- Документы и вопросы обработаны одной моделью с одинаковыми параметрами.
- Нужные отрывки находятся и проверяются по исходникам.
- Запрос без ответа не превращается в неподтверждённое правило.
- Объём обработки и ресурсов учтён; экономия времени и денег не объявлена без измерения.
Получите доступ к нужному AI-сервису уже сегодня
ChatGPT, Claude, Gemini, MiniMax и агенты для кода — предложения проверенных продавцов по доступным ценам. Оплата российскими картами, через СБП или криптовалютой.