LangChain в России: рабочая настройка за 10 минут
LangChain в России работает отлично. Проблема не в фреймворке — проблема в том,
что api.openai.com с российских IP не отвечает. Это убивает примерно половину
туториалов из интернета на первом же ChatOpenAI().
Фикс простой: один параметр base_url — и всё что написано в документации
LangChain работает без изменений. Дальше разберём от установки до реального примера с RAG.
Что такое LangChain и нужен ли он вам
GitHub: langchain-ai/langchain — 139.9k+ звёзд. Сайт: langchain.com. Привлёк $35M Series A и $25M доп. раунд, венчур a16z.
LangChain — фреймворк для построения приложений поверх LLM. Звучит абстрактно, на практике он решает конкретные задачи: связать модель с базой данных, построить цепочку промптов, добавить память к чат-боту, подключить внешние инструменты.
Честно: для простых вещей — один промпт, получить ответ — LangChain избыточен. Берите нативный SDK. LangChain оправдывает себя там, где нужна оркестрация: RAG-системы, мультишаговые агенты, сложные пайплайны.
Экосистема в 2026 году: ядро LangChain + LangGraph (граф-оркестрация агентов) + LangSmith (трейсинг и дебаг). Для продакшена почти всегда нужны все три.
Установка
pip install langchain langchain-openai langchain-community langchain-huggingface sentence-transformers
Для векторных баз — отдельно, по вкусу:
# Локально (без внешних сервисов)
pip install faiss-cpu
# Или облачно
pip install chromadb # Chroma
pip install pinecone-client # Pinecone
Настройка для России: один параметр меняет всё
Вместо прямого api.openai.com — PlusVibe API. Полностью совместим,
принимает те же запросы, отвечает в том же формате.
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(
model="openai/gpt-5.6-terra",
api_key="sk-pv-ваш_ключ",
base_url="https://plusvibeapi.ru/v1",
)
response = llm.invoke("Объясни разницу между LangChain и LlamaIndex")
print(response.content)
Всё. Больше никаких изменений — весь остальной код LangChain работает как есть.
Через переменные окружения (рекомендую для продакшена)
export OPENAI_API_KEY="sk-pv-ваш_ключ"
export OPENAI_API_BASE="https://plusvibeapi.ru/v1"
Тогда ChatOpenAI() без аргументов подхватит настройки сам.
Удобно — не нужно передавать ключ в каждый файл проекта.
Реальный пример: RAG по документам
Самый распространённый кейс — загрузить корпоративные документы и задавать по ним вопросы. Вот минимальный рабочий пример:
from langchain_openai import ChatOpenAI
from langchain_huggingface import HuggingFaceEmbeddings
from langchain_community.document_loaders import PyPDFLoader
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain_community.vectorstores import FAISS
from langchain.chains import RetrievalQA
# 1. Загружаем документ
loader = PyPDFLoader("docs/company_policy.pdf")
docs = loader.load()
# 2. Разбиваем на чанки
splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=200)
chunks = splitter.split_documents(docs)
# 3. Создаём векторную базу
embeddings = HuggingFaceEmbeddings(
model_name="sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2",
)
vectorstore = FAISS.from_documents(chunks, embeddings)
# 4. Строим RAG-цепочку
llm = ChatOpenAI(
model="openai/gpt-5.6-terra",
api_key="sk-pv-ваш_ключ",
base_url="https://plusvibeapi.ru/v1",
)
qa = RetrievalQA.from_chain_type(llm=llm, retriever=vectorstore.as_retriever())
# 5. Задаём вопрос
answer = qa.invoke("Какова политика компании по удалённой работе?")
print(answer["result"])
PlusVibe публикует чат-модели, но не embedding-модель в публичном каталоге. В примере выше эмбеддинги считаются локально через Hugging Face, а запросы к LLM идут через PlusVibe.
Модели: что выбрать под задачу
Цены актуальны на 4 сентября 2026 года.
Модель Лучше для ₽/1M input / output openai/gpt-5.6-terra Чат-боты, RAG, агенты 6,81 / 40,85 anthropic/claude-opus-4.8 Анализ документов, сложная логика 66 / 330 google/gemini-3.5-flash Высокий RPS, большие объёмы 11,18 / 67,06 Embedding-модель PlusVibe Не публикуется в каталоге; используйте локальную модель для RAG —Типичные ошибки при первом запуске
AuthenticationError: Incorrect API key
Ключ PlusVibe начинается с sk-pv-. Если скопировали старый OpenAI-ключ
(sk-proj- или sk-...) — он не подойдёт.
Embeddings не работают через PlusVibe
PlusVibe не публикует embedding-модель. Используйте локальный провайдер, как в примере с HuggingFaceEmbeddings, а ChatOpenAI настройте на https://plusvibeapi.ru/v1.
Timeout на больших документах
Стандартный таймаут LangChain — 30 секунд. Для больших промптов увеличьте:
ChatOpenAI(..., timeout=120).
Часто задаваемые вопросы
Работает ли LangGraph через PlusVibe?Да. LangGraph использует те же LLM-объекты — просто передайте base_url при инициализации модели.
Да. PlusVibe предоставляет OpenAI-совместимый интерфейс для всех моделей включая Claude. Используйте ChatOpenAI(model="anthropic/claude-opus-4.8", base_url="https://plusvibeapi.ru/v1") — нативный пакет langchain-anthropic не нужен.
Да. ChatOpenAI(streaming=True) работает как ожидается — токены приходят по мере генерации.
LangSmith — это отдельный сервис трейсинга, он работает независимо от того, через какой API идут запросы. Настройка стандартная: LANGCHAIN_TRACING_V2=true + LANGCHAIN_API_KEY.
Зависит от тарифа. На стартовом плане — 60 RPM. Для высоконагруженных пайплайнов LangChain есть корпоративные лимиты — пишите в поддержку.
Запустите LangChain без VPN
GPT-5.6, Claude и Gemini через один ключ; эмбеддинги можно считать локально. Оплата рублями.
Получить ключ →


