PlusVibe AIPlusVibeAI
·3 мин. чтения

LangChain в России без VPN

Как использовать LangChain с OpenAI-совместимым API в России без VPN. Настройка ChatOpenAI через PlusVibe API — пошаговое руководство с примерами кода.

LangChain в России без VPN

LangChain в России: рабочая настройка за 10 минут

LangChain в России работает отлично. Проблема не в фреймворке — проблема в том, что api.openai.com с российских IP не отвечает. Это убивает примерно половину туториалов из интернета на первом же ChatOpenAI().

Фикс простой: один параметр base_url — и всё что написано в документации LangChain работает без изменений. Дальше разберём от установки до реального примера с RAG.

Что такое LangChain и нужен ли он вам

LangChain — фреймворк для построения приложений поверх LLM. Звучит абстрактно, на практике он решает конкретные задачи: связать модель с базой данных, построить цепочку промптов, добавить память к чат-боту, подключить внешние инструменты.

Честно: для простых вещей — один промпт, получить ответ — LangChain избыточен. Берите нативный SDK. LangChain оправдывает себя там, где нужна оркестрация: RAG-системы, мультишаговые агенты, сложные пайплайны.

Экосистема в 2026 году: ядро LangChain + LangGraph (граф-оркестрация агентов) + LangSmith (трейсинг и дебаг). Для продакшена почти всегда нужны все три.

Установка

pip install langchain langchain-openai langchain-community

Для векторных баз — отдельно, по вкусу:

# Локально (без внешних сервисов)
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="gpt-5.5-turbo",
    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, OpenAIEmbeddings
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 = OpenAIEmbeddings(
    api_key="sk-pv-ваш_ключ",
    base_url="https://plusvibeapi.ru/v1",
    model="text-embedding-3-small",
)
vectorstore = FAISS.from_documents(chunks, embeddings)

# 4. Строим RAG-цепочку
llm = ChatOpenAI(
    model="gpt-5.5-turbo",
    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"])

Нюанс про embeddings: они тоже идут через API, значит тоже нужен base_url. Забыть об этом — самая частая ошибка при переходе с прямого OpenAI.

Модели: что выбрать под задачу

Модель Лучше для ₽/1M input
gpt-5.5-turbo Чат-боты, RAG, агенты 550
claude-opus-4-8 Анализ документов, сложная логика 370
gemini-2.5-flash Высокий RPS, большие объёмы 29
text-embedding-3-small Эмбеддинги для RAG 8

Типичные ошибки при первом запуске

AuthenticationError: Incorrect API key

Ключ PlusVibe начинается с sk-pv-. Если скопировали старый OpenAI-ключ (sk-proj- или sk-...) — он не подойдёт.

Embeddings возвращают ошибку, хотя ChatOpenAI работает

OpenAIEmbeddings и ChatOpenAI — разные классы с независимыми настройками. Нужно передать base_url в оба. Удобнее вынести в переменные окружения.

Timeout на больших документах

Стандартный таймаут LangChain — 30 секунд. Для больших промптов увеличьте: ChatOpenAI(..., timeout=120).

Часто задаваемые вопросы

Работает ли LangGraph через PlusVibe?

Да. LangGraph использует те же LLM-объекты — просто передайте base_url при инициализации модели.

Можно ли использовать Claude через LangChain?

Да. PlusVibe предоставляет OpenAI-совместимый интерфейс для всех моделей включая Claude. Используйте ChatOpenAI(model="claude-opus-4-8", base_url="https://plusvibeapi.ru/v1") — нативный пакет langchain-anthropic не нужен.

Поддерживается ли стриминг?

Да. ChatOpenAI(streaming=True) работает как ожидается — токены приходят по мере генерации.

LangSmith работает с PlusVibe?

LangSmith — это отдельный сервис трейсинга, он работает независимо от того, через какой API идут запросы. Настройка стандартная: LANGCHAIN_TRACING_V2=true + LANGCHAIN_API_KEY.

Есть ли ограничения по RPS?

Зависит от тарифа. На стартовом плане — 60 RPM. Для высоконагруженных пайплайнов LangChain есть корпоративные лимиты — пишите в поддержку.

Запустите LangChain без VPN

GPT-5.5, Claude, Gemini и embeddings — всё через один ключ. Оплата рублями.

Получить ключ →
LangChain РоссияLangChain без VPNLangChain OpenAI Россияlangchain настройкаlangchain openai api россияplusvibe api langchain

Попробуйте PlusVibe API

OpenAI-совместимый API: GPT, Claude, Gemini, видео и изображения — один рублёвый ключ. Работает из России без VPN, оплата рублями.

Читайте также