Zgodne z OpenAI
Zostaw kod pod OpenAI, zmień bazowy adres URL
SpicyAPI rozumie format chat completions OpenAI. Wskaż nasz bazowy adres URL w dowolnym zgodnym SDK, frameworku lub aplikacji czatu, użyj ID modelu z katalogu i odbieraj odpowiedzi w streamingu jak zwykle.
Czym jest API zgodne z OpenAI?
Przyjmuje te same żądania co API czatu OpenAI. Każde narzędzie stworzone dla OpenAI połączy się ze SpicyAPI po zmianie trzech ustawień.
- Twoja aplikacja lub klient czatuSDK OpenAI, LangChain, SillyTavern…
- SpicyAPIapi.spicyapi.ai/v1
- Modele czatuModele: 26, jeden klucz
Do czego się nadaje
- Aplikacje korzystające z SDK OpenAIPodmień adres i klucz. Reszta kodu zostaje.
- Aplikacje do roleplay i czatuSillyTavern, RisuAI i Agnai mogą łączyć się przez niestandardowy endpoint OpenAI.
- Frameworki agentówLangChain, Vercel AI SDK i Aider działają przez swoje adaptery OpenAI.
Połącz w trzech krokach
- Krok 1
Utwórz klucz API
Zaloguj się i utwórz klucz w konsoli. Zaczyna się od sk-spicy-.
header Authorization: Bearer sk-spicy-… - Krok 2
Zmień bazowy adres URL
Zastąp adres OpenAI adresem https://api.spicyapi.ai/v1.
base URL https://api.spicyapi.ai/v1 - Krok 3
Wybierz ID modelu
Skopiuj ID modelu czatu z listy poniżej i wyślij pierwszą wiadomość.
model xai/grok-4.7/chat
Trzy wartości do zmiany
Większość klientów sama dopisuje /chat/completions, więc bazowy adres podaj tylko do /v1. Aplikacje, które pytają o pełny endpoint, potrzebują https://api.spicyapi.ai/v1/chat/completions.
- Bazowy adres URLhttps://api.openai.com/v1https://api.spicyapi.ai/v1
- Klucz APIsk-proj-…sk-spicy-…
- Modelgpt-4oWybierz ID modelu czatu
Konfiguracja dla Twojego klienta
Skopiuj fragment dla SDK, frameworka lub aplikacji, której już używasz. Kliknij narzędzie, aby przejść do jego przykładu konfiguracji.
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 /chatWybierz opcję zgodną z OpenAI, wklej bazowy adres URL i swój klucz, a potem wybierz model, którego ID kończy się na /chat.
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);Ustaw baseURL w kliencie i podaj identyfikator modelu z katalogu.
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)Ustaw base_url w kliencie albo wyeksportuj OPENAI_BASE_URL.
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() },
});Użyj modułu openai-compatible z naszym bazowym adresem URL.
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 przyjmuje base_url i api_key bezpośrednio.
export OPENAI_API_BASE=https://api.spicyapi.ai/v1
export OPENAI_API_KEY=$SPICY_API_KEY
aider --model openai/MODEL_ID_FROM_CATALOGDwie zmienne środowiskowe, a potem nazwa modelu z przedrostkiem openai/.
Klienty zewnętrzne zmieniają format konfiguracji między wersjami. Jeśli podany przykład przestanie pasować, kieruj się dokumentacją danego klienta.
Modele czatu do użycia
Skopiuj ID dokładnie tak, jak jest podane. Ceny i limity kontekstu są na stronie każdego modelu.
- 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
Typowe błędy i poprawki
Pierwsze problemy zwykle sprowadzają się do tych trzech sytuacji. Każda karta opisuje objaw i jedną zmianę, która go rozwiązuje.
- 401
Brak autoryzacji
Brakuje klucza albo to klucz OpenAI. Wyślij klucz SpicyAPI: Authorization: Bearer sk-spicy-…
- 404
Nie znaleziono
Bazowy adres URL ma nieprawidłową ścieżkę. Użyj https://api.spicyapi.ai/v1, zamiast samej domeny lub adresu z dwukrotnie dodanym /chat/completions.
- model
Nie znaleziono modelu
Nazwy OpenAI, takie jak gpt-4o, nie są tu aliasami. Użyj pełnego ID w formie maker/model/chat.
