การเชื่อมต่อแอปพลิเคชันของคุณ
ในหน้านี้
เอนด์พอยต์ของ Model Router เข้ากันได้กับ OpenAI — ชี้ OpenAI SDK, Framework หรือเครื่องมือที่รองรับ BYOK ใดก็ได้ไปยัง base URL ของ Performance Hub ยืนยันตัวตนด้วยคีย์ API ของคุณ แล้วก็ใช้งานได้ทันที หน้านี้คือคู่มือเริ่มต้นอย่างรวดเร็วสำหรับการผสานรวม
สิ่งที่คุณต้องมี
- คีย์ API คุณต้องเป็น Organisation Administrator จึงจะสร้างคีย์ได้ สร้างคีย์ใน Settings (เฟือง) → Service Access & API Keys → Create key คีย์จะขึ้นต้นด้วย
phk_และข้อมูลลับจะแสดงเพียงครั้งเดียว ดู คีย์ API - base URL แสดงอยู่ในการ์ด Connecting to the API ในหน้าการตั้งค่าเดียวกัน:


รูปที่ 1: Connecting to the API: base URL และตัวอย่างคำขอที่คัดลอกไปวางได้
https://app.performancehub.co/ai/v1
base URL ที่ถูกต้องสำหรับสภาพแวดล้อมของคุณจะแสดงอยู่ในโมดูลเสมอ — โปรดคัดลอกจากที่นั่นแทนการคัดลอกจากหน้านี้
การยืนยันตัวตน
ส่งคีย์ของคุณเป็น bearer token ในทุกคำขอ:
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"}]}'
"ใช้ model 'auto' เพื่อให้เราท์เตอร์เลือก Model ที่ดีที่สุดต่อหนึ่งคำขอ หรือระบุ Model ID ใดก็ได้ที่เปิดใช้งานสำหรับสถานที่ของคุณ"
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 event ตัวอย่าง SDK ข้างต้นรองรับการสตรีมผ่าน API การสตรีมตามปกติของ SDK นั้น
โมเดลสำรอง
คุณสามารถระบุลำดับโมเดลสำรอง เพื่อให้ระบบลองส่งคำขออีกครั้งด้วยโมเดลถัดไปหากโมเดลหลักล้มเหลว:
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" — ตัวกรองเนื้อหาในโหมดบล็อกหรือการป้องกัน prompt injection ตรวจพบในพรอมต์ | ตรวจสอบการตั้งค่า Guardrails |
| 429 | — | — | เกินขีดจำกัดอัตรา (คำขอ/นาที หรือโทเค็น/นาที ที่ตั้งไว้กับคีย์ของคุณ) | รอสักครู่แล้วลองใหม่ เพิ่มขีดจำกัดอัตราของคีย์หากจำเป็น |
| 502 | server_error | — | บริการประมวลผลต้นทางไม่พร้อมใช้งานชั่วคราว | ลองใหม่โดยเว้นระยะห่างที่เพิ่มขึ้น |
ข้อผิดพลาด 402 ทั้งสองแบบมีฟิลด์ docsUrl และข้อความจะลงท้ายด้วยลิงก์ไปยังเอกสารของ Performance Hub
จัดการข้อผิดพลาด 402 อย่างเหมาะสมในการผสานรวมของคุณ — เป็นสัญญาณที่คาดไว้เมื่อบัญชีเครดิตหมดหรือถึงงบประมาณ ไม่ใช่ความผิดพลาด
แนวทางปฏิบัติที่ดี
- หนึ่งคีย์ต่อหนึ่งระบบ ให้การผสานรวมแต่ละรายการมีคีย์ที่มีป้ายกำกับของตนเอง เพื่อให้ระบุที่มาของการใช้งานได้ใน Activity และ Logs และหากเกิดการรั่วไหลก็เพียงหมุนเวียนคีย์เดียว
- จำกัดขอบเขตของแต่ละคีย์ ตั้งเพดานค่าใช้จ่ายและขีดจำกัดอัตรารายคีย์ให้เหมาะกับระบบ ดู คีย์ API
- เลือกใช้
autoเว้นแต่คุณต้องการโมเดลเฉพาะ — คุณจะได้โมเดลที่เร็วและราคาถูกสำหรับงานง่าย และได้โมเดลที่แข็งแกร่งที่สุดเฉพาะเมื่องานต้องการ - ติดตามแท็บ Logs ระหว่างการผสานรวม — ทุกคำขอจะปรากฏพร้อมสถานะ โทเค็น และค่าใช้จ่าย ทำให้แก้ไขปัญหาการผสานรวมได้รวดเร็ว ดู กิจกรรมและบันทึก