ข้อมูลอ้างอิง API ของ Gateway
endpoint /v1 ของ Gateway วิธียืนยันตัวตน เฮดเดอร์คำขอและคำตอบที่ Gateway เพิ่ม และเอกสาร OpenAPI ที่อธิบาย endpoint เหล่านี้
เอกสาร OpenAPI#
endpoint ด้านล่างอธิบายไว้ในเอกสาร OpenAPI 3.1 ซึ่งตรวจเทียบกับเส้นทางของ Gateway ทุกครั้งที่บิลด์
https://agentlab.cresclab.com/docs/openapi/gateway.jsonBase URL: https://api.agentlab.cresclab.com รหัสข้อผิดพลาดดูได้ในข้อผิดพลาด
Endpoint#
| เมธอดและพาธ | สิ่งที่ทำ |
|---|---|
POST /v1/chat/completions | OpenAI Chat Completions แบบสตรีมหรือไม่สตรีม กับโมเดลใดก็ได้ที่เวิร์กสเปซอนุญาต |
POST /v1/messages | Anthropic Messages ส่งต่อไปยังโมเดล Claude ตามที่ส่งมา |
POST /v1/messages/count_tokens | การนับโทเค็นของ Anthropic ไม่คิดค่าใช้จ่าย |
POST /v1/responses | OpenAI Responses ส่งต่อไปยังโมเดล OpenAI ตามที่ส่งมา |
POST /v1/prompts/{prompt}/completions | เรียกพรอมต์จากคลังพรอมต์ของเวิร์กสเปซพร้อมตัวแปร ตอบกลับในรูปแบบ Chat Completions |
GET /v1/models | auto และโมเดลที่คีย์นี้ระบุได้ ในรูปแบบรายการของ OpenAI หรือ Anthropic |
GET /v1/gateway/readiness | เซิร์ฟเวอร์ Gateway นี้พร้อมให้บริการหรือไม่ ไม่ต้องใช้คีย์ |
การยืนยันตัวตน#
ส่งคีย์ Gateway เป็น Authorization: Bearer <key> ทุก endpoint ยกเว้น /v1/chat/completions รับ x-api-key: <key> ได้ด้วย ถ้าส่งทั้งสองแบบต้องเป็นคีย์เดียวกัน คำขอจากเบราว์เซอร์ (ที่มีเฮดเดอร์ Origin) จะถูกปฏิเสธ
เฮดเดอร์คำขอ#
| เฮดเดอร์ | ใช้ที่ | ความหมาย |
|---|---|---|
X-AgentLab-Routing | ทุก endpoint สำหรับ inference | auto: ให้ Gateway เลือกโมเดลแม้เนื้อหาคำขอจะระบุโมเดลไว้ ต้องเป็น auto พอดี |
Idempotency-Key | ทุก endpoint สำหรับ inference ไม่บังคับ | ยาว 8 ถึง 128 ตัวอักษร คีย์เดียวกันจะไม่ถูกคิดค่าใช้จ่ายซ้ำ การนำไปใช้กับคำขออื่นจะถูกปฏิเสธ |
X-AgentLab-Metadata | ทุก endpoint สำหรับ inference ไม่บังคับ | แท็กสำหรับรายงานการใช้งาน: ออบเจ็กต์ JSON ที่มีค่าสตริงไม่เกิน 16 ค่า ดูแท็ก |
anthropic-version, anthropic-beta | /v1/messages | ส่งต่อให้ผู้ให้บริการตามที่ส่งมา |
เฮดเดอร์คำตอบ#
| เฮดเดอร์ | ความหมาย |
|---|---|
X-Request-Id | id ของคำขอ ตรงกับ request_id ในหน้าการใช้งานและในไฟล์ส่งออก |
X-Agentlab-Model | โมเดลที่ตอบ |
X-Agentlab-Decision | requested_model หรือวิธีที่ auto ตัดสิน ดูauto |
X-Agentlab-Assessment | เมื่อใช้ auto คือผลการประเมินงาน เช่น analysis/multi_step |
X-Agentlab-Prompt | ในการเรียกพรอมต์ คือเวอร์ชันของพรอมต์ที่ตอบ <prompt id>@<version> |
Retry-After, X-Should-Retry | เมื่อถูกปฏิเสธ บอกว่าควรลองใหม่หรือไม่และเมื่อไร ดู429 ทั้งสามแบบ |
Chat Completions#
เนื้อหาคำขอเป็นคำขอ OpenAI Chat Completions model คือ auto หรือชื่อจาก GET /v1/models ส่วน model ในคำตอบคือโมเดลที่ตอบ และ agentlab_decision.reason คือ auto หรือ requested_model เมื่อใช้ stream_options.include_usage ชิ้นสุดท้ายของสตรีมจะมีข้อมูลการใช้งาน
ออบเจ็กต์ agentlab ที่ไม่บังคับใช้ระบุสิ่งที่คำขอต้องการ เพื่อให้ auto เลือกเฉพาะโมเดลที่รองรับ: {"schema_version": 1, "tool_calling": true, "vision": false, "structured_output": false, "minimum_context_tokens": 0}
พรอมต์#
เจ้าของและผู้ดูแลจัดการพรอมต์ของเวิร์กสเปซได้ที่แท็บพรอมต์ของ Gateway ได้แก่ ข้อความที่มี {{ตัวแปร}} โมเดล (หรือ auto) และพารามิเตอร์ที่ไม่บังคับ ทุกครั้งที่บันทึกจะเป็นเวอร์ชันใหม่ และมีหนึ่งเวอร์ชันที่เผยแพร่ การเรียกใช้คัดลอกรูปแบบ API พรอมต์ของ Portkey
curl https://<gateway>/v1/prompts/support-reply/completions \
-H "Authorization: Bearer $AGENTLAB_API_KEY" -H "Content-Type: application/json" \
-d '{"variables": {"company": "Acme", "question": "When does order 1042 ship?"}}'- ระบุพรอมต์ด้วย slug หรือ id ต่อท้ายด้วย
@<version>เช่นsupport-reply@3เพื่อตรึงเวอร์ชัน ไม่เช่นนั้นเวอร์ชันที่เผยแพร่จะเป็นผู้ตอบ variablesต้องตรงกับตัวแปรของพรอมต์พอดีและค่าทุกตัวเป็นสตริง ตัวที่ขาดหรือเกินจะถูกปฏิเสธด้วยprompt_variables_mismatchก่อนส่งสิ่งใด- สมาชิก Chat Completions อื่น เช่น
modelstreamหรือuserจะแทนที่ค่าของพรอมต์ ส่วนmessagesจะถูกปฏิเสธเพราะพรอมต์เป็นผู้ถือข้อความ - คำตอบเป็นคำตอบแบบ Chat Completions ผ่านคีย์ ขีดจำกัด
autoและการใช้งานเดียวกัน หน้าการใช้งานแยกคำขอตามพรอมต์ และแต่ละคำขอแสดงพรอมต์และเวอร์ชัน ค่าตัวแปรที่ส่งมาจะไม่ถูกเก็บ
Messages และ Responses#
สอง endpoint นี้ส่งต่อไปยังผู้ให้บริการตามที่ส่งมา ยกเว้น model ซึ่งจะเปลี่ยนเป็นโมเดลที่ Gateway เลือก การใช้งาน fast mode, regional inference, service tier, การเขียนแคชหนึ่งชั่วโมง, web search และเวลาของ code execution จะวัดจากรายงานของผู้ให้บริการเองและคิดราคาตามแค็ตตาล็อก
บางส่วนจะถูกปฏิเสธ เพราะจะอ่านหรือเรียกใช้สิ่งที่ Gateway ระบุไม่ได้ว่าเป็นของเวิร์กสเปซคุณ
- Messages:
fallbacksและเครื่องมือ advisor ซึ่งเรียกโมเดลที่สองภายในการเรียกเดียว - Responses:
previous_response_id,conversation,promptและการอ้างอิง item ซึ่งอ่านสถานะที่เก็บไว้ใต้บัญชีของผู้ให้บริการ รวมถึงเครื่องมือfile_searchและimage_generationGateway ส่งstore: falseผู้ให้บริการจึงไม่เก็บคำตอบไว้เรียกดูภายหลัง