Подключение нейросети к своему коду выглядит страшнее, чем есть. По сути нужно понять три вещи: что такое ключ, что такое адрес API и как выглядит один запрос. Дальше всё остальное — детали.
Разберём по шагам, с рабочим кодом.
Что вообще происходит
Модель живёт на чужом сервере. Ваша программа отправляет туда текст по сети и получает ответ. Никакой установки моделей на свой компьютер не требуется — это просто HTTP-запрос, такой же, как обращение к любому другому веб-сервису.
Нужны две вещи:
- API-ключ — строка, по которой вас узнают и с вашего счёта списывают деньги. Ключ секретен: у кого он есть, тот тратит ваши средства.
- base_url — адрес, куда слать запросы.
Стандарт де-факто
Большинство сервисов говорят на одном языке — том, что придумала OpenAI. Это удобно: библиотеки, написанные под неё, работают с любым совместимым сервисом. Меняется только base_url и ключ, остальной код остаётся прежним.
Второй распространённый формат — Anthropic. На нём говорят Claude Code и Anthropic SDK.
Практический вывод: выбирая поставщика доступа, смотрите, поддерживает ли он оба. Иначе смена инструмента однажды потребует переписывать код.
Первый запрос на Python
Ставим официальную библиотеку:
pip install openai
Дальше — сам запрос:
from openai import OpenAI
client = OpenAI(
api_key="ваш-ключ",
base_url="https://api.costbridgeai.com/v1",
)
resp = client.chat.completions.create(
model="claude-haiku-4-5",
messages=[
{"role": "system", "content": "Отвечай коротко и по делу."},
{"role": "user", "content": "Объясни, что такое токен в нейросети."},
],
max_tokens=300,
)
print(resp.choices[0].message.content)Разберём, что здесь что.
- `messages` — история разговора. Роль
systemзадаёт поведение,user— вопрос человека,assistant— прошлые ответы модели, если продолжаете диалог. - `model` — какую модель спрашиваем. Строка, которую можно менять, не трогая остальной код.
- `max_tokens` — предел длины ответа. Ставьте его всегда: без ограничения модель может выдать гораздо больше, чем вам нужно, а платите вы за каждый исходящий токен.
То же самое на JavaScript
npm install openai
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.AI_API_KEY,
baseURL: "https://api.costbridgeai.com/v1",
});
const resp = await client.chat.completions.create({
model: "claude-haiku-4-5",
messages: [{ role: "user", content: "Привет!" }],
max_tokens: 300,
});
console.log(resp.choices[0].message.content);Обратите внимание: ключ берётся из переменной окружения, а не написан в коде. Это не формальность — ключ, попавший в репозиторий, рано или поздно утечёт.
Потоковый ответ
Если ответ длинный, ждать его целиком неудобно. Включите потоковый режим — текст пойдёт кусками, как в чате:
stream = client.chat.completions.create(
model="claude-haiku-4-5",
messages=[{"role": "user", "content": "Напиши короткий рассказ."}],
max_tokens=500,
stream=True,
)
for chunk in stream:
delta = chunk.choices[0].delta.content
if delta:
print(delta, end="", flush=True)Стоит это столько же, сколько обычный запрос — разница только в том, как приходит ответ.
Готовые инструменты: кода не нужно вовсе
Если писать код не хочется, многое подключается настройками.
Claude Code — консольный помощник, который читает проект и правит файлы. Настраивается переменными окружения:
export ANTHROPIC_BASE_URL="https://api.costbridgeai.com" export ANTHROPIC_AUTH_TOKEN="ваш-ключ" export ANTHROPIC_MODEL="claude-opus-4-8" export ANTHROPIC_SMALL_FAST_MODEL="claude-haiku-4-5" claude
Обратите внимание: адрес указывается без `/v1` — Claude Code добавляет путь сам. Это частая причина ошибки «не подключается». Подробнее — на странице про Claude Code.
Расширения для редактора (Cline, Roo Code, Kilo Code, Continue) — в настройках выбираете провайдера «OpenAI Compatible» и вписываете адрес, ключ и модель.
n8n и подобные конструкторы — там тоже есть узел «OpenAI Compatible» с теми же тремя полями.
Как не потерять контроль над расходами
Про это вспоминают после первого неприятного счёта. Три вещи, которые стоит сделать сразу.
Ограничьте длину ответа. max_tokens в каждом запросе. Без него легко платить за многословие, которое вам не нужно.
Заведите отдельные ключи. Один для боевого сервиса, другой для экспериментов. Тогда понятно, кто и сколько тратит, и можно отозвать один, не трогая другой.
Поставьте лимит. Месячный предел на организацию и отдельный на каждый ключ. Ошибка в цикле, отправляющая тысячу запросов вместо одного, случается у всех — вопрос лишь в том, остановит ли её что-нибудь.
Как это устроено у нас
Мы принимаем оба формата: OpenAI-совместимый и Anthropic. Один ключ работает и там, и там, биллинг общий.
- 19 моделей от восьми разработчиков через один ключ — меняете строку
model, не код. - Готовые настройки для Claude Code, Cline, Roo Code, Continue, n8n, LangChain и других инструментов лежат в личном кабинете: копируете и вставляете.
- Расход виден по каждому запросу — модель, токены, стоимость.
- Лимиты на организацию и на отдельный ключ, плюс месячный бюджет с уведомлением при приближении к порогу.
- Содержимое запросов не сохраняется — только метаданные.
- Первый запрос можно сделать до оплаты счёта, чтобы проверить, что всё работает.
Цены на все модели — на странице цен. Что делать компании с оплатой и документами — в отдельной статье.
Частые вопросы
Нужно ли переписывать код при смене модели? Нет. Меняется строка model. Если формат тот же, остальное не трогается.
Что если модель недоступна? У нас запрос автоматически уходит на резервную площадку той же модели. Если ответа нет вовсе, деньги не списываются.
Можно ли работать без VPN? Да. Запросы идут на российский адрес, к поставщику обращаемся мы сами.
Сколько времени занимает подключение? Регистрация — минута, дальше нужен ключ и одна строка в коде.