OneProvider

Chat Completions

Użyj POST /v1/chat/completions w formacie zapytań OpenAI i otrzymuj odpowiedzi w stylu OpenAI z modeli Claude. W zestawie przykłady w Pythonie i Node.

POST /v1/chat/completions przyjmuje kształt żądania OpenAI i zwraca kształt odpowiedzi OpenAI. Jedyna wymagana zmiana względem obecnego kodu OpenAI to identyfikator modelu.

Wszystkie modele, możliwości i ceny Indeks dokumentacji dla agentów AI: https://oneprovider.dev/docs/llms.txt

Żądanie

http
POST https://api.oneprovider.dev/v1/chat/completions
Authorization: Bearer sk-...
content-type: application/json
{
"model": "claude-sonnet-5-5",
"messages": [
{ "role": "system", "content": "You are concise." },
{ "role": "user", "content": "Why is the sky blue?" }
],
"max_tokens": 256,
"stream": false
}

Odpowiedź

Kształt zgodny z OpenAI 1:1 — id, choices[].message, usage.

json
{
"id": "chatcmpl_01...",
"object": "chat.completion",
"created": 1715472000,
"model": "claude-sonnet-5-5",
"choices": [
{
"index": 0,
"message": { "role": "assistant", "content": "Rayleigh scattering..." },
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 48,
"completion_tokens": 92,
"total_tokens": 140
}
}

OpenAI SDK (Python)

python
from openai import OpenAI
client = OpenAI(
api_key="<OPENAI_API_KEY>",
base_url="https://api.oneprovider.dev/v1",
)
r = client.chat.completions.create(
model="claude-sonnet-5-5",
messages=[{"role": "user", "content": "Say hi."}],
)
print(r.choices[0].message.content)

OpenAI SDK (Node)

ts
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.OPENAI_API_KEY,
baseURL: "https://api.oneprovider.dev/v1",
});
const r = await client.chat.completions.create({
model: "claude-sonnet-5-5",
messages: [{ role: "user", content: "Say hi." }],
});
console.log(r.choices[0].message?.content);

Mapowanie pól

Dane referencyjne
Pole OpenAIDziałanie w OneProvider
messagesPrzekazywane; rola system trafia do system w Anthropic.
max_tokensPrzekazywane.
temperature, top_pPrzekazywane.
tools, tool_choiceTłumaczone na tools / tool_choice Anthropic — ta sama normalizacja co w Użyciu narzędzi .
streamPrzekazywane; zwraca fragmenty SSE w formacie OpenAI (nie zdarzenia Anthropic).
response_formatjson_object jest respektowane przez wskazówkę systemową. Ścisły tryb json_schema jest obecnie ignorowany.
logprobs, top_logprobsIgnorowane: modele ich nie udostępniają.
seedIgnorowane: nieobsługiwane.
n > 1Zwraca jeden wariant. Jeśli potrzebujesz N próbek, wywołaj endpoint N razy.
Wybierz format komunikacji i trzymaj się go Zarówno /v1/chat/completions, jak i /v1/messages trafiają do tych samych modeli w tej samej cenie. Chat Completions mapuje format OpenAI na model; natywny endpoint Messages pomija ten krok. W nowych projektach polecamy /v1/messages . Przy migracji z OpenAI najszybszą drogą są Chat Completions.

Szybkie odpowiedzi

Jakiego base URL użyć?

Claude Code i SDK Anthropic używają https://api.oneprovider.dev. SDK OpenAI i klienty zgodne z OpenAI używają https://api.oneprovider.dev/v1. Jeden klucz działa przy obu; lista modeli jest na stronie modeli , a stawki na stronie cennika .

Jak się uwierzytelnić?

Wyślij surowy klucz sk-… w x-api-key albo Authorization: Bearer: w jednym z nich, nigdy w obu. Trzymaj klucz w zmiennej środowiskowej, a nie w pliku, który trafia do repozytorium. Więcej o uwierzytelnianiu .

Skąd wziąć klucz?

Otwórz swój Panel w bocie Telegram @oneprovider_robot lub na app.oneprovider.dev, doładuj saldo i naciśnij „Utwórz klucz”. Każdy klucz może mieć własny limit wydatków. Panel i klucze API .

Co oznaczają 401, 404 i 429?

401: klucza brakuje, jest błędnie wpisany albo wysłany w złym nagłówku; wklej cały klucz bez cudzysłowów i spacji. 404: zwykle zły base URL, na przykład brakujące lub podwojone /v1. 429 z komunikatem „Insufficient balance”: saldo Panelu lub limit wydatków klucza się wyczerpał, więc doładuj zamiast ponawiać; każde inne 429 to limit zapytań, więc poczekaj zgodnie z Retry-After. Szczegóły: kody błędów i rozwiązywanie problemów .

Dlaczego strumienie się urywają lub resetują?

VPN i proxy VLESS często buforują SSE albo zrywają negocjację HTTP/2. OneProvider nie ma ograniczeń regionalnych i nie buforuje strumieni, więc wyłącz proxy i spróbuj ponownie.

Gdzie pytać, jeśli to nie wystarcza?

Napisz do @Oneproviderhelpbot w Telegramie albo otwórz „Wsparcie” w Panelu w przeglądarce, podając kod statusu HTTP i dokładny komunikat błędu. Jak działa wsparcie .

Ostatnia aktualizacja: 2026-11-08 Widzisz błąd? @Oneproviderhelpbot