guanghulab/video-ai-system/tests/test-new-models.sh
冰朔 fe58fa5624
Some checks failed
自动更新代码和重启 / update-and-restart (push) Has been cancelled
CI检查 + 自动部署 / check (push) Has been cancelled
CI检查 + 自动部署 / deploy (push) Has been cancelled
D144: 三模型分工策略 + Seedance 1.5/mini API适配
- 新增 D144-MODEL-STRATEGY.hdlp: 调研结论+三模型分工决策文档
- 更新 VOICE-LIPSYNC-ROUTER.hdlp: 增加mini路由+声音复刻独立产品线说明
- 更新 video-api-adapter.js: 扩展支持doubao-seedance-1-5-pro-251215和
  doubao-seedance-2-0-mini-260615,增加generate_audio参数
- 新增 tests/test-new-models.sh: API连通性冒烟测试脚本

验证结果:
- Seedance 1.5: 直接可用,JIMENG_API_KEY同一端点,curl测试43秒出片
- Seedance mini: 直接可用,模型ID已注册入SUPPORTED_MODELS
- 声音复刻 2.0: 独立产品线,需豆包语音控制台单独开通
2026-06-24 15:19:22 +08:00

119 lines
4.4 KiB
Bash

#!/bin/bash
# 光湖视频AI系统 · 新模型连通性测试
# D144 · 铸渊 ICE-GL-ZY001 · 2026-06-24
# 测试: Seedance 1.5 + 声音复刻 2.0
set -e
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
SYSTEM_DIR="$(dirname "$SCRIPT_DIR")"
# 加载环境变量
if [ -f "$SYSTEM_DIR/.env" ]; then
set -a
source "$SYSTEM_DIR/.env"
set +a
fi
API_KEY="${JIMENG_API_KEY:-}"
BASE_URL="${JIMENG_BASE_URL:-https://ark.cn-beijing.volces.com/api/v3}"
if [ -z "$API_KEY" ]; then
echo "❌ JIMENG_API_KEY 未设置"
exit 1
fi
echo "══════════════════════════════════════════════"
echo " 光湖视频AI · 新模型连通性测试"
echo " D144 · 铸渊 ICE-GL-ZY001"
echo "══════════════════════════════════════════════"
echo ""
# ─────────────────────────────────────
# 测试 1: 尝试通过 /api/v3 旧端点调用 1.5
# ─────────────────────────────────────
echo "【测试1】Seedance 1.5 通过 /api/v3/contents/generations/tasks"
echo "模型: doubao-seedance-1-5-pro-251215"
echo ""
RESP1=$(curl -s -w "\n%{http_code}" -X POST "${BASE_URL}/contents/generations/tasks" \
-H "Authorization: Bearer ${API_KEY}" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedance-1-5-pro-251215",
"content": [{"type": "text", "text": "一朵花在阳光下缓缓绽放,微风吹过花瓣"}],
"duration": 5,
"resolution": "480p"
}' 2>&1)
HTTP_CODE1=$(echo "$RESP1" | tail -1)
BODY1=$(echo "$RESP1" | sed '$d')
echo "HTTP状态: $HTTP_CODE1"
echo "响应: $(echo "$BODY1" | python3 -c "import sys,json; d=json.load(sys.stdin); print(json.dumps(d,indent=2,ensure_ascii=False))" 2>/dev/null || echo "$BODY1")"
echo ""
# ─────────────────────────────────────
# 测试 2: 通过 /v1/video/generations 端点
# ─────────────────────────────────────
echo "【测试2】Seedance 1.5 通过 /v1/video/generations"
echo "模型: doubao-seedance-1-5-pro-251215"
echo ""
# 用 https://ark.cn-beijing.volces.com 作为基础
RESP2=$(curl -s -w "\n%{http_code}" -X POST "https://ark.cn-beijing.volces.com/v1/video/generations" \
-H "Authorization: Bearer ${API_KEY}" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedance-1-5-pro-251215",
"prompt": "一朵花在阳光下缓缓绽放,微风吹过花瓣",
"resolution": "480p",
"ratio": "16:9",
"duration": 5,
"fps": 24,
"watermark": false,
"draft": true,
"generate_audio": true
}' 2>&1)
HTTP_CODE2=$(echo "$RESP2" | tail -1)
BODY2=$(echo "$RESP2" | sed '$d')
echo "HTTP状态: $HTTP_CODE2"
echo "响应: $(echo "$BODY2" | python3 -c "import sys,json; d=json.load(sys.stdin); print(json.dumps(d,indent=2,ensure_ascii=False))" 2>/dev/null || echo "$BODY2")"
echo ""
# ─────────────────────────────────────
# 测试 3: 列出可用模型
# ─────────────────────────────────────
echo "【测试3】查询账号下可用模型列表"
echo ""
RESP3=$(curl -s -w "\n%{http_code}" -X GET "${BASE_URL}/models" \
-H "Authorization: Bearer ${API_KEY}" \
-H "Content-Type: application/json" 2>&1)
HTTP_CODE3=$(echo "$RESP3" | tail -1)
BODY3=$(echo "$RESP3" | sed '$d')
if [ "$HTTP_CODE3" = "200" ]; then
echo "✅ 模型列表查询成功"
echo "$BODY3" | python3 -c "
import sys, json
d = json.load(sys.stdin)
models = d.get('data', [])
print(f'账号共 {len(models)} 个模型:')
for m in models:
mid = m.get('id', '?')
mname = m.get('model', '?')
print(f' - {mid} (model={mname})')
" 2>/dev/null || echo "$BODY3"
else
echo "HTTP状态: $HTTP_CODE3 (可能此端点不支持)"
fi
echo ""
echo "══════════════════════════════════════════════"
echo " 测试完成"
echo "══════════════════════════════════════════════"