Zum Hauptinhalt springen

Migration von OpenAI/Anthropic

Für die meisten Projekte reichen drei Änderungen: Base URL, API-Key und Modellname.

OpenAI-SDK​

import os
from openai import OpenAI

client = OpenAI(
base_url="https://api.openhippo.io/v1", # instead of https://api.openai.com/v1
api_key=os.environ["OPENHIPPO_API_KEY"], # hk_live_...
)

response = client.chat.completions.create(
model="openhippo/gpt-oss-120b", # a model from our list
messages=[{"role": "user", "content": "Hello!"}],
)
print(response.choices[0].message.content)

Viele Tools lesen die Variablen OPENAI_BASE_URL und OPENAI_API_KEY. Dann genügt:

export OPENAI_BASE_URL="https://api.openhippo.io/v1"
export OPENAI_API_KEY="$OPENHIPPO_API_KEY"

Anthropic-SDK​

Open Hippo bietet die Anthropic Messages API unter /v1/messages, inklusive Streaming. Zwei Besonderheiten:

  • Base URL ohne /v1: Das SDK hängt /v1/messages selbst an.
  • Key als Bearer-Token: Übergib den Key als auth_token (Python) bzw. authToken (TypeScript), nicht als api_key. Das SDK schickt ihn dann im Header Authorization: Bearer. Setze ANTHROPIC_API_KEY in dieser Umgebung nicht.
pip install anthropic
import os
from anthropic import Anthropic

client = Anthropic(
base_url="https://api.openhippo.io",
auth_token=os.environ["OPENHIPPO_API_KEY"],
)

message = client.messages.create(
model="openhippo/gpt-oss-120b",
max_tokens=512,
messages=[{"role": "user", "content": "Hello!"}],
)
print(message.content[0].text)

Unterschiede zu OpenAI und Anthropic​

ThemaBei Open Hippo
ModellnamenEigene IDs wie openhippo/gpt-oss-120b oder Aliase wie hippo-coding, siehe Modelle. Groß-/Kleinschreibung zählt; ein unbekannter Name gibt 400 invalid_request_error.
AuthentifizierungNur Authorization: Bearer <key> ist dokumentiert.
Unbekannte ParameterParameter, die ein Modell nicht unterstützt, werden stillschweigend verworfen, statt einen Fehler auszulösen. Prüfe also das Ergebnis, nicht nur den Statuscode. Siehe unten.
StreamingPer SSE auf /v1/chat/completions und /v1/messages, siehe Streaming.
EndpunkteNur die Pfade aus Authentifizierung & Basics. Files, Batches, Fine-Tuning, Assistants und Bildgenerierung gibt es nicht. /v1/responses unterstützt nur das Anlegen einer Antwort.
Reasoningreasoning_effort (OpenAI) und thinking (Anthropic) werden auf die Stufen des Modells abgebildet, siehe Chat.
AbrechnungPrepaid-Guthaben in Euro. Ist es leer, antwortet die API mit 402. Partner-Modelle erst nach der ersten Aufladung, siehe Prepaid & Preise.
LimitsBudgets pro Key, Konto, Mitglied und Firma statt Tier-Limits, siehe Budgets & Limits.
FehlerformatFehler aus Authentifizierung und Abrechnung kommen im OpenAI-Format {"error": {...}}, auch auf /v1/messages. Siehe Fehler, Limits, Retries.

Noch nicht dokumentiert​

Für diese Parameter und Funktionen haben wir das Verhalten noch nicht dokumentiert bzw. getestet. Sie können je nach Modell funktionieren oder stillschweigend verworfen werden; prüfe das Ergebnis selbst:

  • response_format / JSON mode
  • stream_options.include_usage
  • seed
  • logprobs
  • n
  • parallel_tool_calls

Fragen dazu: support@openhippo.io.