自动化与脚本
用 CLI 编排多模型 AI…
当需要把多个 AI 模型和服务串成自动化流程(批量生成、顺序流水线、并行任务、条件分支、定时执行)时使用。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 59/100 ×0.15
适用场景
用 CLI 编排多模型 AI 自动化工作特定
解决思路
- 安装并登录 CLI:先执行 `npx skills add belt-sh/cli` 安装技能,再运行 `belt login` 完成认证。
- 批量处理:把多个 prompt 放进 bash 数组,用 for 循环逐个调用 `belt app run <app-id> --input '{...}'`,每次调用后 `sleep 2` 做限流,并把结果重定向到独立文件。
- 顺序流水线:用 shell 变量逐步传递结果,例如先 `belt app run tavily/search-assistant` 做调研,再把结果喂给 `belt app run openrouter/claude-sonnet-45` 写文章,再调用 `belt app run falai/flux-dev` 生成配图,最后用 `openrouter/claude-haiku-45` 生成社交文案。
- 并行处理:在每条 `belt app run` 命令末尾加 `&` 放入后台,用 `PID1=$!` 记录进程号,最后 `wait $PID1 $PID2 $PID3` 等待全部完成。
- 条件分支:先用模型做分类(如让 `openrouter/claude-haiku-45` 只返回 positive/negative/neutral),再用 `case "$ANALYSIS" in` 匹配结果,走不同的生成分支。
- 重试与降级:写一个 `generate_with_retry` 函数,用 while 循环最多尝试 3 次,失败后 `sleep $((attempt * 2))` 做指数退避,全部失败则降级到备用模型(如 `google/imagen-3`)。
- 定时任务:用 `crontab -e` 配置 cron,例如 `0 9 * * * /path/to/daily_content.sh >> /var/log/ai-automation.log 2>&1` 每天 9 点执行,`0 8 * * 1` 每周一执行,`0 */6 * * *` 每 6 小时执行。
- 定时脚本内先 `DATE=$(date +%Y-%m-%d)` 和 `mkdir -p "$OUTPUT_DIR"` 建立按日期分目录的输出,再分别调用图像和文本模型生成内容并写入该目录。
- 日志封装:定义 `log()` 函数用 `echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" | tee -a "$LOG_FILE"` 记录,用 `START_TIME=$(date +%s)` 和 `END_TIME` 计算耗时,并检查 `$?` 判断成功或失败。
- 错误告警:写 `run_with_alert` 包装函数,捕获命令输出与退出码,非 0 时用 `curl -X POST` 向 webhook 发送包含 error 和 command 的 JSON 告警。
- Python SDK 自动化:用 `subprocess.run(["belt", "app", "run", app_id, "--input", json.dumps(input_data)], capture_output=True, text=True)` 封装 `run_infsh` 函数,成功时 `json.loads(result.stdout)`,并用 `pathlib.Path` 按日期建目录保存结果。
- 内容日历模板:用两个并行数组 TOPICS 和 DAYS,配合 `for i in "${!DAYS[@]}"` 遍历,为每天生成对应主题的图片和文案。
- 数据处理流水线:遍历 `$INPUT_DIR/*.txt`,用 `basename` 取文件名,把 `$(cat $file)` 内容交给模型分析并输出 JSON 到 `$OUTPUT_DIR`。
- 遵循最佳实践:调用之间加延迟限流、始终检查返回码、记录所有操作日志、设计成可安全重跑(幂等)、失败告警、保存中间结果、设置合理超时。
适用边界 · 注意事项
- 未安装 inference.sh CLI(belt)或没有可用账号时无法执行。
- 需要极低延迟或强事务一致性的场景,shell 脚本编排难以保证。
- 涉及敏感数据且不能发送到第三方模型服务时不宜使用。