其他项目接入
Node / TypeScript
const response = await fetch(`${process.env.HKGAI_BASE_URL}/v1/chat/completions`, {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${process.env.HKGAI_API_KEY}`
},
body: JSON.stringify({
model: "从 /v1/models 选择",
messages: [{ role: "user", content: "只回复 OK" }],
max_tokens: 32,
chat_template_kwargs: { enable_thinking: false }
})
});
Python
import os
import requests
response = requests.post(
f"{os.environ['HKGAI_BASE_URL']}/v1/chat/completions",
headers={"Authorization": f"Bearer {os.environ['HKGAI_API_KEY']}"},
json={
"model": "从 /v1/models 选择",
"messages": [{"role": "user", "content": "只回复 OK"}],
"max_tokens": 32,
"chat_template_kwargs": {"enable_thinking": False},
},
timeout=60,
)
response.raise_for_status()
print(response.json())
视频 LLM(异步任务)
视频接口使用 multipart/form-data 创建任务,不能按 Chat JSON 请求调用:
curl -X POST "$HKGAI_BASE_URL/v1/videos" \
-H "Authorization: Bearer $HKGAI_API_KEY" \
-F "model=t2_minimax-h3_bf16_7k2p" \
-F "task=t2va" \
-F "prompt=一只橘猫坐在窗边,镜头缓慢推进,画面自然稳定。" \
-F "seconds=4" \
-F "size=768x1024"
响应中的 id 或 task_id 是任务编号。随后轮询 GET /v1/videos/{task_id},状态为 completed 后读取 GET /v1/videos/{task_id}/content。管理台已经把这套流程封装在模型详情页;批量可用性测试会跳过视频模型。
图片首帧驱动将任务改为 fl2va,并通过 HKGAI 网关 multipart 的 input_reference=@portrait-768x1024.png 传入图片(不要手动设置 Content-Type):
curl -X POST "$HKGAI_BASE_URL/v1/videos" \
-H "Authorization: Bearer $HKGAI_API_KEY" \
-F "model=t2_minimax-h3_bf16_7k2p" \
-F "task=fl2va" \
-F "prompt=固定机位,保持人物脸部、服装和身体比例,人物自然点头后回到中性姿态。" \
-F "seconds=4" \
-F "size=768x1024" \
-F "input_reference=@portrait-768x1024.png"
如果返回未知字段或不支持 fl2va,说明当前网关尚未开启图片转视频适配;不要改名猜参数。MiniMax 原生接口的
first_frame_image 是另一套 JSON 参数,不能直接套到 HKGAI 网关。
接入原则
- 服务端调用,不在浏览器暴露 Key。
- 模型 ID 启动时从
/v1/models查询或由用户选择。 - 每个项目记录实际调用时间、模型 ID、状态码和耗时,但不记录 Key。