Ihre Anwendung verbinden
Auf dieser Seite
Der Endpunkt von Model Router ist OpenAI-kompatibel – richten Sie ein beliebiges OpenAI SDK, Framework oder BYOK-fähiges Werkzeug auf die Basis-URL des Performance Hub aus, authentifizieren Sie sich mit einem Ihrer API-Schlüssel, und schon funktioniert es. Diese Seite ist der Schnellstart für die Integration.
Was Sie benötigen
- Einen API-Schlüssel. Zum Erstellen benötigen Sie die Rolle Organisation Administrator. Erstellen Sie ihn unter Einstellungen (Zahnrad) → Service Access & API Keys → Create key. Schlüssel beginnen mit
phk_, und der Geheimschlüssel wird nur einmal angezeigt. Siehe API-Schlüssel. - Die Basis-URL. Sie wird auf derselben Einstellungsseite in der Karte Connecting to the API angezeigt:


Abbildung 1: Connecting to the API: die Basis-URL und eine Beispielanfrage zum Kopieren und Einfügen
https://app.performancehub.co/ai/v1
Die genaue Basis-URL für Ihre Umgebung wird immer im Modul angezeigt – kopieren Sie sie von dort und nicht von dieser Seite.
Authentifizierung
Senden Sie Ihren Schlüssel bei jeder Anfrage als Bearer-Token:
Authorization: Bearer phk_your_key_here
Behandeln Sie den Schlüssel wie ein Passwort. Wenn er in falsche Hände gerät, rotieren Sie ihn mit Rotate (ein neuer Geheimschlüssel wird ausgestellt und der alte funktioniert sofort nicht mehr) oder widerrufen Sie ihn mit Revoke in der Liste der API-Schlüssel.
Ihre erste Anfrage
curl
curl https://app.performancehub.co/ai/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "auto", "messages": [{"role": "user", "content": "Hello"}]}'
"Verwenden Sie das Model 'auto', damit der Router das beste Modell pro Anfrage auswählt, oder eine beliebige Model-ID, die für Ihre Einrichtung aktiviert ist."
Python (OpenAI SDK)
from openai import OpenAI
client = OpenAI(
base_url="https://app.performancehub.co/ai/v1",
api_key="YOUR_API_KEY",
)
response = client.chat.completions.create(
model="auto",
messages=[{"role": "user", "content": "Hello"}],
)
print(response.choices[0].message.content)
TypeScript / Node (OpenAI SDK)
import OpenAI from 'openai';
const client = new OpenAI({
baseURL: 'https://app.performancehub.co/ai/v1',
apiKey: process.env.PH_API_KEY,
});
const response = await client.chat.completions.create({
model: 'auto',
messages: [{ role: 'user', content: 'Hello' }],
});
console.log(response.choices[0].message.content);
Modelle auflisten
GET /v1/models gibt alle für Ihre Einrichtung aktivierten Modelle zurück (unter Berücksichtigung etwaiger Modellbeschränkungen pro Schlüssel). Das Auflisten der Modelle funktioniert auch bei einem Guthaben von null, sodass Integrationen den Katalog erkunden können, bevor das Konto aufgeladen ist.
curl https://app.performancehub.co/ai/v1/models \
-H "Authorization: Bearer YOUR_API_KEY"
Verwenden Sie eine beliebige zurückgegebene Modell-ID im Feld model oder verwenden Sie auto, damit der Auto Router für jede Anfrage das beste Modell auswählt.
Streaming
Streaming funktioniert wie bei OpenAI üblich – setzen Sie "stream": true und verarbeiten Sie die Server-Sent-Event-Chunks. Die obigen SDK-Beispiele unterstützen dies über ihre üblichen Streaming-APIs.
Modell-Fallbacks
Sie können eine geordnete Fallback-Kette angeben, sodass die Anfrage beim nächsten Modell erneut versucht wird, wenn das primäre Modell fehlschlägt:
models: ["model-a", "model-b", "model-c"]– eine vollständige geordnete Liste; der erste Eintrag ist das primäre Modell.- oder
model: "model-a"plusfallbacks: ["model-b", "model-c"]– Ersatzmodelle, die nach dem primären Modell versucht werden.
Fallback-Kandidaten werden auf die Modelle gefiltert, die Ihr Schlüssel verwenden darf.
Fehlerantworten
Fehler verwenden das standardmäßige OpenAI-Fehlerformat: { "error": { "message", "type", "code" } }.
| HTTP | type | code | Bedeutung | Was zu tun ist |
|---|---|---|---|---|
| 401 | invalid_request_error | invalid_api_key | Fehlender API-Schlüssel oder ungültige Anmeldedaten eines verbundenen Dienstes. | Prüfen Sie den Header Authorization: Bearer. |
| 401 | invalid_request_error | — | Unbekannter oder widerrufener API-Schlüssel ("Invalid API key"). | Reaktivieren Sie den Schlüssel oder erstellen Sie einen neuen. |
| 402 | insufficient_quota | insufficient_credits | Prepaid-Guthaben aufgebraucht (oder bei verbundenen Diensten: die Einrichtung ist nicht aktiviert). | Laden Sie Guthaben auf (oder aktivieren Sie die automatische Aufladung). |
| 402 | insufficient_quota | budget_exceeded | Ein Ausgabenlimit wurde erreicht – einrichtungsweit oder für diesen Schlüssel bzw. verbundenen Dienst. Die Meldung nennt das Zeitfenster und bei Tages- und Monatslimits genau, wann es in der Zeitzone der Einrichtung zurückgesetzt wird. Der Body enthält außerdem die Felder window, resetsAt, timezone und docsUrl. | Warten Sie auf das Zurücksetzen, erhöhen Sie das Limit oder setzen Sie das feste Gesamtlimit zurück. |
| 403 | invalid_request_error | — | "Model Router is not enabled for this facility" (API-Schlüssel) oder "Facility has no provisioned inference key" (zum Schlüssel gibt es keinen zugrunde liegenden Inferenzschlüssel). | Aktivieren Sie Model Router für die Einrichtung (siehe Erste Schritte). Ist es bereits aktiviert, rotieren Sie den Schlüssel oder erstellen Sie einen neuen. |
| 403 | invalid_request_error | content_policy_violation | "Request blocked by content policy" – ein Inhaltsfilter im Blockiermodus oder der Prompt-Injection-Schutz hat beim Prompt angeschlagen. | Prüfen Sie die Einstellungen unter Guardrails. |
| 429 | — | — | Ratenlimit überschritten (für Ihren Schlüssel festgelegte Anfragen/Min. oder Tokens/Min.). | Warten Sie und versuchen Sie es erneut; erhöhen Sie bei Bedarf die Ratenlimits des Schlüssels. |
| 502 | server_error | — | Der vorgelagerte Inferenzdienst ist vorübergehend nicht verfügbar. | Versuchen Sie es mit Backoff erneut. |
Beide 402-Fehler enthalten ein Feld docsUrl, und ihre Meldung endet mit einem Link zur Performance Hub-Dokumentation.
Behandeln Sie 402 in Ihrer Integration ordnungsgemäß – es ist das erwartete Signal, wenn ein Konto kein Guthaben mehr hat oder ein Budget erreicht, kein Fehler im System.
Bewährte Vorgehensweisen
- Ein Schlüssel pro System. Geben Sie jeder Integration einen eigenen, bezeichneten Schlüssel, damit die Nutzung in Activity und Logs zugeordnet werden kann und bei einem Datenleck nur ein Schlüssel rotiert werden muss.
- Jeden Schlüssel begrenzen. Legen Sie für das jeweilige System passende Ausgaben- und Ratenlimits pro Schlüssel fest; siehe API-Schlüssel.
autobevorzugen, sofern Sie kein bestimmtes Modell benötigen – Sie erhalten schnelle, günstige Modelle für einfache Aufgaben und die leistungsstärksten Modelle nur dann, wenn eine Aufgabe sie erfordert.- Die Registerkarte „Logs“ beobachten während der Integration – jede Anfrage erscheint mit Status, Tokens und Kosten, wodurch sich Integrationsprobleme schnell beheben lassen. Siehe Aktivität und Protokolle.