ChainForge
可视化节点编辑器,批量对比多模型提示词效果
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
可视化节点编辑器,批量对比多模型提示词效果
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
你写了三版提示词,让 GPT-4、Claude 和 Gemini 各跑一遍,结果输出格式全都不一样,根本没法横向比较。这种"凭感觉调 prompt"的状态,正是 ChainForge 诞生的背景。
ChainForge 是一个开源的可视化编程环境,专门用来对 LLM(大语言模型)的提示词进行批量对比、评测和数据分析。与其逐个模型手动对话,不如在画布上用节点连出完整的数据流:输入 → 提示词变体 → 模型 → 评估函数 → 图表,一次看尽所有组合的效果。
提示词工程(Prompt Engineering)长期依赖"直觉 + 反复试错"——每次改动都要手动复制粘贴、重跑对话、对比结果,当涉及多个模型、多组提示词时,工作量指数级膨胀。OpenAI 在 2023 年开源了 evals 评测框架,但它是纯代码的,门槛较高,普通产品经理和研究者难以快速上手。
Ian Arawjo(哈佛博士候选人,研究方向为编程语言与 AI 交互)意识到这个痛点,于 2023 年初开发了 ChainForge,目标是把 LLM 对比评测从代码层面拉到可视化界面。该项目现已在 GitHub 获得近 3000 颗星,被 Awesome ChainForge 社区持续维护,并接入了 188 个来自 OpenAI evals 的示例流程。
ChainForge 的前端基于 ReactFlow(一个为流程图/数据流图设计的 React 组件库),后端基于 Flask(Python 微框架),整体架构为浏览器端 React + 本地 Flask 服务器的分离模式。
| 节点类型 | 作用 |
|---|---|
| LLM Provider | 选择要调用的模型(OpenAI GPT-4/3.5、Claude、Gemini、Azure OpenAI、本地 Ollama 等) |
| Prompt Node | 编辑提示词模板,支持变量占位 |
| Chat History | 提供对话上下文,模拟多轮对话 |
| Table | 结构化输入数据,每行对应一次 LLM 调用 |
| Eval Node | 定义评估指标(评分函数),如精确匹配、BLEU、GPT-as-Judge 等 |
| Visualize | 将结果以图表形式展示(折线图、柱状图、散点图) |
| Python | 内嵌 Python 代码节点,可对 LLM 输出做后处理 |
这是 ChainForge 最核心的能力。在一块画布上同时连接多个 LLM Provider 节点,配合 Table 节点输入多组测试数据,ChainForge 会并发发起请求,收集所有模型的回复,然后通过 Eval 节点批量打分。你不再需要手动切换 API 平台来回对比,实验结果一目了然。
ChainForge 支持灵活的评估方式:精确匹配(exact match)适合有标准答案的测试集;包含检查(contains)验证回复是否包含特定关键词;GPT-as-Judge 用另一个 LLM 来评判当前输出的质量;Python 自定义函数在 Python 节点中写任意评分逻辑。评估完成后,数据直接流入 Visualize 节点,生成折线图或柱状图,支持按模型、提示词变体、参数配置等多个维度拆分数据,快速定位最优组合。
本地部署版本支持从环境变量(OPENAI_API_KEY、ANTHROPIC_API_KEY 等)自动加载 API Key,也支持通过 Ollama 查询本地运行的模型(Llama、Mistral 等)。Web 版(chainforge.ai/play)功能受限,无法使用环境变量和 Ollama。
ChainForge 的 LLM 调用层采用插件注册机制(ProviderRegistry):每个 Provider 实现一个 CustomProviderProtocol 协议,在前端 UI 的 Settings 面板中填写 provider name 和模型参数,后端动态加载对应函数。支持的 Provider 包括:OpenAI GPT 系列(含 Azure OpenAI)、Anthropic Claude 系列、Google Gemini、Mistral AI、Ollama(本地模型)、Replicate、Cohere、Bedrock(AWS)、WebLLM(浏览器端 WebAssembly 推理)。
ChainForge 的工作区文件格式为 .cforge(本质上是一个 JSON 文件),存储在用户本地(由 platformdirs 决定路径)。仓库自带大量示例,包括 python-coding-eval.cforge(Python 编程能力评测,10MB+,含 188 个评测案例)、animal-images.cforge(多模态图像理解对比)、red-team-stereotypes.cforge(偏见检测与红队测试)等。
ChainForge 的本地安装极为简单:pip install chainforge && chainforge serve,然后打开 http://localhost:8000 即可进入可视化编辑器。项目提供了多阶段 Dockerfile(python:3.12-slim 构建),可以打包为 Docker 镜像一键部署。硬件需求方面,ChainForge 本身是纯 API 调用工具,不需要 GPU,最低 2GB RAM 即可流畅运行,磁盘占用约 1GB。
ChainForge 的出现折射出一个更大的趋势:随着 LLM 能力边界不断扩展,提示词工程正在从艺术走向工程。该项目近期更新活跃(最新版本 0.3.6.5),GitHub Issues 有 68 个开放问题,Discord 社区约 200 名成员,表明项目处于健康维护状态。对于需要系统化优化 LLM 应用效果的研究者和开发者,ChainForge 值得作为首选工具链之一。