OpenAI-kompatibel
Ihren OpenAI-Code behalten, nur die Basis-URL ändern
SpicyAPI spricht das Chat-Completions-Format von OpenAI. Richten Sie jedes kompatible SDK, Framework oder jede Chat-App auf unsere Basis-URL, nutzen Sie eine Modell-ID aus dem Katalog und streamen Sie Antworten wie gewohnt.
Was ist eine OpenAI-kompatible API?
Sie akzeptiert dieselben Anfragen wie die Chat-API von OpenAI. Jedes Tool, das für OpenAI gebaut ist, kann mit SpicyAPI sprechen, sobald Sie drei Einstellungen ändern.
- Ihre App oder Ihr Chat-ClientOpenAI SDK, LangChain, SillyTavern …
- SpicyAPIapi.spicyapi.ai/v1
- Chatmodelle26 Modelle mit einem Schlüssel
Ideal für
- Apps mit OpenAI-SDKAdresse und Schlüssel tauschen. Der restliche Code bleibt.
- Roleplay- und Chat-AppsSillyTavern, RisuAI und Agnai verbinden sich als eigener OpenAI-Endpunkt.
- Agenten-FrameworksLangChain, Vercel AI SDK und Aider funktionieren über ihre OpenAI-Adapter.
In drei Schritten verbinden
- Schritt 1
API-Schlüssel anlegen
Melden Sie sich an und erstellen Sie in der Konsole einen Schlüssel. Er beginnt mit sk-spicy-.
header Authorization: Bearer sk-spicy-… - Schritt 2
Basis-URL ändern
Ersetzen Sie die Adresse von OpenAI durch https://api.spicyapi.ai/v1.
base URL https://api.spicyapi.ai/v1 - Schritt 3
Modell-ID wählen
Kopieren Sie unten eine Chatmodell-ID und senden Sie Ihre erste Nachricht.
model xai/grok-4.7/chat
Drei Werte zum Ändern
Die meisten Clients hängen /chat/completions selbst an, tragen Sie die Basis-URL also nur bis /v1 ein. Apps, die den vollständigen Endpunkt verlangen, brauchen https://api.spicyapi.ai/v1/chat/completions.
- Basis-URLhttps://api.openai.com/v1https://api.spicyapi.ai/v1
- API-Schlüsselsk-proj-…sk-spicy-…
- Modellgpt-4oChatmodell-ID wählen
Einrichtung für Ihren Client
Kopieren Sie das Snippet für das SDK, Framework oder die App, die Sie bereits nutzen. Klicken Sie auf Ihr Tool, um zum Snippet zu springen.
curl https://api.spicyapi.ai/v1/chat/completions \
-H "Authorization: Bearer $SPICY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "MODEL_ID_FROM_CATALOG",
"messages": [{ "role": "user", "content": "Write a two-line opening scene." }],
"stream": true
}'API type: OpenAI-compatible (custom endpoint / proxy)
Base URL: https://api.spicyapi.ai/v1
API key: sk-spicy-...
Model: MODEL_ID_FROM_CATALOG # a chat model id ending in /chatDie OpenAI-kompatible Option wählen, Basis-URL und Schlüssel einfügen und ein Modell auswählen, dessen ID auf /chat endet.
import OpenAI from "openai";
import { randomUUID } from "node:crypto";
const client = new OpenAI({
apiKey: process.env.SPICY_API_KEY,
baseURL: "https://api.spicyapi.ai/v1",
});
// One key per business action. The SDK retries automatically, so without it a
// dropped response can create a second task and a second charge.
const idempotencyKey = randomUUID();
const completion = await client.chat.completions.create(
{
model: "MODEL_ID_FROM_CATALOG",
messages: [{ role: "user", content: "Say hello in five words." }],
},
{ headers: { "Idempotency-Key": idempotencyKey } },
);
console.log(completion.choices[0].message.content);baseURL am Client setzen und eine Modell-ID aus dem Katalog übergeben.
import os
import uuid
from openai import OpenAI
client = OpenAI(
api_key=os.environ["SPICY_API_KEY"],
base_url="https://api.spicyapi.ai/v1", # or set OPENAI_BASE_URL
)
# One key per business action. The SDK retries automatically, so without it a
# dropped response can create a second task and a second charge.
idempotency_key = str(uuid.uuid4())
completion = client.chat.completions.create(
model="MODEL_ID_FROM_CATALOG",
messages=[{"role": "user", "content": "Say hello in five words."}],
extra_headers={"Idempotency-Key": idempotency_key},
)
print(completion.choices[0].message.content)base_url am Client setzen oder OPENAI_BASE_URL exportieren.
import { createOpenAICompatible } from "@ai-sdk/openai-compatible";
import { generateText } from "ai";
import { randomUUID } from "node:crypto";
const spicy = createOpenAICompatible({
name: "spicyapi",
apiKey: process.env.SPICY_API_KEY,
baseURL: "https://api.spicyapi.ai/v1",
});
const { text } = await generateText({
model: spicy("MODEL_ID_FROM_CATALOG"),
prompt: "Say hello in five words.",
// Per call, never on the client: one key shared by every request would make
// the second request replay the first one's answer.
headers: { "Idempotency-Key": randomUUID() },
});Den openai-compatible-Provider mit unserer Basis-URL verwenden.
import os
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(
model="MODEL_ID_FROM_CATALOG",
base_url="https://api.spicyapi.ai/v1",
api_key=os.environ["SPICY_API_KEY"],
# Retries here would resend an already-accepted request without an
# Idempotency-Key, which bills twice. Send the key yourself (see the
# OpenAI Python recipe) before turning retries back on.
max_retries=0,
)
print(llm.invoke("Say hello in five words.").content)ChatOpenAI nimmt base_url und api_key direkt entgegen.
export OPENAI_API_BASE=https://api.spicyapi.ai/v1
export OPENAI_API_KEY=$SPICY_API_KEY
aider --model openai/MODEL_ID_FROM_CATALOGZwei Umgebungsvariablen, dann dem Modell openai/ voranstellen.
Clients von Drittanbietern ändern ihre Konfigurationsformate von Version zu Version. Passt ein Snippet hier nicht mehr, gilt die Dokumentation des Clients.
Nutzbare Chatmodelle
Kopieren Sie die ID genau wie angezeigt. Preise und Kontextlimits stehen auf der jeweiligen Modellseite.
- Grok 4.7 · Chatxai/grok-4.7/chat
- DeepSeek V4.1 Flash · Chatdeepseek/v4.1-flash/chat
- Grok 4.3 · Chatxai/grok-4.3/chat
- Claude Haiku 5.5 · Chatanthropic/claude-haiku-5.5/chat
- Claude Sonnet 5.5 · Chatanthropic/claude-sonnet-5.5/chat
- Claude Opus 5.5 · Chatanthropic/claude-opus-5.5/chat
- GLM 5.3 Flash · Chatzai/glm-5.3-flash/chat
- GLM 5.3 · Chatzai/glm-5.3/chat
- DeepSeek V4 Pro · Chatdeepseek/v4-pro/chat
- Gemini 3.7 Flash · Chatgoogle/gemini-3.7-flash/chat
- Grok 4.6 · Chatxai/grok-4.6/chat
- DeepSeek V4 Flash · Chatdeepseek/v4-flash/chat
Häufige Fehler beheben
Die meisten Anfangsprobleme sind eines dieser drei. Jede Karte zeigt, was Sie sehen und was Sie ändern müssen.
- 401
Nicht autorisiert
Der Schlüssel fehlt oder ist ein OpenAI-Schlüssel. Senden Sie Ihren SpicyAPI-Schlüssel: Authorization: Bearer sk-spicy-…
- 404
Nicht gefunden
Die Basis-URL enthält nicht den richtigen Pfad. Verwenden Sie https://api.spicyapi.ai/v1 statt der Domain ohne Pfad und hängen Sie /chat/completions nicht doppelt an.
- Modell
Modell nicht gefunden
OpenAI-Namen wie gpt-4o sind hier keine Aliase. Verwenden Sie eine vollständige ID in der Form maker/model/chat.
Sie nutzen SillyTavern?
SillyTavern hat eine eigene Anleitung mit Verbindungseinstellungen und einer Erweiterung, die Ihren Chats Bilder und Kurzvideos hinzufügt.
SillyTavernBilder und Video
Das OpenAI-Format deckt Chat ab. Für Bilder, Video und Audio nutzen Sie die Task-API über eines der offiziellen SDKs.
SDKs