חיבור האפליקציה שלכם
בדף זה
נקודת הקצה של Model Router תואמת ל-OpenAI — הפנו כל SDK של OpenAI, מסגרת עבודה או כלי שתומך ב-BYOK לכתובת ה-URL הבסיסית של Performance Hub, בצעו אימות עם אחד ממפתחות ה-API שלכם, וזה פשוט עובד. דף זה הוא המדריך המהיר לשילוב.
מה צריך
- מפתח API. כדי ליצור מפתח צריך להיות Organisation Administrator. צרו אותו תחת Settings (גלגל השיניים) ← Service Access & API Keys ← Create key. המפתחות מתחילים ב-
phk_והסוד מוצג פעם אחת בלבד. ראו מפתחות API. - כתובת ה-URL הבסיסית. מוצגת בכרטיס Connecting to the API באותו דף הגדרות:


איור 1: Connecting to the API: כתובת ה-URL הבסיסית ובקשת דוגמה להעתקה והדבקה
https://app.performancehub.co/ai/v1
כתובת ה-URL הבסיסית המדויקת עבור הסביבה שלכם מוצגת תמיד במודול — העתיקו אותה משם ולא מהדף הזה.
אימות
שלחו את המפתח שלכם כאסימון bearer בכל בקשה:
Authorization: Bearer phk_your_key_here
התייחסו למפתח כמו לסיסמה. אם הוא דלף, בצעו לו Rotate (סוד חדש מונפק והישן מפסיק לעבוד מיד) או Revoke מרשימת מפתחות ה-API.
הבקשה הראשונה שלכם
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"}]}'
"השתמשו במודל 'auto' כדי לאפשר לנתב לבחור את המודל הטוב ביותר לכל בקשה, או בכל מפתח מודל המופע עבור המתקן שלכם."
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);
הצגת רשימת המודלים
GET /v1/models מחזיר כל מודל שמופעל עבור המתקן שלכם (בהתאם להגבלת מודלים לכל מפתח, אם קיימת). הצגת רשימת המודלים עובדת גם כשהיתרה שלכם אפס, כך ששילובים יכולים לגלות את הקטלוג לפני שהחשבון ממומן.
curl https://app.performancehub.co/ai/v1/models \
-H "Authorization: Bearer YOUR_API_KEY"
השתמשו בכל מזהה מודל שהוחזר בשדה model, או השתמשו ב-auto כדי לתת ל-Auto Router לבחור את המודל הטוב ביותר לכל בקשה.
הזרמה
ההזרמה פועלת בדרך הסטנדרטית של OpenAI — הגדירו "stream": true וצרכו את מקטעי האירועים שהשרת שולח (server-sent events). דוגמאות ה-SDK שלמעלה תומכות בכך באמצעות ממשקי ה-API הרגילים שלהן להזרמה.
מודלים חלופיים
אפשר לספק שרשרת חלופות מסודרת, כך שאם המודל הראשי נכשל, הבקשה תנוסה שוב במודל הבא:
models: ["model-a", "model-b", "model-c"]— רשימה מסודרת מלאה; הפריט הראשון הוא הראשי.- או
model: "model-a"יחד עםfallbacks: ["model-b", "model-c"]— גיבויים שמנוסים אחרי הראשי.
המודלים החלופיים מסוננים למודלים שהמפתח שלכם רשאי להשתמש בהם.
תגובות שגיאה
השגיאות משתמשות במעטפת השגיאה הסטנדרטית של OpenAI: { "error": { "message", "type", "code" } }.
| HTTP | type | code | משמעות | מה לעשות |
|---|---|---|---|---|
| 401 | invalid_request_error | invalid_api_key | מפתח API חסר, או אישורים לא תקינים של שירות מחובר. | בדקו את הכותרת Authorization: Bearer. |
| 401 | invalid_request_error | — | מפתח API לא מוכר או שנשלל ("Invalid API key"). | הפעילו מחדש את המפתח או צרו מפתח חדש. |
| 402 | insufficient_quota | insufficient_credits | היתרה בתשלום מראש אזלה (או, עבור שירותים מחוברים, המודול לא מופעל במתקן). | טענו יתרה (או הפעילו טעינה אוטומטית). |
| 402 | insufficient_quota | budget_exceeded | הגעתם למגבלת הוצאה — ברמת המתקן כולו, או במפתח הזה או בשירות המחובר הזה. ההודעה מציינת איזה חלון, ובמגבלות יומיות/חודשיות גם מתי בדיוק הוא מתאפס לפי אזור הזמן של המתקן. גוף התגובה כולל גם את השדות window, resetsAt, timezone ו-docsUrl. | המתינו לאיפוס, העלו את המגבלה או אפסו את התקרה הקשיחה. |
| 403 | invalid_request_error | — | "Model Router is not enabled for this facility" (מפתחות API), או "Facility has no provisioned inference key" (למפתח אין מפתח הסקה שעומד מאחוריו). | הפעילו את Model Router עבור המתקן (ראו תחילת העבודה). אם הוא כבר מופעל, החליפו את המפתח או צרו מפתח חדש. |
| 403 | invalid_request_error | content_policy_violation | "Request blocked by content policy" — מסנן תוכן במצב חסימה או המגן מפני הזרקת הנחיות זיהה התאמה בהנחיה. | בדקו את הגדרות Guardrails. |
| 429 | — | — | חריגה ממגבלת הקצב (בקשות לדקה או טוקנים לדקה שהוגדרו במפתח שלכם). | המתינו ונסו שוב; העלו את מגבלות הקצב של המפתח במידת הצורך. |
| 502 | server_error | — | שירות ההסקה במעלה הזרם אינו זמין באופן זמני. | נסו שוב עם השהיה הדרגתית. |
שתי שגיאות ה-402 כוללות שדה docsUrl, וההודעה שלהן מסתיימת בקישור לתיעוד של Performance Hub.
טפלו בשגיאה 402 בצורה מסודרת בשילוב שלכם — זה האות הצפוי כשנגמר לחשבון הקרדיט או כשהוא מגיע לתקציב, לא תקלה.
שיטות עבודה מומלצות
- מפתח אחד לכל מערכת. תנו לכל שילוב מפתח משלו עם תווית, כך שאפשר לשייך את השימוש ב-Activity וב-Logs, ודליפה מחייבת להחליף רק מפתח אחד.
- הגבילו כל מפתח. הגדירו תקרות הוצאה ומגבלות קצב לכל מפתח בהתאם למערכת; ראו מפתחות API.
- העדיפו את
autoאלא אם אתם צריכים מודל ספציפי — תקבלו מודלים מהירים וזולים לעבודה פשוטה ואת המודלים החזקים ביותר רק כשמשימה זקוקה להם. - עקבו אחר הכרטיסייה Logs במהלך השילוב — כל בקשה מופיעה עם הסטטוס, הטוקנים והעלות שלה, וכך קל לאתר במהירות בעיות בשילוב. ראו פעילות ויומנים.