轻现AI 视频接口
所有操作通过 scripts/ 目录下的 shell 脚本完成。每个脚本都会加载 scripts/_common.sh,该文件将 CHILLTION_BASE_URL 默认设为 https://chilltion.com,若缺少 CHILLTION_API_KEY 则以退出码 2 终止。
必需环境变量
CHILLTION_BASE_URL # 默认 https://chilltion.com;开发时可传入调试地址
CHILLTION_API_KEY # ct_... 格式的密钥,在 Web 应用的 /keys 页面创建
CHILLTION_INSECURE=1 # 可选,内网环境跳过 TLS 验证(需在脚本中添加 -k 参数)
如果用户尚未提供密钥,请在调用前询问。获取密钥的方法:登录 https://chilltion.com,进入 设置 → API 密钥,创建新密钥(以 ct_ 开头)。
会话详情响应字段
GET /api/sessions/{id} 返回:
| 字段 | 类型 | 说明 |
|---|---|---|
video_url | string | 最终合成视频的 OSS 地址;未生成时为空 |
chat_url | string | 前端对话页面地址,如 https://chilltion.com/chat/{session_id} |
脚本列表
| 脚本 | 参数 | 端点 |
|---|---|---|
scripts/create_session.sh | [mode] [message] | POST /api/sessions — mode 默认为 autonomous;传入 message 后后端会立即开始处理。 |
scripts/stream.sh | <session_id> [from_seq] | GET /api/chat/{id}/stream(SSE;推送 phase_change / progress / preview_ready / video_ready / done / error)。 |
scripts/send_message.sh | <session_id> <content> | POST /api/chat/{id}/message — 交互模式下的后续对话。 |
scripts/list_sessions.sh | [offset] [limit] | GET /api/sessions |
scripts/session_detail.sh | <session_id> | GET /api/sessions/{id} — 返回 video_url(OSS)和 chat_url(前端页面)。 |
scripts/balance.sh | – | GET /api/credits/balance |
scripts/session_cost.sh | <session_id> | GET /api/credits/session-cost/{id} |
scripts/credit_log.sh | [offset] [limit] [start] [end] | GET /api/credits/log(日期格式 YYYY-MM-DD) |
所有脚本输出原始 JSON 响应。可使用 jq(或其他 JSON 解析器)提取字段。
构建提示词
自主模式端到端运行,无需额外输入 — 将所有信息写入一条消息:
- 主题、目标受众、时长(30秒/60秒/90秒)、风格、章节数(2–6)、语言(默认 zh-CN)。
交互模式适用于需要迭代调整的场景:先创建空会话(scripts/create_session.sh interactive),再通过 scripts/send_message.sh 逐轮发送消息。
自主模式端到端流程
# 1) 一次调用创建会话 + 发送首条消息
sid=$(scripts/create_session.sh autonomous "做个 60 秒介绍光合作用的科普视频,3 章节,中文" | jq -r .session_id)
# 2) 流式监听直到 video_ready,然后退出
scripts/stream.sh "$sid" 0 | while IFS= read -r line; do
case "$line" in
data:*)
json="${line#data: }"
type=$(printf '%s' "$json" | jq -r '.type // empty')
case "$type" in
progress) printf '%s\n' "$json" | jq -r '"[progress] \(.progress) \(.message // "")"' ;;
phase_change) printf '%s\n' "$json" | jq -r '"[phase] \(.from) -> \(.to)"' ;;
video_ready) url=$(printf '%s' "$json" | jq -r '.url // .data.url'); echo "VIDEO: $url"; break ;;
error) printf '%s\n' "$json" | jq -r '"[error] \(.message)"' >&2; exit 1 ;;
esac
;;
esac
done
progress 事件的 progress 字段通常为 0–100,但偶尔可能为 0–1;展示前请做归一化处理。自主模式中首个 video_ready 即为交付物;后续的(修订阶段)是修改后的版本。
错误码
| 状态码 | 含义 |
|---|---|
| 401 | 密钥无效或已过期 — 请用户核实 ct_ 密钥 |
| 402 | 积分不足 — 返回 detail.balance 和 detail.required |
| 404 | 会话不存在 — 需重新创建 |
| 409 | 会话正忙 — 请先连接 SSE 观察进度 |
SSE 事件参考
每行格式为 data: {json},包含顶层 seq 和 type。主要事件类型:
phase_change—from、to(requirements→creative_planning→designing→producing→revision→complete)progress—message、progress(0–100,偶尔 0–1)preview_ready/preview_append— 章节缩略图video_ready— 最终视频地址,位于url(或data.url)done— 流结束error—message