การเชื่อมต่อแอปพลิเคชันของคุณ

ในหน้านี้

เอนด์พอยต์ของ Model Router เข้ากันได้กับ OpenAI — ชี้ OpenAI SDK, Framework หรือเครื่องมือที่รองรับ BYOK ใดก็ได้ไปยัง base URL ของ Performance Hub ยืนยันตัวตนด้วยคีย์ API ของคุณ แล้วก็ใช้งานได้ทันที หน้านี้คือคู่มือเริ่มต้นอย่างรวดเร็วสำหรับการผสานรวม

สิ่งที่คุณต้องมี

  1. คีย์ API คุณต้องเป็น Organisation Administrator จึงจะสร้างคีย์ได้ สร้างคีย์ใน Settings (เฟือง) → Service Access & API Keys → Create key คีย์จะขึ้นต้นด้วย phk_ และข้อมูลลับจะแสดงเพียงครั้งเดียว ดู คีย์ API
  2. base URL แสดงอยู่ในการ์ด Connecting to the API ในหน้าการตั้งค่าเดียวกัน:

การ์ด Connecting to the APIการ์ด 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" } }

HTTPtypecodeความหมายสิ่งที่ควรทำ
401invalid_request_errorinvalid_api_keyไม่มีคีย์ API หรือข้อมูลประจำตัวของบริการที่เชื่อมต่อไม่ถูกต้องตรวจสอบส่วนหัว Authorization: Bearer
401invalid_request_error—คีย์ API ที่ไม่รู้จักหรือถูกเพิกถอน ("Invalid API key")เปิดใช้งานคีย์อีกครั้งหรือสร้างคีย์ใหม่
402insufficient_quotainsufficient_creditsยอดคงเหลือแบบชำระเงินล่วงหน้าหมด (หรือสำหรับบริการที่เชื่อมต่อ สถานที่ยังไม่ได้เปิดใช้งาน)เติมเงิน (หรือเปิดการเติมเงินอัตโนมัติ)
402insufficient_quotabudget_exceededถึงขีดจำกัดค่าใช้จ่ายแล้ว — ทั้งระดับสถานที่ หรือของคีย์หรือบริการที่เชื่อมต่อนี้ ข้อความจะระบุช่วงเวลา และสำหรับขีดจำกัดรายวัน/รายเดือน จะระบุเวลาที่รีเซ็ตอย่างแน่นอนตามเขตเวลาของสถานที่ เนื้อหาการตอบกลับยังมีฟิลด์ window, resetsAt, timezone และ docsUrlรอให้รีเซ็ต เพิ่มขีดจำกัด หรือรีเซ็ตเพดานสูงสุด
403invalid_request_error—"Model Router is not enabled for this facility" (คีย์ API) หรือ "Facility has no provisioned inference key" (คีย์ไม่มีคีย์ประมวลผลรองรับ)เปิดใช้งาน Model Router สำหรับสถานที่ (ดู เริ่มต้นใช้งาน) หากเปิดใช้งานแล้ว ให้หมุนเวียนคีย์หรือสร้างคีย์ใหม่
403invalid_request_errorcontent_policy_violation"Request blocked by content policy" — ตัวกรองเนื้อหาในโหมดบล็อกหรือการป้องกัน prompt injection ตรวจพบในพรอมต์ตรวจสอบการตั้งค่า Guardrails
429——เกินขีดจำกัดอัตรา (คำขอ/นาที หรือโทเค็น/นาที ที่ตั้งไว้กับคีย์ของคุณ)รอสักครู่แล้วลองใหม่ เพิ่มขีดจำกัดอัตราของคีย์หากจำเป็น
502server_error—บริการประมวลผลต้นทางไม่พร้อมใช้งานชั่วคราวลองใหม่โดยเว้นระยะห่างที่เพิ่มขึ้น

ข้อผิดพลาด 402 ทั้งสองแบบมีฟิลด์ docsUrl และข้อความจะลงท้ายด้วยลิงก์ไปยังเอกสารของ Performance Hub

จัดการข้อผิดพลาด 402 อย่างเหมาะสมในการผสานรวมของคุณ — เป็นสัญญาณที่คาดไว้เมื่อบัญชีเครดิตหมดหรือถึงงบประมาณ ไม่ใช่ความผิดพลาด

แนวทางปฏิบัติที่ดี

  • หนึ่งคีย์ต่อหนึ่งระบบ ให้การผสานรวมแต่ละรายการมีคีย์ที่มีป้ายกำกับของตนเอง เพื่อให้ระบุที่มาของการใช้งานได้ใน Activity และ Logs และหากเกิดการรั่วไหลก็เพียงหมุนเวียนคีย์เดียว
  • จำกัดขอบเขตของแต่ละคีย์ ตั้งเพดานค่าใช้จ่ายและขีดจำกัดอัตรารายคีย์ให้เหมาะกับระบบ ดู คีย์ API
  • เลือกใช้ auto เว้นแต่คุณต้องการโมเดลเฉพาะ — คุณจะได้โมเดลที่เร็วและราคาถูกสำหรับงานง่าย และได้โมเดลที่แข็งแกร่งที่สุดเฉพาะเมื่องานต้องการ
  • ติดตามแท็บ Logs ระหว่างการผสานรวม — ทุกคำขอจะปรากฏพร้อมสถานะ โทเค็น และค่าใช้จ่าย ทำให้แก้ไขปัญหาการผสานรวมได้รวดเร็ว ดู กิจกรรมและบันทึก