OneProvider
Руководства

Стриминг (SSE)

Получайте ответ по мере генерации: поставьте stream:true на любом эндпоинте, и SSE-события Anthropic придут без изменений. Примеры на Python, Node и fetch.

Поставьте stream:true на любом эндпоинте. Anthropic SSE event-типы приходят без изменений и без буферизации.

Все модели, характеристики и цены Индекс документации для AI-агентов: https://oneprovider.dev/docs/llms.txt

Зачем стримить

  • Time-to-first-token падает с секунд до ~100мс.
  • Длинные tool-use циклы не упираются в 6-минутный лимит на начало ответа: стрим начинает отвечать сразу. Любой запрос ограничен 10 минутами, см. Коды ошибок .
  • Лучший UX: прогрессивный рендер вместо замороженных спиннеров.

Типы событий

  • message_start — первое событие, возвращает метаданные ассистента.
  • content_block_start · content_block_delta · content_block_stop — по одному набору на каждый text- или tool_use-блок. Дельты — это либо text_delta, либо input_json_delta (для входа инструмента).
  • message_delta — обновление stop_reason и usage в конце.
  • message_stop — финальное событие.
  • ping — keep-alive каждые ~15с.

Python (Anthropic SDK)

python
with client.messages.stream(
model="claude-sonnet-5-5",
max_tokens=1024,
messages=[{"role": "user", "content": "Tell me a haiku about Frankfurt."}],
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)
final = stream.get_final_message()
print("\n--", final.usage)

Node / TypeScript

ts
const stream = client.messages.stream({
model: "claude-sonnet-5-5",
max_tokens: 1024,
messages: [{ role: "user", content: "Tell me a haiku about Frankfurt." }],
});
for await (const event of stream) {
if (event.type === "content_block_delta" && event.delta.type === "text_delta") {
process.stdout.write(event.delta.text);
}
}
const final = await stream.finalMessage();
console.log("--", final.usage);

Сырой fetch (браузер, edge)

ts
const r = await fetch("https://api.oneprovider.dev/v1/messages", {
method: "POST",
headers: {
"x-api-key": KEY,
"anthropic-version": "2023-06-01",
"content-type": "application/json",
},
body: JSON.stringify({
model: "claude-sonnet-5-5",
max_tokens: 1024,
stream: true,
messages: [{ role: "user", content: "stream me a poem" }],
}),
});
const reader = r.body!.pipeThrough(new TextDecoderStream()).getReader();
while (true) {
const { value, done } = await reader.read();
if (done) break;
process.stdout.write(value);
}
Без буферизации События уходят клиенту сразу, как только модель их выдаёт. Любой запрос, со стримингом тоже, ограничен 10 минутами; см. Коды ошибок .

Быстрые ответы

Какой base URL использовать?

Claude Code и Anthropic SDK работают с https://api.oneprovider.dev. OpenAI SDK и OpenAI-совместимые клиенты работают с https://api.oneprovider.dev/v1. За обоими адресами один ключ; список моделей: странице моделей , ставки на странице тарифов .

Как авторизоваться?

Передайте сырой ключ sk-… в заголовке x-api-key или Authorization: Bearer: один из двух, не оба. Храните ключ в переменной окружения, а не в файле, который попадает в репозиторий. Подробнее об аутентификации .

Где взять ключ?

Откройте кабинет в Telegram-боте @oneprovider_robot или на app.oneprovider.dev, пополните баланс и нажмите «Выпустить ключ». У каждого ключа может быть свой лимит расхода. Кабинет и ключи .

Что значат ошибки 401, 404 и 429?

401: ключ не задан, написан с ошибкой или передан не в том заголовке; вставьте ключ целиком, без кавычек и пробелов. 404: обычно неверный base URL, например лишний или двойной /v1. 429 с текстом «Insufficient balance»: баланс кабинета или лимит ключа исчерпан, пополните его вместо повторов; любой другой 429 это лимит частоты, подождите Retry-After. Разбор: коды ошибок и решение проблем .

Почему обрывается стрим или сбрасывается соединение?

VPN и VLESS-прокси часто буферизуют SSE или ломают согласование HTTP/2. У OneProvider нет региональных ограничений, и стримы на нашей стороне не буферизуются: отключите прокси и повторите запрос.

Куда писать, если не помогло?

Напишите в Telegram @Oneproviderhelpbot или откройте «Поддержку» в веб-кабинете: приложите код статуса и точный текст ошибки. Как работает поддержка .

Последнее обновление: 2026-10-05 Нашли ошибку? @Oneproviderhelpbot