HKGAI Modelhub / 接入

其他项目接入

Node、Python 和 curl 的调用片段。

其他项目接入

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,并通过 HKG​AI 网关 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 参数,不能直接套到 HKG​AI 网关。

接入原则

  • 服务端调用,不在浏览器暴露 Key。
  • 模型 ID 启动时从 /v1/models 查询或由用户选择。
  • 每个项目记录实际调用时间、模型 ID、状态码和耗时,但不记录 Key。