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
httpPOST 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.
{
"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)
pythonfrom 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)
tsimport 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
| Pole OpenAI | Działanie w OneProvider |
|---|---|
messages | Przekazywane; rola system trafia do system w Anthropic. |
max_tokens | Przekazywane. |
temperature, top_p | Przekazywane. |
tools, tool_choice | Tłumaczone na tools / tool_choice Anthropic — ta sama normalizacja co w Użyciu narzędzi . |
stream | Przekazywane; zwraca fragmenty SSE w formacie OpenAI (nie zdarzenia Anthropic). |
response_format | json_object jest respektowane przez wskazówkę systemową. Ścisły tryb json_schema jest obecnie ignorowany. |
logprobs, top_logprobs | Ignorowane: modele ich nie udostępniają. |
seed | Ignorowane: nieobsługiwane. |
n > 1 | Zwraca jeden wariant. Jeśli potrzebujesz N próbek, wywołaj endpoint N razy. |
/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