yuanflow-cli 0.1.39 → 0.1.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/README.md +149 -12
  2. package/generated/registry.json +985 -984
  3. package/package.json +1 -1
  4. package/scripts/generate-registry.js +1 -1
  5. package/skills/yuanflow-skill/IP/350/277/220/350/220/245/SKILL.md +1 -0
  6. package/skills/yuanflow-skill/README.md +18 -10
  7. package/skills/yuanflow-skill/SKILL.md +46 -11
  8. package/skills/yuanflow-skill/{OSS → YuanFlow}/346/226/207/344/273/266/344/270/255/350/275/254/345/267/245/345/205/267/SKILL.md +8 -8
  9. package/skills/yuanflow-skill/yuanflow-cli/SKILL.md +3 -3
  10. package/skills/yuanflow-skill//344/275/234/345/223/201/344/270/213/350/275/275/347/273/274/345/220/210/345/267/245/345/205/267/SKILL.md +1 -1
  11. package/skills/yuanflow-skill//344/275/234/345/223/201/350/257/204/350/256/272/351/207/207/351/233/206/SKILL.md +1 -1
  12. package/skills/yuanflow-skill//345/205/254/344/274/227/345/217/267/347/224/237/346/210/220/344/270/216/345/217/221/345/270/203/SKILL.md +1 -1
  13. package/skills/yuanflow-skill//345/210/233/344/275/234/346/200/273/347/233/221/SKILL.md +94 -0
  14. package/skills/yuanflow-skill//345/260/217/347/272/242/344/271/246/350/277/220/350/220/245/{344/270/216/345/217/221/345/270/203/SKILL.md → SKILL.md} +10 -5
  15. package/skills/yuanflow-skill//345/270/220/345/217/267/345/256/232/344/275/215/SKILL.md +1 -0
  16. package/skills/yuanflow-skill//346/226/207/346/241/210/345/210/233/344/275/234/SKILL.md +1 -0
  17. package/skills/yuanflow-skill//347/203/255/351/227/250/345/206/205/345/256/271/346/225/264/347/220/206/SKILL.md +83 -0
  18. package/skills/yuanflow-skill//347/233/264/346/222/255/346/212/225/346/265/201/347/255/226/347/225/245/SKILL.md +1 -0
  19. package/skills/yuanflow-skill//347/233/264/346/222/255/350/257/235/346/234/257/347/224/237/346/210/220/SKILL.md +1 -0
  20. package/skills/yuanflow-skill//350/207/252/345/252/222/344/275/223/347/237/245/350/257/206/345/272/223/SKILL.md +2 -0
  21. package/skills/yuanflow-skill//350/247/206/350/247/211/347/220/206/350/247/243/SKILL.md +174 -0
  22. package/skills/yuanflow-skill//350/247/206/351/242/221/346/212/225/346/265/201/347/255/226/347/225/245/SKILL.md +1 -0
  23. package/skills/yuanflow-skill//350/247/206/351/242/221/346/213/206/350/247/243/SKILL.md +245 -0
  24. package/skills/yuanflow-skill//350/247/206/351/242/221/346/231/272/350/203/275/345/211/252/350/276/221/SKILL.md +60 -12
  25. package/skills/yuanflow-skill//351/200/211/351/242/230/347/255/226/345/210/222/SKILL.md +1 -0
  26. package/skills/yuanflow-skill//351/237/263/350/247/206/351/242/221/345/234/250/347/272/277/350/275/254/346/226/207/345/255/227/SKILL.md +10 -10
  27. package/src/agent-protocol.js +11 -5
  28. package/src/ai-tools.js +835 -0
  29. package/src/cli.js +58 -2
  30. package/src/comment-collector.js +1 -1
  31. package/src/oss-tools.js +11 -11
  32. package/src/shortcuts.js +3 -3
  33. package/src/trending-tools.js +117 -0
  34. package/src/video-tools.js +182 -3
  35. package/src/work-tools.js +4 -4
  36. /package/skills/yuanflow-skill//345/260/217/347/272/242/344/271/246/350/277/220/350/220/245/{344/270/216/345/217/221/345/270/203/references → references}/commands.md" +0 -0
  37. /package/skills/yuanflow-skill//345/260/217/347/272/242/344/271/246/350/277/220/350/220/245/{344/270/216/345/217/221/345/270/203/references → references}/interaction-policy.md" +0 -0
  38. /package/skills/yuanflow-skill//345/260/217/347/272/242/344/271/246/350/277/220/350/220/245/{344/270/216/345/217/221/345/270/203/references → references}/publishing-policy.md" +0 -0
package/README.md CHANGED
@@ -36,6 +36,7 @@ yuanflow-cli works detail --platform douyin --target "https://v.douyin.com/xxx/"
36
36
  yuanflow-cli works download --platform douyin --target "https://v.douyin.com/xxx/" --region CN --format agent-json
37
37
  yuanflow-cli search content --platform xiaohongshu --keyword "美妆" --format agent-json
38
38
  yuanflow-cli search users --platform instagram --keyword "nasa" --format agent-json
39
+ yuanflow-cli trending video-hot-list --format agent-json
39
40
  yuanflow-cli douyin web get-sec-user-id --url "https://v.douyin.com/xxx/" --format agent-json
40
41
  yuanflow-cli douyin user-profile <sec_user_id> --format agent-json
41
42
  yuanflow-cli douyin user-posts <sec_user_id> --count 20 --cursor 0 --format agent-json
@@ -47,6 +48,14 @@ yuanflow-cli browser task-plan --platform xiaohongshu --task publish --account m
47
48
  yuanflow-cli video init --input "D:\素材" --primary-audio "D:\素材\口播.mp3" --broll "D:\素材\画面.mp4" --format agent-json
48
49
  yuanflow-cli video strategy --project "D:\素材\yuanflow-video-edit" --template-type talking_head --rules-file "D:\规则\logic.json,D:\规则\template.json,D:\规则\cli.json" --format agent-json
49
50
  yuanflow-cli video plan --project "D:\素材\yuanflow-video-edit" --timeline-plan "D:\素材\yuanflow-video-edit\timeline_plan.agent.json" --format agent-json
51
+ yuanflow-cli ai qwen3-vl-plus --prompt "描述这张图" --image-url "https://example.com/image.png" --format agent-json
52
+ yuanflow-cli ai qwen3-vl-plus --prompt "总结这个视频画面" --video-url "https://example.com/video.mp4" --format agent-json
53
+ yuanflow-cli ai qwen3-vl-plus --prompt "描述本地视频" --video-file "D:\素材\demo.mp4" --format agent-json
54
+ yuanflow-cli ai doubao-tts voices --format agent-json
55
+ yuanflow-cli ai doubao-tts voice --voice zh_female_xiaohe_uranus_bigtts --format agent-json
56
+ yuanflow-cli ai doubao-tts voice-download --voice zh_female_xiaohe_uranus_bigtts --output "D:\voice\preview.mp3" --format agent-json
57
+ yuanflow-cli ai doubao-tts --text "你好" --voice zh_female_xiaohe_uranus_bigtts --output "D:\voice\doubao.mp3" --format agent-json
58
+ yuanflow-cli ai fun-asr --audio-url "https://example.com/audio.wav" --response-format verbose_json --format agent-json
50
59
  yuanflow-cli list douyin
51
60
  ```
52
61
 
@@ -56,7 +65,110 @@ yuanflow-cli list douyin
56
65
  YUANCHUANG_API_TOKEN=<你的令牌>
57
66
  ```
58
67
 
59
- token 优先级:`--token` > `YUANCHUANG_API_TOKEN` > 本地 `config.token`。独立 CLI 用户可以使用环境变量或 `config set-token`;在 YuanFlow 主程序内使用时,token 由主程序认证系统注入,不需要手动配置。
68
+ token 优先级:`--token` > `YUANCHUANG_API_TOKEN` > 本地 `config.token`。独立 CLI 用户可以使用环境变量或 `config set-token`;在 YuanFlow 主程序内使用时,token 由主程序认证系统注入,不需要手动配置。本地图片/视频上传统一使用 YuanFlow 文件中转,不需要用户配置第三方平台 Key。
69
+
70
+ ### AI 模型命令
71
+
72
+ `ai` 命令用于调用 YuanFlow API 的 OpenAI 兼容端点。CLI 对外只使用 YuanFlow API 模型参数,不暴露底层供应商内部模型名。
73
+
74
+ ```bash
75
+ yuanflow-cli ai help
76
+ yuanflow-cli ai qwen3-vl-plus --prompt "描述这张图" --image-url "https://example.com/image.png" --format agent-json
77
+ yuanflow-cli ai qwen3-vl-plus --prompt "总结这个视频画面" --video-url "https://example.com/video.mp4" --format agent-json
78
+ yuanflow-cli ai qwen3-vl-plus --prompt "描述本地图片" --image-file "D:\素材\cover.png" --format agent-json
79
+ yuanflow-cli ai qwen3-vl-plus --prompt "描述本地视频" --video-file "D:\素材\demo.mp4" --format agent-json
80
+ yuanflow-cli ai qwen-voice-enrollment --file "D:\voice\sample.wav" --name demo --activate --format agent-json
81
+ yuanflow-cli ai qwen3-tts-vc-realtime-2026-01-15 --text "你好" --voice voice_xxx --output "D:\voice\qwen.mp3" --format agent-json
82
+ yuanflow-cli ai fun-asr --audio-url "https://example.com/audio.wav" --response-format verbose_json --format agent-json
83
+ yuanflow-cli ai doubao-tts voices --format agent-json
84
+ yuanflow-cli ai doubao-tts voice --voice zh_female_xiaohe_uranus_bigtts --format agent-json
85
+ yuanflow-cli ai doubao-tts voice-download --voice zh_female_xiaohe_uranus_bigtts --output "D:\voice\preview.mp3" --format agent-json
86
+ yuanflow-cli ai doubao-tts --text "你好" --voice zh_female_xiaohe_uranus_bigtts --output "D:\voice\doubao.mp3" --format agent-json
87
+ ```
88
+
89
+ #### qwen3-vl-plus 视觉理解
90
+
91
+ `qwen3-vl-plus` 走 YuanFlow API 对外模型名,不在 CLI 里暴露或改写成底层供应商内部名称。它支持 4 种媒体输入方式,一次快捷调用只选一种:
92
+
93
+ ```bash
94
+ # 图片 URL
95
+ yuanflow-cli ai qwen3-vl-plus --prompt "描述这张图" --image-url "https://example.com/image.png" --format agent-json
96
+
97
+ # 视频 URL
98
+ yuanflow-cli ai qwen3-vl-plus --prompt "总结这个视频画面" --video-url "https://example.com/video.mp4" --format agent-json
99
+
100
+ # 本地图片:先上传到 YuanFlow 文件中转,再把临时访问链接传给 YuanFlow API
101
+ yuanflow-cli ai qwen3-vl-plus --prompt "描述本地图片" --image-file "D:\素材\cover.png" --format agent-json
102
+
103
+ # 本地视频:先上传到 YuanFlow 文件中转,再把临时访问链接传给 YuanFlow API
104
+ yuanflow-cli ai qwen3-vl-plus --prompt "描述本地视频" --video-file "D:\素材\demo.mp4" --format agent-json
105
+ ```
106
+
107
+ 本地文件上传要求:
108
+
109
+ - 只需要 YuanFlow API token;CLI 会调用 `POST /atomic/oss/temp-upload` 完成 YuanFlow 文件中转。
110
+ - 文件上传请求体包含 `filename`、`content_base64`、`content_type` 和可选 `key`,返回里的 `signed_url` 会继续传给 `qwen3-vl-plus`。
111
+ - 该临时访问链接仅用于本次或短期处理,不建议长期保存;后续 skill 应在每次处理本地文件时重新上传。
112
+ - `--dry-run` 不读取、不上传本地文件,只预览最终请求结构。
113
+
114
+ 视频调用注意:
115
+
116
+ - 视频 URL 需要能被 YuanFlow API 访问,响应头建议包含 `Content-Length` 和 `Content-Type`。
117
+ - 视觉模型侧建议单个视频最大 2GB,时长 2 秒到 1 小时;本地上传会经过 YuanFlow 文件中转,超大视频建议优先使用可公网访问的视频 URL。
118
+ - 图片/视频不要同时传;`--image-url`、`--video-url`、`--image-file`、`--video-file` 四选一。
119
+
120
+ 命令清单:
121
+
122
+ - `ai qwen3-vl-plus`:`POST /v1/chat/completions`,文本/图片/视频理解,常用参数 `--prompt`、`--image-url`、`--video-url`、`--image-file`、`--video-file`。
123
+ - `ai qwen-voice-enrollment`:`POST /v1/audio/voices`,音色复刻,常用参数 `--file` 或 `--audio-url`、`--name`、`--activate`。
124
+ - `ai qwen3-tts-vc-realtime-2026-01-15`:`POST /v1/audio/speech`,复刻音色合成,`--voice` 使用 `voice_xxx` 或 `default`。
125
+ - `ai fun-asr`:`POST /v1/audio/transcriptions`,语音识别,`--audio-url` 适合远程音频,`--file` 适合本地音频直传。
126
+ - `ai doubao-tts`:`POST /v1/audio/speech`,豆包语音合成,`--voice` 直接传豆包官方音色 ID。
127
+ - `ai doubao-tts voices`:`GET /api/voice-assets/doubao/voices`,查询 doubao-tts 可用音色列表。
128
+ - `ai doubao-tts voice`:`GET /api/voice-assets/doubao/voices/{voice_type}`,查询单个音色详情。
129
+ - `ai doubao-tts voice-download`:`GET /api/voice-assets/doubao/voices/{voice_type}/download`,获取试听音频签名地址,传 `--output` 时下载试听音频到本地。
130
+
131
+ 所有 AI 命令都支持 `--dry-run` 预览请求映射,支持 `--format agent-json` 输出稳定 Agent JSON 外壳。音频合成命令真实调用时必须传 `--output` 保存音频文件。
132
+
133
+ #### doubao-tts 音色查询、试听和合成
134
+
135
+ `doubao-tts` 的音色资源接口和合成接口要配套使用。音色接口只负责查询和下载试听音频,不参与模型调用计费;真正合成时仍调用 `ai doubao-tts`,并把音色记录里的 `voice_type` 传给 `--voice`。
136
+
137
+ 完整流程:
138
+
139
+ ```bash
140
+ # 1. 查询全部可用音色
141
+ yuanflow-cli ai doubao-tts voices --format agent-json
142
+
143
+ # 2. 查看某个音色详情
144
+ yuanflow-cli ai doubao-tts voice --voice zh_female_xiaohe_uranus_bigtts --format agent-json
145
+
146
+ # 3. 下载该音色的试听音频
147
+ yuanflow-cli ai doubao-tts voice-download --voice zh_female_xiaohe_uranus_bigtts --output "D:\voice\preview-xiaohe.mp3" --format agent-json
148
+
149
+ # 4. 使用同一个 voice_type 进行真实语音合成
150
+ yuanflow-cli ai doubao-tts --text "你好,这是豆包语音合成测试。" --voice zh_female_xiaohe_uranus_bigtts --output "D:\voice\doubao-xiaohe.mp3" --format agent-json
151
+ ```
152
+
153
+ 音色列表返回的关键字段:
154
+
155
+ - `display_name`:给用户看的名称,例如“小何”。
156
+ - `name`:更完整的展示名称,例如“小何 2.0”。
157
+ - `voice_type`:真正合成时传给 `--voice` 的 YuanFlow 音色参数,建议外部系统用它做缓存 key。
158
+ - `category`:音色分类,例如通用场景。
159
+ - `language`:语言。
160
+ - `capabilities`:能力说明,例如情感变化、指令遵循、ASMR。
161
+ - `preview_audio_key`:试听音频在资源 bucket 里的对象 key。
162
+ - `preview_audio_content_type`:试听音频 MIME 类型,通常是 `audio/mpeg`。
163
+
164
+ `voice-download` 默认返回签名下载地址;传 `--output` 时 CLI 会继续下载试听音频到本地。签名 URL 会过期,不建议长期保存;外部应用应缓存 `voice_type` 和本地试听文件,过期后重新调用 `voice-download` 获取新 URL。
165
+
166
+ 外部系统推荐展示逻辑:
167
+
168
+ - 下拉框展示 `display_name` 或 `name`。
169
+ - 实际合成提交 `voice_type`。
170
+ - 用户点击试听时先查本地缓存;没有缓存再调用 `voice-download`。
171
+ - 合成接口固定使用 YuanFlow API 对外模型名 `doubao-tts`,不要把底层供应商内部资源名写到外部参数里。
60
172
 
61
173
  ### 作品评论采集
62
174
 
@@ -99,6 +211,26 @@ yuanflow-cli search users --platform instagram --keyword "nasa" --format agent-j
99
211
 
100
212
  Agent 不确定参数时先执行 `commands list`,再用 `schema works.douyin.detail` 或 `schema search.xiaohongshu.content` 查看参数。`--dry-run` 可预览请求映射,不发起真实接口请求,也不要求 token。
101
213
 
214
+ ### 热门内容整理
215
+
216
+ 热门内容整理统一走 `trending video-hot-list`,一次性查询抖音视频热榜五类榜单,并输出统一 JSON:
217
+
218
+ ```bash
219
+ yuanflow-cli trending video-hot-list --format agent-json
220
+ yuanflow-cli trending video-hot-list --page 1 --page-size 10 --date-window 2 --format agent-json
221
+ yuanflow-cli trending video-hot-list --tags-json "[{\"value\":\"顶级垂类标签id\",\"children\":[{\"value\":\"子级垂类标签id\"}]}]" --format agent-json
222
+ ```
223
+
224
+ 默认查询:
225
+
226
+ - `1001` 视频总榜
227
+ - `1002` 低粉爆款
228
+ - `1003` 高完播率
229
+ - `1004` 高涨粉率
230
+ - `1005` 高点赞率
231
+
232
+ Agent 使用该命令后,应结合用户个人创作信息、个人创作库历史记录、历史任务或对话记录,输出可执行的选题、内容结构和发布建议,而不是只罗列榜单。
233
+
102
234
  ### 帐号监控
103
235
 
104
236
  `帐号监控` 随 npm 包安装到 Skill bundle,用于把帐号搜索、主页资料、主页作品、历史快照和变化对比串成稳定流程。
@@ -122,7 +254,7 @@ yuanflow-cli works detail --platform douyin --target "<aweme_id 或 share_url>"
122
254
 
123
255
  ### 自媒体知识库
124
256
 
125
- 知识库能力独立于社媒 `/social` 接口,走 Yuan API 的 `/api/knowledge-base/docs` 和 `/atomic/agent-rules/navigate`:
257
+ 知识库能力独立于社媒 `/social` 接口,走 YuanFlow API 的 `/api/knowledge-base/docs` 和 `/atomic/agent-rules/navigate`:
126
258
 
127
259
  ```bash
128
260
  yuanflow-cli knowledge docs --format agent-json
@@ -133,26 +265,29 @@ yuanflow-cli knowledge rule-detail --rule-code some_rule_code --output-format sh
133
265
 
134
266
  Agent 应先查看 `knowledge docs`,再把用户需求整理成 `task_frame`,按接口返回的 `next_actions` 渐进查询。v2 接口不要求 `task_intent`;旧字段仅保留兼容。`packs`、`rules` 的 `data` 可能直接是数组,Agent 不应假设固定对象结构,应优先读取 `next_actions` 继续下钻。
135
267
 
268
+ 查询前必须先明确用户具体需求,再从知识库的一级能力开始,依次使用渐进式查询。不能跳级、跨越式查询。
269
+
136
270
  `knowledge entry`、`knowledge packs`、`knowledge evaluate` 会按规则库实际校验要求本地检查 `task_frame.domain` 和 `task_frame.content_goal`,CLI 调用时必须传 `--domain` 和 `--content-goal`,或通过 `--task-frame-file` 提供同名字段。`rules` 和 `rule-detail` 用于按已选包/规则继续下钻,仍必须分别传 `--pack-code` 或 `--rule-code`。
137
271
 
138
272
  ### 视频智能剪辑
139
273
 
140
- 视频剪辑链路先查自媒体知识库中的 `video_editing_strategy`,再进入 `video` 命令执行。第一版人工测试流程是:查询规则包、保存策略快照、扫描素材、导入文案、1 秒 1 帧抽帧、Agent 生成 `timeline_plan.agent.json`、CLI 校验并渲染。
274
+ 视频剪辑链路先查自媒体知识库中的 `video_editing_strategy`,再进入 `video` 命令执行。第一版人工测试流程是:查询规则包、保存策略快照、扫描素材、通过“音视频在线转文字”取得 ASR/时间戳结果、导入音频对齐、1 秒 1 帧抽帧、导入视觉理解结果、Agent 生成 `timeline_plan.agent.json`、CLI 校验并渲染。
141
275
 
142
276
  ```bash
143
277
  yuanflow-cli knowledge rules --pack-code video_edit_logic_layer_pack --domain 视频剪辑 --content-goal "口播视频剪辑,需要主音频匹配 B-roll 并生成 EDL" --output-format video_edit_plan --format agent-json --output "D:\规则\logic.json"
144
278
  yuanflow-cli video init --input "D:\素材" --primary-audio "D:\素材\口播.mp3" --broll "D:\素材\画面.mp4" --format agent-json
145
279
  yuanflow-cli video strategy --project "D:\素材\yuanflow-video-edit" --template-type talking_head --rules-file "D:\规则\logic.json,D:\规则\talking_head.json,D:\规则\cli.json" --format agent-json
146
280
  yuanflow-cli video inspect --project "D:\素材\yuanflow-video-edit" --format agent-json
147
- yuanflow-cli video transcribe --project "D:\素材\yuanflow-video-edit" --script-file "D:\素材\口播文案.txt" --format agent-json
281
+ yuanflow-cli video align --project "D:\素材\yuanflow-video-edit" --asr-file "D:\素材\asr.json" --format agent-json
148
282
  yuanflow-cli video timeline --project "D:\素材\yuanflow-video-edit" --fps 1 --format agent-json
283
+ yuanflow-cli video visual-review --project "D:\素材\yuanflow-video-edit" --review-file "D:\素材\yuanflow-video-edit\visual_review.agent.json" --format agent-json
149
284
  yuanflow-cli video plan --project "D:\素材\yuanflow-video-edit" --timeline-plan "D:\素材\yuanflow-video-edit\timeline_plan.agent.json" --format agent-json
150
285
  yuanflow-cli video render-preview --project "D:\素材\yuanflow-video-edit" --format agent-json
151
286
  yuanflow-cli video evaluate --project "D:\素材\yuanflow-video-edit" --file "D:\素材\yuanflow-video-edit\preview.mp4" --format agent-json
152
287
  yuanflow-cli video render-final --project "D:\素材\yuanflow-video-edit" --format agent-json
153
288
  ```
154
289
 
155
- `--template-type` 当前支持 `talking_head` 和 `short_video_sales`。知识库查询由 `knowledge` 命令负责,`video` 命令只导入规则结果并保存 `strategy_snapshot.json`,不直接远程查规则库。
290
+ `video align` 只导入已有 ASR 或 forced alignment 结果,不直接调用在线 ASR;在线 ASR 由“音视频在线转文字”Skill 执行。`video visual-review` 只导入 Agent/人工对抽帧图片的视觉理解,不替 Agent 做语义判断。`--template-type` 当前支持 `talking_head` 和 `short_video_sales`。知识库查询由 `knowledge` 命令负责,`video` 命令只导入规则结果并保存 `strategy_snapshot.json`,不直接远程查规则库。
156
291
 
157
292
  ### 业务创作类 Skill
158
293
 
@@ -163,12 +298,14 @@ yuanflow-cli video render-final --project "D:\素材\yuanflow-video-edit" --form
163
298
  - `帐号定位`:账号人设、内容边界、目标受众、价值主张和栏目方向。
164
299
  - `选题策划`:选题池、系列选题、热点选题和选题优先级排序。
165
300
  - `文案创作`:小红书、公众号、朋友圈、短视频口播、直播预告、海报和转化型文案。
301
+ - `热门内容整理`:一次性查询视频总榜、低粉爆款、高完播率、高涨粉率、高点赞率,并结合用户创作方向输出建议。
302
+ - `创作总监`:负责内容方向把控、创新判断、复查验收和跨技能创作统筹。
166
303
  - `视频投流策略`:短视频、图文视频或内容素材的投流目标、人群、预算、素材分层和测试节奏。
167
304
  - `直播投流策略`:直播预热、直播引流、直播成交和直播间投放的人群、预算、素材、节奏和复盘策略。
168
305
 
169
- ### OSS 原子能力
306
+ ### YuanFlow 文件中转
170
307
 
171
- OSS 能力独立封装为 `oss` 命令,用于临时上传、签名链接和对象复制:
308
+ YuanFlow 文件中转能力独立封装为兼容命令 `oss`,用于临时上传、签名链接和对象复制:
172
309
 
173
310
  ```bash
174
311
  yuanflow-cli oss temp-upload --file ./cover.png --content-type image/png --format agent-json
@@ -207,16 +344,16 @@ yuanflow-cli browser dry-run --platform xiaohongshu --task publish --account mai
207
344
 
208
345
  ### 音视频在线转文字
209
346
 
210
- `音视频在线转文字` 随 npm 包安装到 Skill bundle,用于通过 YuanFlow 在线 ASR 接口把音频或视频转成干净文本。视频输入需要先用 ffmpeg 分离音频,再上传 OSS。
347
+ `音视频在线转文字` 随 npm 包安装到 Skill bundle,用于通过 YuanFlow 在线 ASR 接口把音频或视频转成干净文本。视频输入需要先用 ffmpeg 分离音频,再上传到 YuanFlow 文件中转。
211
348
 
212
349
  固定链路:
213
350
 
214
351
  1. 判断用户提交的是音频还是视频。
215
352
  2. 视频先抽取为音频,音频上传前改成英文文件名。
216
- 3. 使用 `yuanflow-cli oss temp-upload` 上传音频。
217
- 4. ASR 请求必须优先使用 OSS 返回的 `data.signed_url` 作为 `metadata.audio_url`,不要优先使用裸域名 `data.url`。
353
+ 3. 使用 `yuanflow-cli oss temp-upload` 上传音频到 YuanFlow 文件中转。
354
+ 4. ASR 请求必须优先使用文件中转返回的 `data.signed_url` 作为 `metadata.audio_url`,不要优先使用裸域名 `data.url`。
218
355
  5. 调用 `POST https://open.yuanchuangai.com/v1/audio/transcriptions`,模型 `doubao-asr`,`response_format=json`。
219
- 6. 默认只返回响应里的 `text` 干净文本;用户要求时间戳时再检查响应结构,不编造时间戳。
356
+ 6. 默认只返回响应里的 `text` 干净文本;视频剪辑任务需要音频对齐时,要优先保留 ASR 响应中的 `segments` / `words` 时间戳结构,后续交给 `yuanflow-cli video align --asr-file` 导入。接口没有返回时间戳时,不编造时间戳,改用 forced alignment 或人工按文案切分时间。
220
357
 
221
358
  请求体示例:
222
359
 
@@ -225,7 +362,7 @@ yuanflow-cli browser dry-run --platform xiaohongshu --task publish --account mai
225
362
  "model": "doubao-asr",
226
363
  "response_format": "json",
227
364
  "metadata": {
228
- "audio_url": "<OSS signed_url>"
365
+ "audio_url": "<YuanFlow 文件中转 signed_url>"
229
366
  }
230
367
  }
231
368
  ```