Zum Inhalt springen

OpenAI-kompatibel

Eine OpenAI-kompatible API, als Drop-in

Behalten Sie das OpenAI-SDK und Ihren bestehenden Code. Ändern Sie drei Werte, Basis-URL, Schlüssel und Modell, und Ihre Chat-Completions laufen auf zwei unzensierten Modellen, die nichts speichern. Unten: die Umstellung in Python, JavaScript und curl und eine genaue Liste, was unterstützt wird.

Geprüft am 29. Oktober 2026

Werte, die Sie in Ihrem Code ändern
3
optionale Anfragefelder, die durchgereicht werden
15
Routen, Chat-Completions eingeschlossen
4
zum Testen mit sk-nokeep-test
$0

Die drei Werte

Basis-URL
https://nokeep.ai/v1
API-Schlüssel
sk-nokeep-test (free) or your sk-nokeep-… key
Modell
deepseek-v4.1-flash-uncensored

Die offiziellen OpenAI-SDKs lesen Basis-URL und Schlüssel aus der Umgebung. Für viele Projekte braucht die Umstellung daher gar keine Codeänderung:

Shell
export OPENAI_BASE_URL="https://nokeep.ai/v1"
export OPENAI_API_KEY="sk-nokeep-…"

Ändern Sie dann den Modellnamen an der Stelle, an der Sie ihn aufrufen. Alle anderen Zeilen bleiben.

In Python, JavaScript und curl

import os
from openai import OpenAI

client = OpenAI(
    base_url="https://nokeep.ai/v1",
    api_key=os.environ["NOKEEP_API_KEY"],
)

reply = client.chat.completions.create(
    model="deepseek-v4.1-flash-uncensored",
    messages=[{"role": "user", "content": "Write a haiku about moving house."}],
)
print(reply.choices[0].message.content)

Streaming, Werkzeuge, JSON-Ausgabe und Bilder funktionieren wie im Format von OpenAI selbst. Bibliotheken und Frameworks, die auf dem OpenAI-SDK aufbauen, nehmen dieselbe Basis-URL und denselben Schlüssel. Probieren Sie den Aufruf zuerst hier aus:

Hier testen, gratis

Dies sendet eine echte Anfrage an die API mit dem Testschlüssel. Die Antwort ist eine feste Zeile und kostet nichts.

Was unterstützt wird

FunktionUnterstützt
POST /v1/chat/completions, ganz oder gestreamtJa, beide Modelle
GET /v1/models und GET /v1/models/{id}Ja, mit Kontextlänge, längster Antwort und Preis pro Token
Rollen: system, developer, user, assistant, toolJa
Werkzeugaufrufe: tools, tool_choiceJa. Bei GLM akzeptiert tool_choice nur auto oder none.
reasoning_effortDeepSeek: none, low, high, max. GLM: low, high.
Bilder als image_url-Teile, Links oder Data-URLsdeepseek-v4.1-flash-uncensored, bis zu 10 pro Anfrage
response_format, temperature, top_p, stop, seed, Strafendeepseek-v4.1-flash-uncensored
stream_options.include_usage, max_tokens, max_completion_tokensJa
Gecachte Eingabe in usage.prompt_tokens_details.cached_tokensJa, abgerechnet zum Cache-Preis

Jedes Feld, Modell für Modell: Chat completions.

Was nicht unterstützt wird

Nicht unterstütztWas Sie bekommen
Andere Endpunkte: Embeddings, Bilder, Audio, Dateien, Batch, Moderationen, die Responses- und Assistants-APIs, Legacy-Completions404 not_found, mit den vier Routen, die es gibt
n ungleich 1400 unsupported_n
Ein reasoning_effort, das das Modell nicht akzeptiert400 invalid_reasoning_effort, mit den akzeptierten Werten
Eine benannte Funktion oder required als tool_choice bei glm-5.3-flash-uncensored400 unsupported_tool_choice
Bilder an glm-5.3-flash-uncensored; Audio- oder Videoteile an beide Modelle400 unsupported_input, mit dem Modell, das Bilder liest
Mehr als 10 Bilder oder mehr als 2,000 Nachrichten400 too_many_images, 400 invalid_messages
Felder, die keines der beiden Modelle akzeptiert, etwa logprobs, logit_bias, user oder storeWerden entfernt und im Header x-nokeep-ignored genannt

Nichts Nicht-Unterstütztes wird geraten oder still verändert: Eine Anfrage wird mit einem Code abgelehnt, oder ihre ungenutzten Felder werden in einem Header genannt. Jeder Code mit seiner Lösung: Fehler.

Kleine Unterschiede, die Sie kennen sollten

  • usage.nokeep_credits sagt, was der Aufruf gekostet hat; die Header x-nokeep-credits und x-nokeep-balance sagen es bei einer vollständigen Antwort.
  • Abgerechnet wird aus vorausbezahlten Credits: 1,000 Credits sind $1, ab $5, und sie verfallen nie. Ein abgelehnter Aufruf kostet nichts.
  • Ratenlimit: 120 Anfragen pro Minute und Schlüssel. Ein 429 trägt Retry-After.
  • Der GLM-Host kann zu Stoßzeiten ausgelastet sein; ein belegter Aufruf antwortet mit 503 busy und Retry-After: 5 und kostet nichts.

Fragen

Muss ich meinen Code ändern, um zu wechseln?

Nur die Basis-URL, den Schlüssel und den Modellnamen. Mit den offiziellen SDKs können die ersten beiden aus OPENAI_BASE_URL und OPENAI_API_KEY in der Umgebung kommen.

Funktioniert es mit Apps, die einen eigenen OpenAI-Endpunkt verlangen?

Ja. Jede App mit einer OpenAI-kompatiblen oder eigenen Endpunkt-Einstellung funktioniert. Anleitungen: SillyTavern, Open WebUI und Coding-Agenten auf der Seite für Coding-Agenten.

Welche OpenAI-Modelle kann ich aufrufen?

Keine: Das Format ist das von OpenAI, die Modelle sind deepseek-v4.1-flash-uncensored und glm-5.3-flash-uncensored. GET /v1/models listet jede ID.

Gibt es einen Embeddings-Endpunkt?

Noch nicht. Die API bietet Chat-Completions, die Modellliste und eine Statusroute. Neue Routen erscheinen im Changelog.

Was passiert mit Feldern, die Sie nicht unterstützen?

Sie werden entfernt und im Header x-nokeep-ignored genannt, damit Sie genau sehen, was nicht verwendet wurde. Werte, die die Bedeutung einer Anfrage verändern würden, etwa n über 1, werden stattdessen mit einem 400 abgelehnt.