LangChain и LlamaIndex с GPT и Claude
LangChain и LlamaIndex работают с GPT и Claude через OpenAI-совместимый API: передайте в ChatOpenAI или OpenAILike адрес https://api.pro-ai.online/v1 и ключ Pro AI API. ChatAnthropic принимает тот же адрес, но без /v1. Цепочки и агенты переписывать не придётся.
Как подключить
- Получите ключ
Ключ вида sk-cxa-... появляется в кабинете после регистрации на pro-ai.online. Чтобы прогнать первые цепочки бесплатно, подключите нашего Telegram-бота и подпишитесь на канал: начислим 30 ₽.
- Поставьте пакет интеграции
Для LangChain это langchain-openai, плюс langchain-anthropic, если нужен формат Anthropic. Для LlamaIndex это llama-index-llms-openai-like.
- Передайте адрес и ключ в клиент
Base URL https://api.pro-ai.online/v1, ключ sk-cxa-..., модель, например gpt-6-sol. Проверьте запрос примером ниже: списание появится в кабинете, в разделе «Расход».
Примеры кода
Ключ храните в переменной окружения, а не в коде. Все модели и адреса — в документации.
Python (OpenAI SDK)
from openai import OpenAI
client = OpenAI(base_url="https://api.pro-ai.online/v1", api_key="sk-cxa-...")
reply = client.chat.completions.create(
model="gpt-6-sol",
messages=[{"role": "user", "content": "Привет! Что ты умеешь?"}],
)
print(reply.choices[0].message.content)ChatOpenAI в LangChain: параметры base_url и api_key
Класс ChatOpenAI из пакета langchain-openai берёт адрес API из параметра base_url, ключ из api_key, модель из model. Больше ничего менять не нужно: любая цепочка или агент LangChain пойдут через Pro AI API.
Ключ держите в переменной окружения или в .env, который не попадает в git. Перевыпустите ключ в кабинете, и поправить придётся одно значение.
При создании ChatOpenAI задайте:
- model: gpt-6-sol или другой ID со страницы /docs#models.
- base_url: https://api.pro-ai.online/v1.
- api_key: ваш ключ вида sk-cxa-...
- Без явного base_url LangChain читает адрес из переменной OPENAI_API_BASE, а сам SDK OpenAI из OPENAI_BASE_URL.
Claude, Gemini и Qwen через тот же ChatOpenAI
С нашим адресом ChatOpenAI обращается к любой чатовой модели из списка. Меняется только model: claude-sonnet-5, gemini-2.5-pro, qwen3.8-flash, grok-4.7. Так удобно сравнивать модели на одной и той же цепочке.
В некоторых случаях ChatOpenAI сам переходит на эндпоинт /v1/responses, например если вы передали reasoning, include или встроенные инструменты OpenAI. Для GPT это не проблема, Pro AI API этот эндпоинт поддерживает.
Gemini, DeepSeek, Grok, Qwen, Kimi и GLM у нас доступны только через Chat Completions. Параметры Responses API им не передавайте, а ещё проще сразу поставить use_responses_api=False.
ChatAnthropic: адрес без /v1
Родной формат Anthropic нужен для блоков cache_control или extended thinking, и тогда берите ChatAnthropic из langchain-anthropic. В base_url пишите https://api.pro-ai.online без /v1, путь /v1/messages SDK Anthropic добавит сам.
Ключ передаётся в api_key, модель в model, например claude-sonnet-5. Из окружения ChatAnthropic сначала читает ANTHROPIC_API_URL, потом ANTHROPIC_BASE_URL. Работают через этот класс только модели Claude.
Переписывать готовый код с ChatOpenAI ради Claude не обязательно, claude-sonnet-5 отвечает и через Chat Completions. Отдельный класс пригодится, когда нужны возможности, которых в формате OpenAI нет.
LlamaIndex: OpenAILike вместо OpenAI
Класс OpenAI в LlamaIndex сверяет название модели со своим справочником и на незнакомых ID спотыкается. Для стороннего адреса документация советует OpenAILike из пакета llama-index-llms-openai-like. Значения по умолчанию у него неудачные, поэтому задайте явно:
- model, api_base и api_key: ID модели, https://api.pro-ai.online/v1 и ваш ключ.
- is_chat_model=True. По умолчанию False, и запросы уходят на эндпоинт completions, которого у нас нет.
- context_window: размер контекста модели. По умолчанию 3900 токенов, и LlamaIndex начнёт резать контекст и историю чата задолго до реального предела.
- is_function_calling_model=True для агентов с инструментами на GPT и Claude, по умолчанию там False.
- Готовый клиент назначьте в Settings.llm, тогда его подхватят индексы и движки запросов.
Где взять эмбеддинги для RAG
Эндпоинта /v1/embeddings в Pro AI API нет. У нас чатовые модели и генерация картинок, а векторы для поиска считайте локально или у другого провайдера.
В LlamaIndex по умолчанию стоит OpenAIEmbedding. Если вы глобально прописали OPENAI_API_BASE с нашим адресом, запросы за векторами придут к нам и упадут с ошибкой. Задайте Settings.embed_model явно: локальную модель через пакет llama-index-embeddings-huggingface (строка вида local:имя-модели) или клиент другого провайдера с его адресом.
В LangChain эмбеддинги живут в отдельном объекте, например OpenAIEmbeddings или HuggingFaceEmbeddings. Ему передайте base_url и ключ того провайдера, который их считает.
Как считать расход в LangChain
После вызова ChatOpenAI или ChatAnthropic в ответе есть usage_metadata: число входных и выходных токенов. Логируйте его вместе с названием цепочки, и будет видно, какой шаг съедает бюджет.
Перевести токены в рубли можно по ценам за миллион, но проще сверяться с кабинетом: в «Расходе» видна цена каждого запроса. Если цепочка из пяти шагов стоит заметно дороже одного ответа, ищите шаг, который тащит в промпт лишний контекст.
Какую модель выбрать для приложения на LangChain
Раз модель меняется одной строкой, подбирайте её на своих данных. Прогоните одну цепочку на двух-трёх вариантах и сравните ответы и списания в «Расходе». Для старта:
- gpt-6-sol: основная модель, типичный ответ около 0,22 ₽ против примерно 1 ₽ по официальному прайсу.
- gpt-6-luna и qwen3.8-flash: классификация, извлечение полей, пакетная обработка текстов.
- grok-4.7: дешёвый вариант, типичный ответ Grok стоит около 0,08 ₽.
- gpt-6-astra или claude-opus-5: агенты с длинной цепочкой шагов и сложные задачи.
- claude-sonnet-5 через ChatAnthropic: длинный общий контекст с кэшем промптов. Закэшированная часть входа стоит в 10 раз меньше.
Ошибки при подключении LangChain и LlamaIndex
Обычно дело в адресе или в значениях по умолчанию:
- 404 из ChatOpenAI: в base_url нет /v1.
- 404 из ChatAnthropic: в base_url лишний /v1.
- 404 из OpenAILike: не выставлен is_chat_model=True.
- Ошибка у Gemini, Qwen или Grok: в вызов попали параметры Responses API (reasoning, include) или встроенные инструменты OpenAI. Уберите их или поставьте use_responses_api=False.
- Индекс не строится: эмбеддинги ушли на наш адрес, задайте embed_model явно.
- 401: в api_key попал неполный или старый ключ.
До 83% дешевле официальных цен
Сколько стоят 1 000 типичных ответов: вопрос на страницу, ответ на полстраницы.
| Модель | Официально | У нас |
|---|---|---|
| Claude Fable 5 | 820 ₽ −83% | |
| Claude Opus 5.5 | 330 ₽ −83% | |
| GPT‑6 Astra | 1 090 ₽ −78% | |
| GPT‑6 Sol | 220 ₽ −78% |
Официальные цены — по прайсам Anthropic, OpenAI на 4 октября 2026, курс 83,48 ₽ за $1. Точное списание зависит от длины запроса и видно в кабинете.
Частые вопросы
Придётся ли переписывать код под Pro AI API?
Нет. Хватает base_url (в LlamaIndex это api_base) и ключа, цепочки, агенты и промпты остаются как были.
Есть ли у вас эмбеддинги?
Нет, /v1/embeddings у нас нет. Для RAG возьмите локальную модель эмбеддингов или другого провайдера.
Поддерживается ли стриминг?
Да, stream=true работает. В LangChain вызывайте .stream() или .astream() как обычно.
Подходит ли это для LangGraph?
Да. LangGraph использует те же ChatOpenAI и ChatAnthropic с теми же base_url и api_key.
Как пополнить баланс из России?
Картой любого российского банка, через СБП или криптой, от 50 ₽. Сгорания баланса и подписки нет, а неизрасходованные деньги вернём, если попросите в течение 14 дней после пополнения.
Можно протестировать цепочку бесплатно?
30 ₽ за подключение нашего Telegram-бота и подписку на канал хватит примерно на сотню типичных запросов к gpt-6-sol по 0,22 ₽.