OA0
OA0 是一个探索 AI 的社区
现在注册
已注册用户请  登录
OA0  ›  代码  ›  PGLang — 面向程序化提示与复杂生成任务的语言框架

PGLang — 面向程序化提示与复杂生成任务的语言框架

 
  cup ·  2026-08-19 11:00:27 · 9 次点击  · 0 条评论  

⛓️🛠️ ChainForge

一个用于对 LLM 提示词进行实战测试的开源可视化环境。 Mentioned in Awesome Chainforge
Discord

banner

ChainForge 是一个数据流驱动的提示工程环境,用于分析和评估 LLM 的响应。它支持快速、即时地比较不同提示词、模型和响应质量,远超与单个 LLM 的临时聊天。借助 ChainForge,您可以:

  • 同时查询多个 LLM,快速有效地测试提示思路和变体。
  • 跨提示排列、模型和模型设置比较响应质量,为您的用例选择最佳提示词和模型。
  • 设置评估指标(评分函数),并立即在提示词、提示参数、模型和模型设置之间可视化结果。
  • 利用 AI 简化整个流程:通过内置的生成式 AI 功能创建合成表格和输入示例,或通过提示模型生成初始代码来增强编写评估的效率。

阅读文档了解更多。 ChainForge 附带了许多示例评估流程,让您了解其功能可能性,其中包括从 OpenAI evals 基准生成的 188 个示例流程。

ChainForge 基于 ReactFlowFlask 构建。

_如需获取用户精选资源和学习材料,请查看 🌟Awesome ChainForge 仓库!_

目录

安装

您可以在本地安装 ChainForge,或在网上尝试使用 https://chainforge.ai/play/。网页版 ChainForge 功能有限。在本地安装版本中,您可以从环境变量自动加载 API 密钥,编写 Python 代码评估 LLM 响应,或查询通过 Ollama 托管的本地运行模型。

要在您的机器上安装 Chainforge,请确保您拥有 Python 3.8 或更高版本,然后运行:

pip install chainforge

安装完成后,执行:

chainforge serve

在 Google Chrome、Firefox、Microsoft Edge 或 Brave 浏览器中打开 localhost:8000

您可以通过点击右上角的“设置”图标来设置 API 密钥。如果您不想每次打开 ChainForge 时都进行此操作,我们强烈建议将您的 OpenAI、Anthropic、Google 等 API 密钥和/或 Amazon AWS 凭据保存到本地环境中。更多详情,请参阅如何安装

使用 Docker 运行

您可以使用我们的 Dockerfile 通过 Docker Desktop 在本地运行 ChainForge

  • 构建 Dockerfile
    shell docker build -t chainforge .

  • 运行镜像:
    shell docker run -p 8000:8000 chainforge

现在,您可以在您选择的浏览器中打开 http://127.0.0.1:8000

支持的提供商

  • OpenAI
  • Anthropic
  • Google Gemini
  • DeepSeek
  • HuggingFace(推理和端点)
  • Together.ai
  • Ollama API(本地托管的模型)
  • Microsoft Azure OpenAI 端点
  • Aleph Alpha
  • Amazon Bedrock 托管的按需推理,包括 Anthropic Claude 3
  • ...以及通过自定义提供商脚本支持的任何其他提供商!

示例实验

我们准备了许多示例流程,让您了解 Chainforge 的功能可能性。
点击右上角的“Example Flows”按钮并选择一个。以下是一个基本的比较示例,展示了不同模型和提示参数 {game} 下响应长度的变化图:

basic-compare

您还可以使用表格数据节点进行真实值评估。例如,我们可以通过将每个 LLM 的响应与预期答案进行比较,来评估其解答数学问题的能力:

Screen Shot 2023-07-04 at 9 21 50 AM

只需导入数据集,将其连接到提示节点中的模板变量,然后按运行即可。

跨模型和提示比较响应

通过交互式响应检查器跨模型和提示变量进行比较,包括格式化表格和可导出的数据:

Screen Shot 2023-07-19 at 5 03 55 PM

ChainForge 的核心力量在于组合能力:ChainForge 对提示模板的输入取笛卡尔积,这意味着您可以生成所有输入值的组合。
这对于一次性发送数百个查询以更稳健地验证模型行为非常有效,远胜于单独提示。

这里有一个教程,可帮助您开始跨提示模板进行比较

与他人分享

ChainForge 的网页版(https://chainforge.ai/play/)包含一个“分享”按钮。

只需点击“分享”即可为您的流程生成唯一链接,并将其复制到剪贴板:

ezgif-2-a4d8048bba

例如,这是我制作的一个实验,试图让 LLM 泄露一个秘密密钥:https://chainforge.ai/play/?f=28puvwc788bog

注意
为防止滥用,您一次最多只能分享 10 个流程,并且每个流程压缩后必须小于 5MB。
如果您分享了超过 10 个流程,最早的链接将失效。因此,请务必将重要流程导出为 cforge 文件,并使用分享功能仅传递临时数据。

有关特定节点功能的更详细说明,请查看节点列表

功能特性

ChainForge 的一个关键目标是促进提示词和模型的比较评估。总体而言,您可以:

  • 跨提示词和提示参数进行比较:找到最大化评估目标指标(例如,最低代码错误率)的最佳提示词组合。或者,查看提示模板中参数的变化如何影响响应质量。
  • 跨模型进行比较:比较每个提示词在不同模型和不同模型设置下的响应,为您的用例找到最佳模型。

支持这些功能的具体特性包括:

  • 提示排列:设置一个提示模板,并为其输入变量提供多种变体。ChainForge 将使用输入提示词的所有可能排列来提示所有选定的 LLM,以便您更好地了解提示词质量。您还可以在任意深度链接提示模板(例如,用于比较模板)。
  • 模型设置:更改受支持模型的设置,并在不同设置之间进行比较。例如,您可以通过添加多个 ChatGPT 模型、更改各个设置并为每个模型起昵称来测量系统消息对 ChatGPT 的影响。ChainForge 将向每个模型版本发送查询。
  • 评估节点:在流程中探测 LLM 响应,并用经典方法测试其是否具有期望行为。在基本层面上,这基于 Python 脚本。我们计划在不久的将来为常见用例添加预置的评估器节点(例如,命名实体识别)。请注意,您也可以将 LLM 响应链接到提示模板中,以便在更广泛的评估方法之前经济地评估输出。
  • 可视化节点:在图表上可视化评估结果,例如分组箱线图(用于数值指标)和直方图(用于布尔指标)。目前我们仅支持数值和布尔指标。我们旨在未来为用户提供更多绘图控制和选项。
  • 对话轮次:超越提示和模板,像提示词一样设置后续聊天消息。您可以测试用户查询的措辞如何改变 LLM 的输出,或跨多个聊天模型(或具有不同设置的同一聊天模型!)比较后续响应的质量。

结合内置的生成式 AI 功能 🪄💫(如合成数据生成),提示工程得以加速:您有时可以在无需编写任何代码的情况下比较提示词和模型性能,使迭代和发现的过程加快了十倍。

我们还发现,一些用户只想使用 ChainForge 向 LLM 发送大量参数化查询(例如,将提示模板链接到提示模板),可能对它们进行评分,然后将结果输出到电子表格(Excel xlsx)。为此,请将一个“检查”节点连接到提示节点的输出,并点击“导出数据”。

有关更具体的细节,请参阅我们的文档


开发

ChainForge 由 Ian Arawjo 创建,他是哈佛大学 HCI 领域 Glassman 实验室的博士后研究员,并得到了哈佛 HCI 社区的支持。合作者包括博士生 Priyan VaithilingamChelse Swoopes,哈佛本科生 Sean Yang,以及教师 Elena GlassmanMartin Wattenberg。其他合作者包括加州大学伯克利分校博士生 Shreya Shankar 和蒙特利尔大学本科生 Cassandre Hamel。

这项工作部分由 NSF 基金 IIS-2107391、IIS-2040880 和 IIS-1955699 资助。本材料中表达的任何观点、发现、结论或建议均为作者个人观点,不一定反映国家科学基金会的意见。

我们持续发布此工具的新版本,希望它对其他人的项目有用。

灵感与链接

ChainForge 旨在通用,并非为特定 API 或 LLM 后端开发。我们的最终目标是将其集成到其他工具中,用于系统化评估和审计 LLM。我们希望帮助其他正在开发 LLM 提示分析流程或审计 LLM 输出的开发者。这个项目源于我们自身的使用场景,但也与两个相关的(闭源)研究项目有共同之处,这两个项目均由 Sherry Wu 领导:

  • “PromptChainer: Chaining Large Language Model Prompts through Visual Programming”(Wu 等人,CHI '22 LBW)视频
  • “AI Chains: Transparent and Controllable Human-AI Interaction by Chaining Large Language Model Prompts”(Wu 等人,CHI '22)

与这些项目不同,我们专注于支持跨提示词、提示参数和模型的评估。

如何合作?

我们欢迎开源合作者。如果您想报告错误或请求功能,请打开Issue。我们也鼓励用户实现请求的功能/修复错误并提交拉取请求。


引用我们

如果您出于研究目的使用 ChainForge,无论是基于源代码构建还是使用该工具调查 LLM 行为,我们恳请在相关出版物中引用我们的 CHI 研究论文。您可以使用的 BibTeX 如下:

@inproceedings{arawjo2024chainforge,
  title={ChainForge: A Visual Toolkit for Prompt Engineering and LLM Hypothesis Testing},
  author={Arawjo, Ian and Swoopes, Chelse and Vaithilingam, Priyan and Wattenberg, Martin and Glassman, Elena L},
  booktitle={Proceedings of the CHI Conference on Human Factors in Computing Systems},
  pages={1--18},
  year={2024}
}

许可证

ChainForge 在 MIT 许可证下发布。

9 次点击  ∙  0 人收藏  
登录后收藏  
0 条回复
关于 ·  帮助 ·  PING ·  隐私 ·  条款   
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
耗时 24 ms
Developed with Cursor