BASIS-URL
https://devseek.space/v1
DOKU · v2
devseek spricht das Protokoll OpenAI Chat Completions. Jedes OpenAI SDK funktioniert, sobald Sie die Basis-URL ändern.
BASIS-URL
https://devseek.space/v1
AUTHENTIFIZIERUNG
Authorization: Bearer dsk-…
MODELL
deepseek-v4.1-flash-free
224K Tokens · 64K Tokens
curl https://devseek.space/v1/chat/completions \
-H "Authorization: Bearer $DEVSEEK_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-v4.1-flash-free",
"stream": true,
"messages": [{"role": "user", "content": "Write a binary search in Rust"}]
}'import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["DEVSEEK_API_KEY"],
base_url="https://devseek.space/v1",
)
stream = client.chat.completions.create(
model="deepseek-v4.1-flash-free",
messages=[{"role": "user", "content": "Write a binary search in Rust"}],
max_tokens=4096,
stream=True,
)
for chunk in stream:
if chunk.choices:
print(chunk.choices[0].delta.content or "", end="")import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.DEVSEEK_API_KEY,
baseURL: "https://devseek.space/v1",
});
const stream = await client.chat.completions.create({
model: "deepseek-v4.1-flash-free",
messages: [{ role: "user", content: "Review this diff for bugs" }],
stream: true,
});
for await (const c of stream) process.stdout.write(c.choices[0]?.delta?.content ?? "");from openai import OpenAI
client = OpenAI(api_key=KEY, base_url="https://devseek.space/v1")
tools = [{"type": "function", "function": {
"name": "run_tests",
"description": "Run the test suite and return failures",
"parameters": {"type": "object",
"properties": {"path": {"type": "string"}},
"required": ["path"]}}}]
r = client.chat.completions.create(
model="deepseek-v4.1-flash-free", tools=tools,
messages=[{"role": "user", "content": "Tests in src/ fail. Investigate."}])
print(r.choices[0].message.tool_calls)# opencode.json — add devseek as an OpenAI-compatible provider
{
"provider": {
"devseek": {
"npm": "@ai-sdk/openai-compatible",
"options": { "baseURL": "https://devseek.space/v1", "apiKey": "{env:DEVSEEK_API_KEY}" },
"models": { "deepseek-v4.1-flash-free": { "limit": { "context": 224000, "output": 65536 } } }
}
}
}
# aider
export OPENAI_API_BASE=https://devseek.space/v1 OPENAI_API_KEY=$DEVSEEK_API_KEY
aider --model openai/deepseek-v4.1-flash-free
| Pfad | Funktion | Hinweise |
|---|---|---|
GET /v1/models | Modelle auflisten | Schlüssel nötig |
POST /v1/chat/completions | Chat, mit oder ohne Streaming, mit Tools | stream: true für SSE; der Usage-Block kommt zuletzt |
GET /api/status | Öffentliches Status-JSON | Ohne Schlüssel |
GET /health | Lebendprüfung | Ohne Schlüssel |
Die Eingabe ist auf 224K Tokens und die Ausgabe auf 64K Tokens begrenzt. Wir schätzen die Eingabegröße aus den Bytes der Anfrage (etwa 3,3 Bytes pro Token), bevor wir das Modell aufrufen, daher kann eine Anfrage nahe der Grenze etwas früh abgelehnt werden.
Eine Sitzung ist eine Chat-Completion-Anfrage, die begonnen und noch nicht beendet ist. Ihre Stufe legt fest, wie viele Sitzungen gleichzeitig laufen dürfen:
Über Ihrem Limit erhalten Sie:
HTTP/1.1 429 Too Many Requests
Retry-After: 1
{"error":{"message":"Level 1 allows 3 concurrent sessions; 3 are already running. …",
"type":"rate_limit_error","code":"session_limit_reached",
"level":1,"session_limit":3,"sessions_in_use":3}}
Jedes Tool, das einen OpenAI-kompatiblen Anbieter akzeptiert, funktioniert. Nutzen Sie die Basis-URL, Ihren Schlüssel und die Modell-ID unten. Halten Sie parallele Tool-Worker auf oder unter Ihrem Sitzungslimit.
| Status / Code | Bedeutung | Was zu tun ist |
|---|---|---|
401 missing_api_key / invalid_api_key | Schlüssel fehlt oder ist falsch | Authorization: Bearer dsk-… senden |
400 invalid_json / invalid_messages | Fehlerhafter Körper oder messages | Anfrage korrigieren; nicht unverändert wiederholen |
400 context_length_exceeded | Eingabe über 224K Tokens | Gespräch kürzen oder zusammenfassen |
404 model_not_found | Unbekanntes Modell | deepseek-v4.1-flash-free verwenden |
413 body_too_large | Körper über 4 MB | Weniger Kontext senden |
429 session_limit_reached | Zu viele gleichzeitige Sitzungen | Warten Sie, bis eine Anfrage endet, und wiederholen Sie dann |
503 upstream_saturated / upstream_busy | devseek oder das Modell ist ausgelastet | Nach der Zeit im Header Retry-After erneut versuchen |
502 upstream_error | Das Modell-Backend ist ausgefallen | Erneuter Versuch ist unbedenklich |