项目预览
项目数据
项目介绍
Star 增长趋势
本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整
数据来源:GitHub API 逐日快照 · 收录于 2026-08-09 · 当前星标 ★ 3788
使用教程
ℹ 本教程由 AI 依据该项目 README 整理,个别步骤可能需要按你的环境微调。
环境要求
- Python 运行环境(README 未指定具体版本)
- pip 或 conda 包管理器(二选一)
- 可调用的 LLM 服务与对应 API 密钥(示例使用 gpt-4o)
- 可选:需要使用 vllm 时,环境中需具备 vllm 支持
安装与启动步骤
-
1安装 TextGrad
README 推荐的最简方式,直接用 pip 从 PyPI 安装 textgrad 包,适合大多数用户。
pip install textgrad -
2conda 方式安装
与上一步二选一。若使用 conda 管理环境,可从 conda-forge 渠道安装,包由官方 feedstook 维护。
conda install -c conda-forge textgrad -
3安装最新开发版
与上两步二选一。想用仓库中最新的 bleeding edge 代码时,直接从 GitHub 安装。
pip install git+https://github.com/zou-group/textgrad.git -
4可选安装 vllm 支持
只有在需要 vllm 相关能力时才执行,会安装 textgrad 的 vllm 附加依赖。
pip install textgrad[vllm] -
5设置反向传播引擎
导入 textgrad 并指定用于生成文本梯度的 LLM。新引擎基于 litellm,模型名需为 litellm 支持的名称。
import textgrad as tg tg.set_backward_engine("gpt-4o", override=True) -
6定义损失与优化器
用 TextLoss 写清评判要求,交给 TGD 优化器管理要优化的文本变量,再调用损失函数得到反馈。README 示例中的 solution 变量需由你自己先行定义。
loss_fn = tg.TextLoss("You will evaluate a solution to a math question. Do not attempt to solve it yourself, do not give a solution, only identify errors. Be super concise.") optimizer = tg.TGD(parameters=[solution]) loss = loss_fn(solution) -
7反向传播并更新
对损失调用 backward() 生成文本梯度,再用 optimizer.step() 更新文本变量,最后打印优化后的文本。
loss.backward() optimizer.step() print(solution.value)
关键配置
| 配置项 | 必填 | 说明 | 示例 |
|---|---|---|---|
set_backward_engine 的模型名 | 是 | 指定生成文本梯度的 LLM,需为 litellm 支持的模型 | gpt-4o |
override | 否 | 设为 True 时覆盖此前已设置的反向传播引擎 | True |
parameters | 是 | 传给 TGD 优化器的待优化文本变量列表 | [solution] |
TextLoss 的文本参数 | 是 | 写给 LLM 的评判指令,决定文本梯度如何生成 | You will evaluate a solution to a math question. Do not atte |
如何确认成功
跑通 QuickStart:loss_fn 输出错误分析,loss.backward() 与 optimizer.step() 后 print(solution.value) 打印出修正后的解答即成功。
常见问题
Q:可以用 GPT-4o 以外的模型吗?
A:可以。新版引擎基于 litellm,只要该模型被 litellm 支持即可,README 明确提到 Bedrock、Together、Gemini 等都已支持。
Q:应该选 pip 还是 conda 安装?
A:两者都行。pip install textgrad 最直接;conda 用户可用 conda install -c conda-forge textgrad,该包在 conda-forge 的 textgrad-feedstock 仓库维护。
Q:怎么用最新的开发版代码?
A:执行 pip install git+https://github.com/zou-group/textgrad.git,可直接从 GitHub 仓库安装 bleeding edge 版本。
Q:需要 vllm 相关功能怎么办?
A:安装带附加依赖的版本:pip install textgrad[vllm],README 中给出了这一安装方式。
注意事项
- README 节选未给出 API 密钥的环境变量设置命令,请按你所使用模型服务商的文档自行配置密钥后再运行。
- README 提示基于 litellm 的新引擎目前仍是实验性的,未来计划的旧引擎会被弃用,选引擎时注意这一点。
- QuickStart 代码片段中的 solution 变量定义未在节选中给出,需自行构造待优化的文本变量后再运行后续步骤。
核心亮点
- 开创性地用文本梯度替代数值梯度,突破传统优化的可微性限制,可优化任意文本目标
- 提供简洁的Python API,支持快速定义优化变量和循环,上手门槛低
- 已发表于Nature,学术权威性强,且有大量真实案例(代码、科学QA)验证效果
不足之处
- 依赖大模型生成梯度,优化过程消耗大量token和计算资源,成本较高
- 文本梯度的稳定性和收敛性缺乏理论保证,复杂任务可能效果波动
- 文档/社区待观察
适用场景
- 自动优化提示词(Prompt)以提升LLM在特定任务上的表现
- 对生成的代码进行迭代修复和优化,提高代码正确性
- 多智能体系统中,通过文本反馈协调和优化各智能体的行为策略
替代项目
DSPy、PromptWizard、TextGrad
同类项目推荐
codesyncer
开源
让AI编程助手跨会话记住你的项目,告别反复解释
Claude forgets everything when the session ends. CodeSyncer makes it remember.
upjet
开源
把 Terraform Provider 自动变成 Crossplane 云资源控制器
A code generation framework and runtime for Crossplane providers
chainlit_langgraph
开源
快速搭建多 LLM 聊天机器人原型,集成 Chainlit 和 LangGraph
A seamless integration of Chainlit with LangGraph. Ideal for fast prototyping multi-···
engrim
开源
给所有 AI 编程助手接上同一个本地项目记忆
The Universal Cross-Model Episodic Memory Standard. Local-first, project-scoped SQLi···
awesome-ai-harness
开源
把大模型变成可靠 Agent 的工程知识地图
The model is the engine; the harness is the car. Curated knowledge on harness engine···
output
开源
用 TypeScript 构建可靠 AI 工作流,让 Claude 自动写代码
The open-source TypeScript framework for building AI workflows and agents. Designed ···
aix
开源
终端一条命令调用大模型,脚本自动化随手可用
AIx is a cli tool to interact with Large Language Models (LLM) APIs.
toon
开源
把 JSON 压缩成 TOON,省 token 又易读,让 LLM 调用更省钱
TOON — Laravel AI package for compact, human-readable, token-efficient data format ···
aikit
开源
不绑 SDK 的 AI 聊天 UI 库,换模型前端不用重写
A comprehensive, SDK-agnostic UI library built on Atomic Design principles. Create b···
