ChatDev 2.0 如何用 Tree 模式 dynamic 配置完成长文本分段并行摘要?
ChatDev 2.0 如何用 Tree 模式 dynamic 配置完成长文本分段并行摘要【免费下载链接】ChatDevChatDev 2.0: Dev All through LLM-powered Multi-Agent Collaboration项目地址: https://gitcode.com/GitHub_Trending/ch/ChatDev当你有一段很长的文本小说章节、长报告、整篇文章希望让 LLM 分块并行摘要、再把各块摘要合并成一份完整总结时ChatDev 2.0 的 Dynamic 执行模式提供了现成的Tree 模式它在边级别把消息拆分为多个并行单元执行目标节点再按group_size分组递归归约最终输出单个Message结果。本文基于仓库自带的yaml_instance/demo_dynamic_tree.yaml示例走一遍“配置 Tree 模式 dynamic 边 → 运行工作流 → 核对结果”的完整路径。准备工作环境与 API 凭据ChatDev 2.0 本地运行的环境要求见 README-zh.md 快速开始一节操作系统macOS / Linux / WSL / WindowsPython 3.12Node.js 18包管理器uv# 后端依赖uv 管理 Python uv sync # 前端依赖Vite Vue 3 cd frontend npm install启动前后端有两种方式推荐make dev一键启动然后访问 http://localhost:5173以下手动命令同样可用# 后端项目根目录 uv run python server_main.py --port 6400 --reload # 前端另开终端 cd frontend VITE_API_BASE_URLhttp://localhost:6400 npm run dev示例工作流中 Agent 节点引用了${BASE_URL}和${API_KEY}两个变量见下文 YAML。ChatDev 解析${VAR}占位符的优先级是YAML 顶层vars显式定义 系统/Shell 环境变量 项目根目录.env文件工作流编排指南 第 2 节。如果三个来源都找不到变量配置解析阶段会抛出ConfigError并指明出错路径。因此运行前需在项目根目录准备.env或在环境中导出BASE_URL、API_KEY示例使用 OpenAI 兼容接口 gpt-4o。Tree 模式做了什么Dynamic 执行模式指南 对两种模式的定义模式描述输出适用场景Map扇出执行将消息拆分为多个单元并行处理List[Message]打平结果批量处理、并行查询Tree扇出归约并行处理后按组递归合并单个Message长文本摘要、层级聚合Tree 模式的执行分三层第一层把所有拆分单元并行发给目标节点第二层按group_size每组归约的元素数量分组递归合并直到结果数量归约为 1。归约层同样会触发目标节点执行即“总结的总结”。Tree 模式相关配置项字段默认值说明group_size3每组归约的元素数量最小为 2max_parallel10每层最大并发执行数dynamic 配置定义在边上dynamic_execution.md工作流编排指南 第 7 节也提到节点配置可带同级dynamic字段本文跟随示例文件使用边级配置。另外注意一致性规则当一个节点有多条入边都配置了dynamic时所有动态边的type、split、config必须完全一致否则执行时直接报错。编写长文本分段摘要工作流仓库自带的 demo_dynamic_tree.yaml 就是一个“长文本分段并行摘要”的完整可运行示例结构非常短节点Aliteral类型content中内置了一段长文本示例是一篇小说role: user。Literal 节点被触发时输出固定文本内容、忽略所有输入因此它在这里充当“长文本文档源”节点Bagent类型name: gpt-4o、provider: openai、role: Please summarize the content of the novel.base_url/api_key分别引用${BASE_URL}/${API_KEY}边A - B上配置 Tree 模式 dynamicstart入口为A。把它改写成处理自己文本的完整骨架如下literal 节点的content请替换为你自己的长文本示例中原文约数千字此处省略graph: id: test description: Dynamic tree split of long text into chunks for parallel summarization. log_level: DEBUG is_majority_voting: false nodes: - id: A type: literal config: content: |- 在这里粘贴你的长文本示例文件中是一篇英文小说全文。 文本越长regex 拆分出的并行摘要单元越多。 role: user - id: B type: agent config: name: gpt-4o provider: openai role: Please summarize the content of the novel. base_url: ${BASE_URL} # 由环境变量或 .env 提供 api_key: ${API_KEY} # 由环境变量或 .env 提供 edges: - from: A to: B trigger: true condition: true carry_data: true keep_message: false clear_context: false clear_kept_context: false dynamic: type: tree split: type: regex config: pattern: (?s).{1,2000}(?:\\s|$) # 每 2000 字符切分 config: group_size: 3 max_parallel: 10 start: - A end: [] version: 0.0.0 vars: {}关键点是split的regex策略。动态执行指南给出的典型切分模式按固定长度pattern: (?s).{1,N}示例用N2000即每 2000 字符一段按段落拆分pattern: \\n\\n按行拆分pattern: .(?s).{1,2000}(?:\s|$)会把输入按每 2000 字符拆分为多段前端教程 tutorial-zh.md 的 Dynamic 章节对同一模式的说明。示例文件中pattern写在split.config子块下——这是当前示例使用的写法因为解析器要求regex类型的 split 必须带config字段。运行工作流文档给出的运行入口有三条Web UI选择 YAML → 填写运行参数 → 启动、HTTPPOST /api/workflow/execute、以及 CLI。这里用 CLI 最直接工作流编排指南 第 9 节python run.py --path yaml_instance/demo_dynamic_tree.yaml --name test_run运行后终端会提示Please enter the task prompt:并等待输入可提前用TASK_PROMPT环境变量提供。因为入口A是 literal 节点、忽略输入这里输入任意内容即可触发流程真正驱动摘要的是content里的长文本。核对结果运行结束后按 前端教程 的 Workspace 目录说明可以在WareHouse/session/下核对产物node_outputs.yaml节点输出记录运行结束后生成workflow_summary.yaml工作流执行摘要execution_logs.json节点执行过程日志context.json/ Web UI 的上下文快照也可用于检查节点输入输出所有节点输出已统一为List[Message]结构。判断 Tree 模式生效的依据来自文档本身的行为定义第一层目标节点B按拆分出的文本段数量并行执行多次每段一次摘要归约层每group_size个结果再次交给B合并直到只剩 1 个结果最终输出是单个Message对比 Map 模式输出List[Message]。示例中log_level: DEBUG可在日志中观察各层拆分与归约事件。调参与限制Dynamic 执行模式指南 第 8 节给出的性能建议控制并发设置合理的max_parallel避免触发 API 限流优化拆分粒度过细的拆分增加开销过粗则无法充分并行——pattern中的2000就是拆分粒度可随文本长度调整Tree 组大小group_size2-4通常是较好的选择注意解析器强制group_size最小为 2配置小于 2 会报ConfigError监控成本Dynamic 模式会显著增加 API 调用次数拆分单元 每层归约都会调用模型。其他边界多条动态入边配置不一致会在执行时报错见前文一致性规则${BASE_URL}/${API_KEY}未在任何来源中定义时解析阶段即抛出ConfigError不会进入执行阶段。参考文件docs/user_guide/zh/dynamic_execution.mdMap/Tree 模式、Split 策略与配置项完整说明yaml_instance/demo_dynamic_tree.yaml本文使用的长文本 Tree 摘要示例工作流yaml_instance/demo_dynamic.yamlMap 模式对照示例docs/user_guide/zh/workflow_authoring.mdYAML 顶层结构、${VAR}解析优先级与运行入口frontend/public/tutorial-zh.mdDynamic 执行模式界面说明与WareHouse/目录结构【免费下载链接】ChatDevChatDev 2.0: Dev All through LLM-powered Multi-Agent Collaboration项目地址: https://gitcode.com/GitHub_Trending/ch/ChatDev创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考