玄宇探盘视频环境·一键安装
这个技能解决一件事:换一台电脑,把「读房源信息 → 写分镜台词 → 配音 → 出片」这条链路缺的东西补齐,并明确告诉用户哪些根本不用装。
整条链路真正需要装的只有三类:贝壳 CLI + 贝壳技能包、几个 pip 包、一个中文字体,其余全是 WorkBuddy 自带。不要把一个 5 分钟的体检做成半小时的折腾。
0. 先分清「要装」和「不用装」
| 能力 | 归属 | 处理方式 |
|---|---|---|
| 贝壳 CLI(房源事实) | 外部 CLI | 要装,靠官方 install.sh |
| 贝壳业务技能包(beike-buy 等) | 外部技能包 | 要装,官方 skills/install.sh 一条命令 |
| edge-tts(配音) | pip 包 | 要装 |
| imageio-ffmpeg(抽帧/剪辑/烧字幕) | pip 包 | 要装(自带 ffmpeg 二进制,不用另装 ffmpeg) |
| numpy / scipy / pillow | pip 包 | 要装(测口型偏移、图像处理) |
| 中文字幕字体 | 系统字体 | 要检查(Microsoft YaHei / Noto Sans SC) |
| 资料库(读写节点、传文件、发页面) | WorkBuddy 内置技能 | 不用装,用户登录即可 |
| AudioTranscribe(语音转写) | 内置工具 | 不用装 |
| ImageGen / VideoGen(出图、出片) | 内置工具 | 不用装,消耗积分 |
| fangyuan-jieshao-wenan 等写作类技能 | 资料库技能商店 | 按需装,不是硬依赖 |
细节与本次项目实证见 references/CHECKLIST.md。
1. 标准动作:跑体检
先看现状,再决定装什么。不要跳过体检直接 pip install。
python3 "${CODEBUDDY_SKILL_DIR}/scripts/setup.py" --check
--check 只读不写:检查 Python 版本、6 个 pip 包、ffmpeg 二进制、贝壳 CLI 与版本、API Key 是否存在(不读内容)、贝壳技能包(扫 ~/.workbuddy/skills/beike-* 数个数列版本)、中文字体。输出一张人读表格 + 一行 SETUP_REPORT {...} JSON。
2. 补齐缺失
python3 "${CODEBUDDY_SKILL_DIR}/scripts/setup.py"
幂等:已装且版本达标的包直接跳过,只补缺的。行为约定:
- pip 包缺失 →
pip install;默认源失败自动切清华镜像重试一次。 - 贝壳 CLI 缺失 → 执行官方安装脚本(
cli/releases/install.sh | bash,Git Bash / macOS / Linux 均可);已有则跑beike update --check看是否落后,落后就beike update。 - 贝壳业务技能包缺失 → 执行官方
skills/install.sh,即用户常直接敲的那条:
bash curl -fsSL https://raw.githubusercontent.com/LianjiaTech/beike-ai-platform/master/skills/install.sh | bash
脚本接管这条命令时做了 3 处加固(详见references/CHECKLIST.md第四节):
1. 显式--skills-dir ~/.workbuddy/skills—— 不传时它靠WORKBUDDY_HOME探测,未设的环境会落到~/.agents/skills,WorkBuddy 读不到;
2. Windows 上给 mktemp 结果转成cygpath -m—— 否则临时目录是/tmp/xxx这类 POSIX 路径,脚本内 Windows 版 python 打不开 manifest,报"无法解析 manifest";
3. 直连失败自动走 GitHub 镜像 —— 下载 manifest 后把https://github.com/前缀替换为ghfast.top/gh-proxy.com/ghproxy.net(写回时用ensure_ascii=True,官方脚本按系统默认编码读,UTF-8 中文会解析失败),再用BEIKE_MANIFEST_URL=file:///...喂回脚本重试。 - API Key 缺失 → 不代填、不索要明文,只输出
NEED_KEY,提示用户自己执行beike auth <KEY>(或把 Key 放进~/.beike/BEIKE_MCP_API_KEY)。 - 中文字体缺失 → 只报不装(装字体要管理员权限),给出替代方案:字幕改用系统已有字体名。
参数:
| 参数 | 作用 |
|---|---|
--check |
只体检,零改动 |
--dry-run |
打印计划,不执行 |
--skip-skills |
只补环境,不碰贝壳技能包 |
--force-skills |
已装也重跑技能包安装(补装缺失 / 升级) |
3. 装完自证
beike doctor
四项全绿才算真的可用(版本 / Key / API 连通 / 网络)。体检报告里 beike: ok 但 Key 为空时,房源那一步一定失败——这时必须先解决 Key,别继续往下做分镜。
4. 汇报口径
给用户的结果只讲人话,按这个顺序:
- 已经齐了:哪些本来就装好了(带版本号)。
- 这次装了什么:逐个列包名与版本;技能包只报"装了 N 个 + 走的是直连还是哪个镜像",不铺每个技能的清单。
- 需要你动手的:只会有一种——补贝壳 API Key,给命令不给理由长篇。
- 不用装的:一句话带过 WorkBuddy 自带的四项能力,避免用户跑去商店乱装。
不要把 pip 的完整日志、镜像地址、内部路径铺给用户;失败时给"哪一步、什么原因、怎么补"三句话。
5. 边界
- 不安装、不推荐任何来源不明的 CLI、技能包或 MCP 连接器;贝壳 CLI 与业务技能包只认官方
LianjiaTech/beike-ai-platform仓库地址。镜像只是同一 URL 的代理前缀,不做内容改写(manifest 里仅替换下载前缀)。 - 不动用户已有的 Key 文件,不打印、不回填、不写入日志。
- 已装技能包不强行覆盖升级:只在"一个都没有"时才安装;已有则只报个数与版本,把是否升级交给用户。
- 无网络时不反复重试,直接给出离线失败结论与所需清单。
- 不替代
beike-buy等业务技能:本技能只管"装得上、跑得动",不管"查什么房、怎么写稿"。