Chat
建立 Chat Completion
對齊 OpenAI Chat Completions 規格。請求 body 會依 `model` 前綴路由至對應上游供應商。 - 設定 `"stream": true` 時以 SSE(`text/event-stream`)回傳 - 直連供應商時會自動剝除 model id 的 provider 前綴再轉發 - 未知欄位會盡可能透傳給上游(pass-through) - `hakila/auto` 依可用金鑰嘗試:OpenAI → Gemini → Claude → Grok → OpenRouter
對齊 OpenAI Chat Completions 規格。請求 body 會依 model 前綴路由至對應上游供應商。
- 設定
"stream": true時以 SSE(text/event-stream)回傳 - 直連供應商時會自動剝除 model id 的 provider 前綴再轉發
- 未知欄位會盡可能透傳給上游(pass-through)
hakila/auto依可用金鑰嘗試:OpenAI → Gemini → Claude → Grok → OpenRouter
Authorization
bearerAuth AuthorizationBearer <token>
在 Authorization 標頭帶入 Workspace API Key:
Authorization: Bearer sk-hakila-...
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/api/v1/chat/completions" \ -H "Content-Type: application/json" \ -d '{ "model": "openai/gpt-5.6-luna", "messages": [ { "role": "user", "content": "用一句話介紹 Hakila" } ] }'{ "id": "chatcmpl-example", "object": "chat.completion", "created": 1710000000, "model": "gpt-5.6-luna", "choices": [ { "index": 0, "message": { "role": "assistant", "content": "Hakila 是統一的 AI Gateway。" }, "finish_reason": "stop" } ], "usage": { "prompt_tokens": 12, "completion_tokens": 8, "total_tokens": 20 }}