当前位置: 首页 > article >正文

像搭乐高一样组合AI想法:手把手教你用GoT框架解决复杂任务(附Python示例)

像搭乐高一样组合AI想法手把手教你用GoT框架解决复杂任务附Python示例当面对需要整合多份合同条款、合并技术文档或处理其他复杂文本任务时传统AI方法往往显得力不从心。就像用乐高积木搭建复杂模型需要灵活组合不同模块一样Graph of ThoughtsGoT框架让我们能够将大语言模型LLM的推理过程分解、重组最终构建出更强大的解决方案。1. 为什么需要超越思维链的解决方案在自然语言处理领域我们早已习惯使用思维链Chain-of-Thought, CoT技术来引导模型进行分步推理。但当任务复杂度上升到需要合并多个独立推理路径时线性思维链的局限性就暴露无遗。想象你要合并三份来自不同部门的合同文档法务部的版本包含严谨的法律条款技术部门提供了详细的产品规范市场部则侧重商业合作框架传统CoT方法会尝试按顺序处理这些文档但无法有效识别和整合交叉引用、消除冗余条款或解决条款冲突。这就是GoT框架大显身手的地方。GoT的核心优势对比方法推理结构多路径整合回溯能力适用场景IO提示单步❌❌简单QACoT线性链❌❌分步推理ToT树状有限✅多方案探索GoT图结构✅✅复杂系统整合2. GoT框架的核心构建模块GoT将每个思考步骤视为图中的节点依赖关系作为边。这种抽象让我们可以自由地组合、改进和优化思维路径。2.1 基础组件解析class ThoughtNode: def __init__(self, content, scoreNone): self.content content # 思考内容文本/代码/数据 self.score score # 质量评分 self.dependencies [] # 依赖的父节点 class GoTGraph: def __init__(self): self.nodes [] self.operations [] # 记录所有转换操作2.2 关键思维转换操作GoT框架支持三种核心操作生成操作- 基于现有节点创建新思路def generate_new_thought(parent_thought, prompt_template): 基于父节点生成新思路 full_prompt f{prompt_template}\n输入:{parent_thought.content} response llm.generate(full_prompt) new_node ThoughtNode(response) new_node.dependencies.append(parent_thought) return new_node聚合操作- 合并多个节点的精华def aggregate_thoughts(node_list, merge_prompt): 合并多个相关思路 inputs \n.join([f文档{i1}:\n{n.content} for i,n in enumerate(node_list)]) response llm.generate(f{merge_prompt}\n{inputs}) new_node ThoughtNode(response) new_node.dependencies.extend(node_list) return new_node精炼操作- 迭代改进现有节点def refine_thought(node, critique_prompt): 对现有思路进行迭代优化 response llm.generate(f{critique_prompt}\n当前版本:\n{node.content}) refined_node ThoughtNode(response) refined_node.dependencies.append(node) return refined_node3. 实战合同文档合并系统让我们构建一个实际可用的文档合并解决方案。假设我们需要合并三份技术合作协议每份文档约2000字。3.1 系统架构设计文档预处理 → 关键条款提取 → 冲突检测 → 条款合并 → 最终审核 ↑____________↓ ↑___________↓ 循环优化 交叉验证3.2 分步实现代码# 初始化GoT图 document_graph GoTGraph() # 步骤1文档预处理和分块 def preprocess_document(text, chunk_size500): chunks [text[i:ichunk_size] for i in range(0, len(text), chunk_size)] return [ThoughtNode(chunk) for chunk in chunks] doc1_nodes preprocess_document(legal_doc_text) doc2_nodes preprocess_document(tech_doc_text) doc3_nodes preprocess_document(market_doc_text) # 步骤2提取各文档关键条款 extract_prompt 请从以下合同段落中提取关键条款... 输出格式- [条款类型]: 具体内容 key_terms [] for node in doc1_nodes doc2_nodes doc3_nodes: extracted generate_new_thought(node, extract_prompt) key_terms.append(extracted) # 步骤3识别冲突条款 conflict_check_prompt 比较以下条款识别是否存在冲突... 输出格式冲突类型 | 条款1 | 条款2 | 建议解决方案 conflict_results [] for i in range(len(key_terms)): for j in range(i1, len(key_terms)): merged aggregate_thoughts([key_terms[i], key_terms[j]], conflict_check_prompt) conflict_results.append(merged) # 步骤4生成合并版本 merge_prompt 综合以下条款生成最优版本... 考虑因素法律效力、技术可行性、商业合理性 final_draft aggregate_thoughts(key_terms, merge_prompt) # 步骤5最终优化 optimization_prompt 请优化以下合同草案... 关注点一致性、清晰度、完整性 final_version refine_thought(final_draft, optimization_prompt)3.3 性能优化技巧并行处理不同文档的分块处理可以并行执行缓存机制存储中间结果避免重复计算动态评分为每个节点添加质量评分指导后续处理重点def evaluate_quality(node, criteria): 评估节点内容质量 prompt f按以下标准评分(1-10): {criteria} 内容:{node.content} response llm.generate(prompt) node.score extract_score(response)4. 进阶应用场景GoT的图结构灵活性使其适用于各类复杂任务4.1 技术文档自动化多来源API文档整合版本变更追踪与差异分析生成统一的技术规范4.2 商业智能分析合并多个市场调研报告竞争对手分析矩阵构建跨数据源趋势预测4.3 代码审查与优化# 示例代码优化工作流 original_code ThoughtNode(code_text) # 生成优化建议 optimization_ideas [generate_new_thought(original_code, f优化建议{i}) for i in range(3)] # 合并最佳方案 best_practices aggregate_thoughts(optimization_ideas, 合并代码优化建议) # 生成最终版本 optimized_code refine_thought(original_code, f应用这些优化:{best_practices.content})提示实际应用中建议为每个专业领域创建特定的提示模板库大幅提升结果质量和工作效率。在真实项目中我发现最有效的策略是将大任务分解为3-5个中等粒度的子任务。过度分解会导致协调成本增加而分解不足则无法发挥GoT的优势。另一个实用技巧是为不同类型的边添加权重反映依赖关系的强度这在处理矛盾信息时特别有用。

相关文章:

像搭乐高一样组合AI想法:手把手教你用GoT框架解决复杂任务(附Python示例)

像搭乐高一样组合AI想法:手把手教你用GoT框架解决复杂任务(附Python示例) 当面对需要整合多份合同条款、合并技术文档或处理其他复杂文本任务时,传统AI方法往往显得力不从心。就像用乐高积木搭建复杂模型需要灵活组合不同模块一样…...

跨平台扫描技能:构建统一硬件接口的架构设计与实战

1. 项目概述:一个跨平台扫描工具的“技能”实现最近在折腾一些自动化流程,发现一个挺有意思的需求:如何让一个扫描动作,无论是文档、二维码还是简单的图像识别,都能在不同的设备和操作系统上无缝运行?这听起…...

别再死记硬背了!用Python 3分钟搞定MIDI音符、频率与音名的相互转换

别再死记硬背了!用Python 3分钟搞定MIDI音符、频率与音名的相互转换 音乐制作和音频编程中,MIDI音符编号、频率和音名之间的转换是基础但繁琐的工作。传统方法依赖查表或手动计算,既耗时又容易出错。本文将用Python构建一套高效转换工具&…...

5大核心功能彻底解决魔兽争霸3在现代电脑上的兼容性问题

5大核心功能彻底解决魔兽争霸3在现代电脑上的兼容性问题 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 你是否还在为魔兽争霸3这款经典游戏在现代电脑…...

NREL风速数据API参数详解:从wkt坐标到interval间隔,教你精准定制所需气象字段

NREL风速数据API参数详解:从wkt坐标到interval间隔,教你精准定制所需气象字段 在风能资源评估和气象模型研究中,获取高精度、定制化的风速数据至关重要。NREL(美国国家可再生能源实验室)提供的风速数据API因其权威性和…...

Merkle 树的认证路径

本文章翻译自David Ireland首次发表于Authentication Path for a Merkle Tree的原创文章, 强烈推荐有一定英文基础的小伙伴阅读原文。 本页探讨如何计算和验证 Merkle 树的认证路径(authentication path)。 二叉树中的路径 这是一棵有 8 个节点的树&a…...

计算 FORS 签名

本文章翻译自David Ireland首次发表于Computing the FORS signature的原创文章, 强烈推荐有一定英文基础的小伙伴阅读原文。 让我们回顾一下 FORS 签名的相关知识。 FORS 是一种*有限次签名 (Few Time Signature, FTS)*方案,其中我们有大量可能的私钥,…...

手把手教你玩转Codesys定时器:TON、TOF、TP、RTC功能块实战配置

手把手教你玩转Codesys定时器:TON、TOF、TP、RTC功能块实战配置 在工业自动化领域,精确的时间控制往往是实现复杂逻辑的关键。想象一下,一条自动化生产线需要精确控制每个工位的停留时间,或者一个包装设备需要准确计算产品间隔——…...

从GEE下载TFRecord分片文件到本地训练?这份TensorFlow数据管道构建指南请收好

从GEE到本地训练:TensorFlow高效处理TFRecord分片文件全指南 当你在Google Earth Engine(GEE)上完成遥感影像分析后,将数据导出为TFRecord格式是进行本地模型训练的关键第一步。但面对那些以-00000到-0000N命名的分片文件&#xf…...

如何免费解锁百度网盘SVIP高速下载:macOS用户终极指南

如何免费解锁百度网盘SVIP高速下载:macOS用户终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘Mac版的龟速下载而烦恼…...

慧知开源虚拟电厂(VPP)核心平台PRD需求文档(大白话与专业结合版)- 慧知开源充电桩平台

虚拟电厂(VPP)核心平台PRD需求文档 1. 文档概述一句话大白话:虚拟电厂(VPP)就是“没有烟囱、没有发电机的电厂”,靠一套软件平台,把一堆分散的光伏、储能、充电桩、工厂可调节负荷“拼成一个大电…...

贵阳本地GEO首选贵阳伍子柒网络,懂贵阳市场,适配本地企业推广需求

在贵阳做GEO推广,为什么越来越多本地企业选择贵阳伍子柒网络?答案很简单:懂贵阳市场、适配本地需求,靠谱、省心、有效果!当前贵阳GEO市场鱼龙混杂,很多服务商要么是异地团队,不懂贵阳本地市场特…...

AHK2_Lib:让AutoHotkey V2从脚本工具蜕变为专业开发平台

AHK2_Lib:让AutoHotkey V2从脚本工具蜕变为专业开发平台 【免费下载链接】ahk2_lib 项目地址: https://gitcode.com/gh_mirrors/ah/ahk2_lib 在Windows自动化领域,AutoHotkey一直以其简洁高效的脚本能力著称。然而,当您需要构建复杂的…...

【C语言逻辑题】谋杀案凶手是谁?——经典矛盾推理题详解

一、题目背景日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个。以下为4个嫌疑犯的供词:A说:不是我。B说:是C。C说:是D。D说:C在胡说。已知3个人说了真话,1个人说的是假话…...

AI代码安全执行:E2B沙箱技术原理与实战指南

1. 项目概述:当AI需要“动手”时,我们如何安全地执行它生成的代码? 在AI应用开发,尤其是大语言模型(LLM)驱动的智能体(Agent)领域,一个核心且棘手的问题是:如…...

ESP32-C3硬件I2C不够用?手把手教你用SlowSoftWire库扩展软件I2C(以VL53L0X为例)

ESP32-C3硬件I2C资源扩展实战:用SlowSoftWire实现多总线并行控制 当你在ESP32-C3上同时连接多个I2C设备时,很快就会发现这个芯片的硬件限制——它仅提供一组硬件I2C接口。这就像在高峰期的单车道公路上试图同时通行多辆卡车,必然导致交通堵塞…...

助睿实验作业1-订单利润分流数据加工

一、实验背景1.1 实验目的本次实验旨在掌握零代码数据集成平台的核心操作与 ETL 基础方法,具体包括:• 熟悉数据转换任务的创建、组件添加与任务执行的完整流程;• 掌握数据读取、多表关联、字段筛选、条件分流与文件输出等常用功能的配置&am…...

Vim集成LLM智能代理:打造沉浸式AI编程助手

1. 项目概述:当Vim遇上LLM,一个开发者的效率革命 如果你和我一样,是一个常年泡在终端和Vim里的开发者,那么你一定经历过这样的时刻:面对一段复杂的正则表达式,或者一个不熟悉的API调用,你不得不…...

AVRCP 1.6的隐藏技能:手把手教你实现蓝牙音乐封面传输(基于BIP/OBEX)

AVRCP 1.6的隐藏技能:手把手教你实现蓝牙音乐封面传输(基于BIP/OBEX) 在蓝牙音频设备的使用体验中,音乐封面传输一直是个被低估的功能。想象一下,当你用高端蓝牙耳机听歌时,耳机上的小屏幕不仅能显示歌曲信…...

【LangChain】使用 LangChain 快速实现 RAG

写在前面公司内部的技术文档、产品手册、运营报告——这些资料积累多了,想让人工智能基于它们回答问题,直接丢给 ChatGPT 不现实。文档量一大,就超出了模型的上下文窗口。RAG(检索增强生成)技术解决的就是这个问题。RA…...

2026年Python+AI工具链环境搭建指南:从零到可用的完整配置

AI辅助创作 | 专栏《2026 AI编程效率革命》第02篇 前言 很多朋友问我:"你用AI写代码效率那么高,是不是有什么秘诀?"说实话,真正的秘诀不在模型本身,而在于环境配置。一个标准化的AI开发环境能让你少踩80%的…...

SAKE基准:音频语言模型听觉属性评估与编辑新方法

1. 项目背景与核心价值音频语言模型正在成为AI领域的新前沿,但如何系统评估和编辑这类模型的听觉属性知识,一直是行业痛点。SAKE基准的提出,相当于给这个领域装上了"调试器"——它首次构建了覆盖音高、音色、响度、节奏等核心听觉维…...

告别黑窗口:用MobaXterm+VSCode搞定服务器上Matplotlib/OpenCV的可视化调试

告别黑窗口:用MobaXtermVSCode搞定服务器上Matplotlib/OpenCV的可视化调试 远程服务器上的机器学习开发常常面临一个尴尬局面:代码能跑通,但图像输出却成了"黑箱操作"。想象一下,你正在调试一个复杂的计算机视觉模型&a…...

撕开AI落地的遮羞布:大模型到底跟什么在死磕?(附架构级深度剖析)

撕开AI落地的遮羞布:大模型到底跟什么在死磕?标题:撕开AI落地的遮羞布:大模型到底跟什么在死磕?(附架构级深度剖析)标签: 架构设计、大模型应用、AI工程化、组织变革、技术商业化 咱…...

基于CPU+GPU架构的雷达信号处理快速实现CUDA【附代码】

✨ 本团队擅长数据搜集与处理、建模仿真、程序设计、仿真代码、EI、SCI写作与指导,毕业论文、期刊论文经验交流。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流,查看文章底部二维码(1)基于CUDA流与共享内存的脉压并行化:雷达…...

为什么.NET 8.0.3 SDK悄悄禁用了主构造函数的隐式字段捕获?微软内部邮件首次公开解读

更多请点击: https://intelliparadigm.com 第一章:C# 13 主构造函数增强实战教程 C# 13 引入了主构造函数(Primary Constructor)的显著增强,允许在类和结构体声明中直接定义参数并自动参与成员初始化,大幅…...

Perseus:面向移动游戏的零偏移原生脚本补丁架构设计

Perseus:面向移动游戏的零偏移原生脚本补丁架构设计 【免费下载链接】Perseus Azur Lane scripts patcher. 项目地址: https://gitcode.com/gh_mirrors/pers/Perseus 在移动游戏生态中,脚本补丁技术的核心挑战在于如何平衡兼容性、稳定性与维护成…...

10B参数多模态模型STEP3-VL的技术突破与应用实践

1. 项目背景与核心突破在计算机视觉与自然语言处理交叉领域,多模态模型通常需要庞大的参数量才能实现高质量的跨模态理解。我们团队开发的STEP3-VL-10B模型,首次在10B参数规模下实现了接近百亿参数模型的性能表现。这个突破性进展来自三个关键技术革新&a…...

从L1d缓存未命中率飙升190%说起:C++27原子变量布局对齐调优——Intel Ice Lake vs AMD Zen4实测对比(附objdump反汇编验证)

更多请点击: https://intelliparadigm.com 第一章:C27原子操作性能调优的底层动因与问题定位 现代多核处理器的缓存一致性协议(如 MESI、MOESI)与内存序模型的复杂交互,正成为 C27 原子操作性能瓶颈的核心根源。随着硬…...

别再搞混了!QT Creator新建QML项目时,选qmake和CMake对资源管理的影响

QML项目构建系统选择指南:qmake与CMake在资源管理中的关键差异 当你在Qt Creator中新建一个QML项目时,第一个重要决策就是选择构建系统——这个看似简单的选择会深刻影响整个项目的资源管理方式。本文将深入剖析qmake和CMake两种构建系统在QML项目中的表…...