提示词即函数
用 @ell.simple 装饰器把一次语言模型调用写成一个函数,系统提示词写在 docstring 里,用户提示词由 return 的 f-string 生成,调用函数即发起请求。
拖动滑块完成拼图,通过后发送验证码
独立第三方 AI 评测平台 · 只用实测数据
ell 是一个轻量级的提示工程库,把提示词(prompt)当成函数来对待,核心思路是「提示词是程序,不是字符串」。它由曾在 OpenAI 和创业生态中构建、使用语言模型的人设计,通过装饰器把一次语言模型调用封装成可复用的「语言模型程序」(LMP)。它提供自动版本管理与序列化、把每次调用保存到本地存储、以及本地开源的可视化与监控工具 Ell Studio。使用方式就是普通的 Python 代码,不需要特殊 IDE 或编辑器。短板也很明显:官网明确说明 API 参考文档「coming soon」,需要直接阅读源码;所有能力都围绕 Python,非 Python 技术栈无法直接用。
ell 是一个 Python 库,用来做语言模型编程(LMP)。它的定位是把提示词从「一段字符串」提升为「一段程序」:通过装饰器把一个函数标记为语言模型程序,函数体内写的是系统提示词与用户提示词,返回值既可能是一段字符串,也可能是一组发送给多模态模型的消息。调用语言模型的全部代码被封装进一个函数里,使用者只需要关心这个函数需要哪些数据。
按照官网的说明,ell 的设计来自在 OpenAI 以及创业生态中多年构建和使用语言模型的经验,围绕几条原则展开:提示词是程序而非字符串;提示工程本身是一个优化过程;需要监控、版本管理和可视化工具;test-time compute 很重要;每一次模型调用都有价值;复杂度按需引入。基于这些原则,ell 提供自动版本管理与序列化(通过静态和动态分析),并可用 gpt-4o-mini 自动生成提交信息写入本地存储,机制类似机器学习训练循环里的 checkpoint,但完全靠普通 Python 代码完成。
对不同使用者来说:普通使用者只需要给语言模型程序传参并拿到结果;写提示词的人可以用 Ell Studio 观察版本变化、发现回归;团队可以把每次调用存档,用来生成调用数据集、按版本对比输出,服务于微调、蒸馏、k-shot prompting、基于人类反馈的强化学习等场景。
用 @ell.simple 装饰器把一次语言模型调用写成一个函数,系统提示词写在 docstring 里,用户提示词由 return 的 f-string 生成,调用函数即发起请求。
把使用语言模型的某一种特定方式封装成独立的子程序,称为 language model program(LMP),可返回字符串或多模态消息列表,对调用者只暴露所需数据。
通过静态和动态分析对提示词及调用做版本管理与序列化,并用 gpt-4o-mini 自动生成提交信息写入本地存储,机制类似训练循环中的 checkpoint,无需特殊 IDE。
除保存每个 LMP 的源码外,还可选地把每一次语言模型调用保存到本地,用于生成调用数据集、按版本对比 LMP 输出,支撑微调、蒸馏、k-shot 等场景。
本地、开源的提示词版本控制、监控与可视化工具,通过 ell-studio --storage ./logdir 启动,用来长期观察提示优化过程并在回归出问题前发现它。
把问题做函数式拆解后,容易实现 test-time compute 类技巧,例如先用 n=10、temperature=1.0 生成十份草稿,再用 temperature=0.1 的编辑函数从中挑出最佳草稿。
提供 @ell.tool 装饰器,把普通 Python 函数标记为可被语言模型调用的工具,在需要复杂度时引入复杂度。
提供 pydantic 的 Config 类,可配置模型注册表、verbose 日志、包装日志宽度、Store 持久化实例、autocommit、lazy_versioning、默认 API 参数与默认客户端等。
日常用 Python 写提示、需要反复迭代版本,想用普通代码而不是专用编辑器管理提示词的人,可以直接把现有函数改写成 LMP。
需要把每次模型调用留档、生成调用数据集、按版本比较输出,再用于微调或蒸馏的团队,ell 的本地存储与调用留存贴合这类流程。
提示词改到第几十版后记不清哪版好用、线上效果突然变差,可以用 Ell Studio 做版本控制与可视化,把优化过程变成可回溯的记录。
给出的全部示例与 API 参考都是 Python,库本身也是 Python 库;使用 TypeScript、Java 等语言的团队无法直接接入。
官网明确说明 API 参考文档「coming soon」,需要直接阅读源码;不想读源码、期望完整文档的人上手成本会偏高。
ell 是一个轻量级的提示工程库,把提示词当成函数来写。区别在于:拼字符串时提示词散落在代码各处,而 ell 用装饰器把系统提示词和用户提示词一起封装成一个函数,这个函数被称为语言模型程序(LMP)。调用函数即发起模型调用,返回字符串或消息列表。由于提示词成了函数的返回值,版本管理、存储和复用都可以围绕函数来做。
官网示例中出现的模型包括 gpt-4o-mini 和 gpt-4o,自动生成提交信息的默认模型也是 gpt-4o-mini,Config 类里有模型注册表(registry)用来把模型名映射到各自的配置。文档没有列出完整的支持清单,其他模型是否可用需要以官方页面为准。
存在本地。通过 ell.init(store='./logdir') 指定本地存储目录,ell 会保存每个 LMP 的源码以及该次调用的源码,并可选地保存每一次语言模型调用。官网把这套机制类比为机器学习训练循环里的 checkpoint,区别是它不需要任何特殊 IDE 或编辑器,全部靠普通 Python 代码完成,因此记录可留在本机。
Ell Studio 是一个本地、开源的工具,用于提示词的版本控制、监控和可视化。给出的启动命令是 ell-studio --storage ./logdir,指向你存放记录的目录。它的用途是把提示优化过程变成可以持续观察的对象,从而在回归造成问题之前发现它。有了这类工具,提示工程可以从「暗黑艺术」变成一门科学。
的说法是「需要复杂度时有复杂度,不需要时保持简单」。因为 LMP 就是函数,可以把问题做函数式拆解,再用多个 LMP 组合。举的例子是:先用 n=10、temperature=1.0 生成十份故事草稿,再用 temperature=0.1 的编辑函数从十份里挑出最好的一份,实现 best of 10 采样。这类 test-time compute 技巧在函数拆解下更容易写得可读。
| 工具 | 编辑评分 | 价格 | 核心功能 | 平台 |
|---|---|---|---|---|
| ell本工具 | 4.5 | 未标价 | 提示词即函数;语言模型程序封装;自动版本与序列化;调用全量留存 | Python 库 / 本地 CLI |
| deepin-IDE | — | 未标价 | 轻量级多语言跨平台集成开发环境 | — |
| Microsoft Translator Pro | — | 付费产品/服务,使用前需要付款 | 企业级语言翻译解决方案,打破工作场所的语言障碍 | iOS |
| SmolVLM2 | — | 未标价 | SmolVLM2 是一个专注于视频内容分析和生成的轻量化语言模型 | — |
| Open Source LLM Tools | — | 未标价 | 开源大型语言模型工具集合 | Web |
| Lingua MT | — | 未标价 | 基于 OpenAI 语言模型的翻译助手 | — |