Гид по технологиям

Локальные данные для ChatGPT через OpenAI API и LangChain

9 min read Руководство Обновлено 08 Jan 2026
Локальные данные для ChatGPT через LangChain
Локальные данные для ChatGPT через LangChain

OpenAI 3D логотип

Введение

ChatGPT в виде публичного веб-интерфейса отлично подходит для разговоров, генерации идей и помощи с кодом. Однако у стандартного ChatGPT есть два ограничения: он не хранит ваши личные данные для долгосрочного использования и имеет дату отсечения знаний (cutoff) — данные, доступные модели, ограничены определённой датой. Чтобы дополнить ChatGPT актуальной и пользовательской информацией, используют OpenAI API вместе с библиотеками-обёртками (например, LangChain) и локальными базами с векторными индексами.

Определения в одну строку

  • OpenAI API: программный интерфейс для доступа к моделям GPT.
  • LangChain: библиотека для создания цепочек вызовов LLM и интеграции с инструментами (обработчик контекста, векторное хранилище и т.д.).
  • ChromaDB (или Chromadb): локальное векторное хранилище для поиска ближайших векторов.
  • Retrieval-augmented generation (RAG): паттерн, при котором модель получает релевантную информацию из внешнего хранилища перед генерацией ответа.

Зачем давать ChatGPT свои данные

Кратко, это даёт:

  • Персонализацию: ответы, адаптированные под ваши документы и процессы.
  • Доменные знания: модель опирается на отраслевые материалы, внутреннюю документацию и глоссарии.
  • Актуальность: вы сами добавляете материалы после даты отсечения модели.

Важно: вы сами контролируете качество и объём добавленных данных. Чем аккуратнее подготовлены источники — тем точнее ответы.

Что потребуется (Windows 10/11)

  • Python 3.x (рекомендуется последняя стабильная ветка).
  • Git для скачивания репозитория (можно скачать ZIP через веб-интерфейс).
  • Microsoft Visual Studio Build Tools (Desktop development with C++).
  • Скачанный скрипт chatgpt-retrieval (репозиторий или ZIP).

Совет: если вы уже используете WSL2, можно выполнить большинство шагов внутри Ubuntu-подсистемы; инструкции ниже ориентированы на чистую Windows-среду.

Шаг 1 — Установите Python, Git и Microsoft Build Tools

При установке Python обязательно отметьте опцию Add python.exe to PATH, иначе команды python и pip не будут доступны в терминале.

Добавление Python в PATH

При установке Microsoft Visual Studio Build Tools отметьте компонент Desktop development with C++ и оставьте рекомендуемые опции включёнными. Они нужны для компиляции некоторых пакетов, особенно при установке библиотек с бинарными расширениями.

Установка Microsoft Visual C++ через Build Tools

Скачайте скрипт chatgpt-retrieval или репозиторий с GitHub: нажмите Code → Download ZIP или выполните git clone.

Скачивание Python-скрипта на GitHub

Шаг 2 — Настройка локального окружения

Откройте папку chatgpt-retrieval-main в проводнике. В контекстном меню выберите Open in Terminal или Открыть в терминале.

Открытие терминала в папке

В терминале выполните установку зависимостей:

pip install langchain openai chromadb tiktoken unstructured

Примечание: pip устанавливает пакеты в системный Python, если вы не используете виртуальное окружение. Рекомендуется создать виртуальное окружение:

python -m venv venv
venv\Scripts\activate
pip install --upgrade pip
pip install langchain openai chromadb tiktoken unstructured

Добавление ключа OpenAI API

Сгенерируйте секретный ключ на странице OpenAI API keys: нажмите Create new secret key, задайте имя и сохраните ключ. Ключ отображается один раз — сохраните его безопасно.

Создание секретного ключа API

Варианты передачи ключа в приложение на Windows:

  • В файле constants (как в исходном скрипте). Откройте constants с помощью Notepad и вставьте значение ключа в подходящее место, затем сохраните файл.
  • Через переменную окружения (Windows):
setx OPENAI_API_KEY "sk-..."
  • Через .env-файл, если код использует python-dotenv (в этом репозиторий может не быть):
OPENAI_API_KEY=sk-...

После вставки ключа перезапустите терминал, чтобы переменная окружения вступила в силу.

Добавление API-ключа как переменной окружения

Важно: храните ключ в защищённом месте и не отправляйте его в публичные репозитории.

Шаг 3 — Добавление собственных файлов данных

Поместите текстовые файлы (PDF, TXT, DOC/DOCX) в папку data внутри chatgpt-retrieval-main. Скрипт обработает их, разобьёт на чанки, создаст эмбеддинги и индекс для быстрых запросов.

Добавление пользовательских данных для ChatGPT

Рекомендации по подготовке файлов:

  • Используйте UTF-8 кодировку для текстовых файлов.
  • Удаляйте лишние метаданные и двоичные вставки.
  • Для PDF и Word-файлов проверьте корректность распознавания текста (OCR потребуется для отсканированных изображений).
  • Держите чувствительные данные в отдельных, шифруемых папках.

Шаг 4 — Запросы к локальному ChatGPT через терминал

Запустите скрипт с аргументом — вашим вопросом:

python chatgpt.py "ВАШ ВОПРОС"

Обязательно заключайте вопрос в кавычки. Скрипт объединит найденные релевантные фрагменты из локальной коллекции и отправит их вместе с промптом в модель OpenAI.

Примеры запросов и проверки

  • Запрос персональной информации из файла Personal Sched.txt — скрипт должен вернуть сведения, извлечённые из локального файла.
  • Запрос по предмету, который появился после даты отсечки модели — если в папке data есть соответствующий документ, ответ будет включать актуальную информацию.

Тестирование ChatGPT с пользовательскими данными

Запрос к ChatGPT по теме, появившейся после даты отсечки

Ограничения и подводные камни

  • Вам нужно самостоятельно собрать и привести данные. Автоматической «подкачки» свежей информации из интернета не происходит без дополнительного кода.
  • Локальный подход обычно медленнее веб-интерфейса. Запросы включают поиск по индексу, создание подсказки (prompt) и вызов API.
  • В исходном варианте доступен GPT-3.5 Turbo; если у вас есть доступ к GPT-4, он может не поддерживаться скриптом без доработки.

Важно: точность ответов зависит от качества источников и того, как код формирует контекст для модели.

Альтернативные подходы

  1. Облачные RAG-сервисы: использовать облачные решения с управляемыми векторными базами (Pinecone, Weaviate, Milvus) — удобнее в масштабировании.
  2. Полностью локальные LLM: запускать локальную модель (Llama 2, Mistral и т.д.) без обращения к OpenAI — исключает передачу данных, но требует мощного железа и доработки для качества.
  3. Гибрид: хранить эмбеддинги локально, а генерацию делать в облаке — баланс приватности и мощности.

Когда этот подход не подойдёт

  • Если вам нужно мгновенное многопользовательское решение с высокой доступностью — лучше облачные сервисы.
  • Если у вас конфиденциальные данные, которые запрещено передавать третьим лицам, нельзя отправлять их в OpenAI (требуется полностью локальное решение).

Практическая методология (мини-метод)

  1. Сбор: соберите документы и очистите данные (удалите лишние метаданные).
  2. Подготовка: приведите в единый формат (txt/pdf/docx), проверьте кодировку и OCR.
  3. Индексация: запустите скрипт, чтобы создать эмбеддинги и индекс.
  4. Валидация: задайте контрольные вопросы, сравните ответы с оригинальными документами.
  5. Эксплуатация: установите правила обновления данных и резервного копирования индекса.

Чеклисты по ролям

Разработчик

  • Установил Python, Git и Build Tools.
  • Создал виртуальное окружение и установил зависимости.
  • Настроил безопасное хранение API-ключей.
  • Покрыл критические пути логирования ошибок и таймауты.

Системный администратор

  • Ограничил доступ к папке data и ключам.
  • Настроил резервное копирование каталога chatgpt-retrieval-main и ChromaDB.
  • Настроил мониторинг использования API и расходов.

Пользователь / Контент-менеджер

  • Проверил корректность текстов и форматирования.
  • Пометил и удалил чувствительные фрагменты.
  • Установил политику обновления документов.

План реагирования при ошибках (runbook)

  1. Ошибка установки pip: проверка версии Python, запуск venv, обновление pip.
  2. Ошибка компиляции зависимости: убедиться, что Build Tools установлены и перезагрузить систему.
  3. Приложение не видит API-ключ: проверить переменные окружения, перезапустить терминал, не хранить ключ в публичных файлах.
  4. Неверные ответы: проверить, корректно ли загружены документы, не обрезаются ли чанки, настроить размер контекста и prompt engineering.

Критерии приёмки

  • Система успешно отвечает на 5 тестовых вопросов, проверяемых по эталонным документам.
  • Локальные документы корректно индексируются и находятся по ключевым запросам.
  • Доступ к ключам ограничен и зафиксирован в логе.

Безопасность и приватность

  • Не храните секретные ключи в публичных репозиториях.
  • Если в документах есть персональные данные, убедитесь в соответствии с локальным законодательством и политиками компании.
  • Варианты защиты: шифрование каталога data, управление доступом на уровне ОС, аудит доступа к API.

Примечание по соответствию GDPR и локальному законодательству:

  • Прежде чем отправлять персональные данные в сторонний API, проверьте условия обработки данных и соглашения с OpenAI.
  • Для чувствительных или регулируемых данных рассмотрите полностью локальные решения.

Отладка производительности и масштабирование

  • Кэшируйте эмбеддинги: если вы часто добавляете одни и те же документы, сохраняйте эмбеддинги и индекс, чтобы не пересоздавать их каждый раз.
  • Используйте специализированные векторные хранилища для больших объёмов (Pinecone, Weaviate, Milvus).
  • Параллелизуйте обработку файлов при индексации.

Совместимость и миграция

  • Если в будущем вы захотите перейти на GPT-4 или другой облачный провайдер, абстрагируйте слой вызова API (создайте адаптер).
  • Экспортируйте ваш векторный индекс в переносимый формат (если поддерживается) для последующей загрузки в другое хранилище.

Технические приёмы и подсказки

  • Контролируйте размер фрагментов (chunk size) и overlap: слишком большие фрагменты могут превышать лимиты контекста, слишком маленькие — терять связность.
  • Явно добавляйте в prompt ссылки на источник: «Согласно документу X: …» — так легче отслеживать источник информации.
  • Логируйте запросы и найденные фрагменты для последующего аудита.

Примеры шаблонов (cheat sheet)

Команда для добавления переменной окружения в PowerShell:

setx OPENAI_API_KEY "sk-ВАШ_КЛЮЧ"

Пример простого промпта, который добавляет найденные фрагменты в контекст:

You are an assistant. Use the following extracted passages from local documents to answer the user question. Cite the passage id when you use it.

Passages:
{extracted_passages}

Question: {user_question}
Answer concisely and list sources.

Когда стоит выбрать другой путь

  • Нужна полная конфиденциальность и запрет на передачу данных третьим лицам → выбирайте локальные LLM.
  • Нужна высокая доступность и масштабируемость → облачные RAG-сервисы.

Короткое объявление (100–200 слов)

Локальный ChatGPT с вашими данными: теперь можно подключить собственные документы к ChatGPT с помощью OpenAI API и LangChain на Windows 10/11. Следуя пошаговой инструкции, вы установите Python и Microsoft Build Tools, скачаете скрипт chatgpt-retrieval, добавите API-ключ и загрузите свои файлы в папку data. Скрипт создаст эмбеддинги и индекс, после чего можно задавать вопросы, комбинируя общие знания модели и информацию из ваших документов. Это решение полезно для персонализации, добавления доменных знаний и поддержания актуальности информации. В статье также описаны меры безопасности, чеклисты для ролей и runbook для отладки.

Итог и рекомендации

  • Начните с небольшого набора документов и проверьте ответы на контрольных вопросах.
  • Стройте индекс и мониторьте качество: при необходимости корректируйте размер чанков и prompt.
  • Обеспечьте безопасность ключей и доступ к данным.

Короткие выводы

  • Решение подходит для прототипов и внутренних инструментов.
  • Это гибридный путь между веб-ChatGPT и полноценной локальной LLM.
  • Планируйте обновление архитектуры, если объём данных и нагрузка вырастут.

Факт-бокс: ключевые моменты

  • Необходимые компоненты: Python, Git, Microsoft Build Tools, OpenAI API, LangChain.
  • Поддерживаемые форматы: TXT, PDF, DOC/DOCX (OCR для сканов).
  • Ограничения: ручной сбор данных, возможная задержка при запросах, исходно GPT-3.5 Turbo.

1-строчный глоссарий

  • Эмбеддинг: векторное представление текста.
  • Индекс: структура для быстрого поиска по эмбеддингам.
  • RAG: retrieval-augmented generation — дополнение генерации данными из внешнего хранилища.

Социальный превью (OG)

Используйте краткий заголовок и описание для публикации в соцсетях:

  • OG заголовок: Локальные данные для ChatGPT через OpenAI API и LangChain
  • OG описание: Быстрый гид по подключению собственных документов к ChatGPT на Windows, с чеклистами, безопасностью и отладкой.

Если нужны готовые сценарии для больших объёмов данных, интеграция с облачными векторными базами или пример кода для GPT-4 — скажите, и я подготовлю дополнительные шаблоны и инструкции.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

RDP: полный гид по настройке и безопасности
Инфраструктура

RDP: полный гид по настройке и безопасности

Android как клавиатура и трекпад для Windows
Гайды

Android как клавиатура и трекпад для Windows

Советы и приёмы для работы с PDF
Документы

Советы и приёмы для работы с PDF

Calibration в Lightroom Classic: как и когда использовать
Фото

Calibration в Lightroom Classic: как и когда использовать

Отключить Siri Suggestions на iPhone
iOS

Отключить Siri Suggestions на iPhone

Рисование таблиц в Microsoft Word — руководство
Office

Рисование таблиц в Microsoft Word — руководство