Первый запрос к LLM
Heimdall совместим с OpenAI SDK. Если у тебя уже работает код с OpenAI или Anthropic — поменяешь 2 строки.
Самый быстрый тест — curl из терминала
Открой терминал (на Windows — PowerShell или Git Bash) и выполни:
curl https://heimdall-llm.com/v1/chat/completions \
-H "Authorization: Bearer sk-bf-..." \
-H "Content-Type: application/json" \
-d '{
"model": "claude-haiku-4-5",
"messages": [{"role":"user","content":"Привет!"}]
}'
Подставь свой sk-bf-... вместо троеточия. Через 1-2 секунды получишь ответ:
{
"choices": [{"message": {"role": "assistant", "content": "Привет! Чем могу помочь?"}}],
"model": "claude-haiku-4-5-20251001",
"usage": {"prompt_tokens": 10, "completion_tokens": 8, "total_tokens": 18}
}
Python — самый частый кейс
Установи OpenAI SDK (он совместим с Heimdall):
pip install openai
В коде:
from openai import OpenAI
client = OpenAI(
base_url="https://heimdall-llm.com/v1",
api_key="sk-bf-...", # твой ключ
)
resp = client.chat.completions.create(
model="claude-haiku-4-5",
messages=[
{"role": "system", "content": "Ты помощник, отвечающий кратко"},
{"role": "user", "content": "Что такое REST API?"},
],
)
print(resp.choices[0].message.content)
Ключ не пиши в коде — положи в переменную окружения:
# в .env файле HEIMDALL_API_KEY=sk-bf-... # в коде import os api_key=os.environ["HEIMDALL_API_KEY"]
Node.js / TypeScript
npm install openai
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://heimdall-llm.com/v1",
apiKey: process.env.HEIMDALL_API_KEY,
});
const resp = await client.chat.completions.create({
model: "deepseek-v4-flash", // самая дешёвая опция
messages: [{ role: "user", content: "Hello!" }],
});
console.log(resp.choices[0].message.content);
Какую модель выбрать
| Если хочешь... | Используй | Цена провайдера (вход / выход за 1М токенов) |
|---|---|---|
| Самое умное для сложных задач | claude-opus-4-7 | $5 / $25 |
| Универсальный баланс | claude-sonnet-4-6 | $3 / $15 |
| Дёшево и быстро | claude-haiku-4-5 | $1 / $5 |
| Очень дёшево | deepseek-v4-flash | $0.027 / $0.11 |
| Лучший tool-use | gpt-5.4 | $2.5 / $15 |
Цены провайдеров без Heimdall fee — актуальны на 2026-05-12, могут меняться. Heimdall fee добавляется сверху и виден отдельной колонкой в дашборде. Точную цену конкретного запроса смотри в usage.
Псевдонимы (aliases)
Чтобы не привязываться к конкретной модели, используй псевдонимы:
ceo— самая мощная доступная модель (сейчас Opus)default— баланс цены и качества (сейчас Sonnet)cheap— для простых задач (сейчас Haiku)cheap-reasoner— дешёвый reasoning (DeepSeek-R1)
Если завтра выйдет Claude 5 — мы перенаправим ceo на него, и твой код продолжит работать без изменений.
Streaming
Для чат-интерфейсов добавь "stream": true в запрос — будешь получать ответ по частям. SDK поддерживают это через генераторы:
stream = client.chat.completions.create(
model="claude-haiku-4-5",
messages=[...],
stream=True,
)
for chunk in stream:
print(chunk.choices[0].delta.content or "", end="", flush=True)
Типичные ошибки
| HTTP | Что значит | Что делать |
|---|---|---|
| 401 | Ключ невалидный или отозван | Проверь что не опечатался. Если отозвал — создай новый. |
403 MODEL_NOT_ALLOWED | Запросил модель не из allowed_models | Открой ключ в дашборде → добавь модель в список. |
429 DAILY_LIMIT_EXCEEDED | Дневной бюджет ключа закончился | Подожди до 00:00 UTC или подними бюджет. |
429 RATE_LIMIT_EXCEEDED | Слишком много запросов в минуту | Подожди или подними RPM в настройках ключа. |
502 UPSTREAM_ERROR | Провайдер (Anthropic/OpenAI) упал | Повторить через 30 сек. На Pro+ — настрой fallback. |