Интеграция · LangChain

LangChain в России: один ключ на чат, RAG и эмбеддинги

Polza — OpenAI-совместимый API, поэтому в LangChain используется обычный ChatOpenAI с другим base_url. Оплата картой РФ, зарубежные аккаунты не нужны.

  • Обычный ChatOpenAI
  • Работает из РФ напрямую
  • Карта РФ и СБП
  • Чат, RAG и эмбеддинги
python · langchain-openai

from langchain_openai import ChatOpenAI

llm = ChatOpenAI(

model="deepseek/deepseek-v4-flash-0731",

base_url="https://polza.ai/api/v1/",

api_key="sk-polza-••••",

max_tokens=600)

✓ llm.invoke("привет") работает

Так выглядит подключение: ключ, адрес API и модель.

Что такое LangChain

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

Модель библиотека сама не содержит: она обращается к провайдеру. Для OpenAI-совместимых API это класс ChatOpenAI, и именно через него подключается Polza — меняется только адрес.

Библиотека бесплатная и с открытым кодом. Платите только за токены моделей, которые вызывают ваши цепочки.

Где ломается LangChain из России

Сама библиотека ставится из pip без ограничений. Проблемы начинаются на первом же вызове модели — и ещё одна поджидает на эмбеддингах.

Провайдер не отвечает

Штатные вызовы уходят к api.openai.com или api.anthropic.com, а они не обслуживают российские адреса.

base_url на Polza отвечает из РФ напрямую.

Не тот класс — запрос мимо Polza

ChatAnthropic, init_chat_model("claude-…") и langchain-openrouter ходят к своим провайдерам, а не по вашему base_url.

Только ChatOpenAI из langchain-openai.

Эмбеддинги возвращают 400

LangChain пре-токенизирует тексты через tiktoken и шлёт массив целых чисел, а Polza принимает строки — отсюда BAD_REQUEST.

Небольшой свой класс через httpx.

Картой не оплатить

Зарубежным провайдерам нужна иностранная карта у каждого отдельно.

Карта РФ, СБП или счёт для юрлица.

Рассуждающая модель «молчит»

Модель списывает токены, а content пустой: reasoning_tokens идут сверх лимита и съедают видимый вывод.

Ставим max_tokens с запасом.

Стриминг рвётся

В корпоративных сетях прокси режет SSE, и поток обрывается после первого чанка.

Прямое подключение без прослоек.

Как подключить LangChain к Polza

Библиотека одна, класс обычный, меняется только адрес. Нужен Python 3.10 или новее.

Что нужно для запуска

Python 3.10 и пакеты

langchain-openai обязательно, httpx — для эмбеддингов, numpy — для косинусной близости в InMemoryVectorStore.

Ключ Polza

Создаётся в кабинете за минуту. Пополняется картой РФ, через СБП или по счёту для юрлица.

Полный slug модели

Имя пишется с префиксом провайдера. Без него API вернёт 404, даже если модель существует.

  1. Шаг 1

    Поставьте пакеты

    langchain-openai — основной пакет, httpx понадобится для эмбеддингов, numpy — для косинусной близости в InMemoryVectorStore.

    Терминал
    $ pip install -U langchain-openai httpx numpy
    
    # требуется Python 3.10+
  2. Шаг 2

    Создайте ChatOpenAI

    Адрес указывается в base_url — обратите внимание на слеш в конце. Имя модели берётся из каталога целиком, вместе с префиксом провайдера:

    chat.py
    from langchain_openai import ChatOpenAI
    
    llm = ChatOpenAI(
        model="anthropic/claude-sonnet-4.6",
        base_url="https://polza.ai/api/v1/",
        api_key="ваш ключ", max_tokens=1500)
  3. Шаг 3

    Для эмбеддингов — свой класс

    OpenAIEmbeddings с Polza напрямую не работает: LangChain шлёт токены вместо строк. Обходится небольшим классом, который дёргает эндпоинт через httpx:

    embeddings.py
    class PolzaEmbeddings(Embeddings):
        httpx.post(
          f"{base_url}/embeddings",
          json={"model": …, "input": ["строка"]}
    
    # input — только строки, не массив токенов
  4. Шаг 4

    Проверьте на простом вызове

    Запустите llm.invoke() с коротким запросом. Если ответ пришёл — дальше работают цепочки, стриминг, tool calling и RAG как обычно.

Почему max_tokens нужно ставить с запасом

У рассуждающих моделей — DeepSeek R1, Claude с thinking, o1 и подобных — внутренние reasoning-токены расходуются сверх лимита. Если поставить max_tokens впритык, модель потратит бюджет на размышление, а видимого текста не останется: в ответе будет пустой content при списанных токенах. Для коротких ответов закладывайте 600–800, для кода — 1500–2500.

Открыть каталог моделей

Что собирают на LangChain

Библиотека закрывает весь путь от простого запроса до поиска по своим документам — и всё это работает на одном ключе.

Чат и цепочки

Обычный вызов модели, цепочки из нескольких шагов, стриминг и асинхронные вызовы через ainvoke и astream.

RAG по своим документам

Поиск по загруженной базе: от варианта в пять строк до полноценного InMemoryVectorStore с разбиением длинных текстов.

Tool calling

Модель вызывает ваши функции — обращается к базе, считает, ходит во внешние сервисы и возвращается с результатом.

Структурированный вывод

Ответ приходит готовой схемой, а не текстом, который надо разбирать регулярками.

Две модели в одной цепочке

Дешёвая классифицирует запрос, сильная отвечает. Классический способ срезать расходы без потери качества.

LangGraph и агенты

Поверх LangChain строятся агенты с состоянием и ветвлением — подключение моделей остаётся тем же.

https://polza.ai/api/v1/

Для LangChain — именно со слешем. Так указано в документации и так собирается путь до эндпоинтов.

Полный slug модели

Имя модели пишется целиком, с префиксом провайдера: anthropic/claude-sonnet-4.6, а не claude-sonnet-4.6. Без префикса вернётся 404.

Чем LangChain отличается от n8n и прямых вызовов API

Одну и ту же задачу можно решить тремя способами, и выбор зависит от того, сколько кода вы готовы писать.

LangChain

Код на Python и полный контроль: цепочки, RAG, агенты, tool calling. Больше работы на старте, зато никаких ограничений платформы.

Визуальный конструктор сценариев: быстрее собрать и проще передать коллеге без Python. Под него есть отдельная страница.

Прямые вызовы API

Самый простой путь для одного запроса. Как только появляются память, инструменты и поиск по документам — вы начинаете писать свой LangChain.

Напрямую или через Polza

LangChain: Напрямую или через Polza
Из РоссииПровайдеры напрямуюLangChain через Polza
ОплатаЗарубежная карта у каждогоКарта РФ, СБП, счёт для юрлиц
Доступ к APIЗакрыт, нужны обходные путиРаботает из РФ напрямую
КлассыСвой пакет под каждого вендораОдин ChatOpenAI на всё
Смена моделиДругой пакет и другой ключПравка одной строки model=
ЭмбеддингиОтдельный провайдер и ключТот же ключ, свой класс на httpx
ДокументыНетДоговор, счёт, УПД, НДС
РасходыПо кабинетам провайдеровСтатистика по ключам и моделям

Сколько стоит LangChain в России

Библиотека бесплатная и с открытым кодом. Платите только за токены моделей по ценам каталога, в рублях.

Массовые вызовы в цепочках

DeepSeek V4 Flash и GLM — классификация, разметка и промежуточные шаги, где вызовов много, а каждый короткий.

Основной ответ

Claude Sonnet 4.6 и GPT-5.5 — финальный шаг цепочки, где качество видно пользователю.

Эмбеддинги для RAG

Отдельные модели эмбеддингов из каталога: они дешевле генеративных, а размерность указана на странице каждой.

Модели, с которых стоит начать

Актуальные цены за 1M токенов — в каталоге моделей.

Если что-то не работает

Четыре причины, на которые приходится почти вся переписка с поддержкой.

Ошибка 401 Unauthorized

base_url должен быть https://polza.ai/api/v1/ — со слешем на конце и с /v1. Ключ скопируйте заново: пробелы и невидимые символы ломают авторизацию.

Ошибка 400 на эмбеддингах

LangChain шлёт токены вместо строк. Используйте свой класс на httpx вместо OpenAIEmbeddings напрямую.

Ошибка 404: model not found

Slug устарел или указан без префикса. Актуальный список — в каталоге или запросом GET на /api/v1/models.

ImportError про numpy

InMemoryVectorStore считает косинусную близость через numpy. Поставьте пакет: pip install numpy.

Для команд и юрлиц

Счёт, УПД и НДС

Оплата по счёту для ООО и ИП, договор с российским юрлицом, закрывающие документы каждый месяц.

Ключ на сотрудника

Отдельные ключи с общим балансом организации: видно, кто и сколько потратил.

Контроль бюджета

Статистика расходов по ключам и моделям в кабинете, без сюрпризов в конце месяца.

Помощь с переездом

Поможем перевести команду с зарубежных подписок на API: настройка окружений и правила расходования.

Вопросы и ответы

Как подключить LangChain к Polza?

Используйте ChatOpenAI из langchain-openai и укажите base_url https://polza.ai/api/v1/ вместе со своим ключом. Больше ничего менять не нужно.

Почему нельзя использовать ChatAnthropic?

Этот класс ходит напрямую к Anthropic и ваш base_url не учитывает. То же самое с init_chat_model("claude-…") и langchain-openrouter — запросы уйдут мимо Polza.

Почему эмбеддинги возвращают 400?

LangChain пре-токенизирует тексты через tiktoken и отправляет массив целых чисел, а Polza принимает строку или массив строк. Решается небольшим своим классом на httpx — пример есть в документации.

Модель отвечает пустым content, но токены списываются

Так ведут себя рассуждающие модели: reasoning-токены идут сверх лимита. Увеличьте max_tokens минимум до 600–1000.

Ошибка 404: model not found

Имя модели указано без префикса провайдера. Нужен полный slug из каталога, например anthropic/claude-sonnet-4.6.

Стриминг обрывается после первого чанка

Обычно это корпоративный прокси, который режет SSE. Отключите стриминг или обеспечьте прямое соединение с polza.ai.

Работает ли RAG и tool calling?

Да, всё штатно: цепочки, стриминг, асинхронные вызовы, tool calling, структурированный вывод и векторные хранилища.

Какая версия Python нужна?

Python 3.10 или новее. Пакеты: langchain-openai, httpx для эмбеддингов и numpy для косинусной близости.

Кто проверял эту инструкцию

Илья Дашкин

Основатель Polza.AI · редакция Polza.AI

Собрал и проверил подключение LangChain на актуальной версии: прошёл все шаги заново, сверил идентификаторы моделей с каталогом и перепроверил адреса API. Если инструмент обновится и инструкция разойдётся с реальностью — правим страницу.

Обновлено · Как работает редакция · Нашли неточность? Напишите нам

Подключите LangChain за одну строку

Меняется только base_url и ключ — остальной код остаётся прежним, а оплата переезжает в рубли.

Остались вопросы? Документация по LangChain, поддержка в Telegram или support@polza.ai

Инструкцию проверила редакция Polza.AI, обновлено . Цены и список моделей меняются — актуальные смотрите в каталоге.

Сайт использует cookie.