DSPy 使用介绍:功能、价格与上手指南
DSPy 是斯坦福 NLP 团队推出的 LLM 编程框架,通过声明式模块和自动优化器替代手工提示词工程。本文介绍 DSPy 的核心功能、免费开源定价、安装与快速上手示例,并总结适用场景与局限性,帮助你判断是否值得引入。
DSPy 正在改变开发者与大型语言模型(LLM)的交互方式。传统提示词工程依赖反复试错,而 DSPy 让你用代码声明任务逻辑,由框架自动优化提示词与模型参数。本文将从功能、价格和上手实践三个维度,帮你快速判断 DSPy 是否适合你的项目。
DSPy 是什么?
DSPy(Declarative Self-improving Language Programs)是斯坦福 NLP 团队开源的 LLM 编程框架。它的核心思想是:不要手动写提示词,而是定义输入输出签名和模块,让优化器自动搜索最佳提示和少样本示例。
与 LangChain 等编排工具不同,DSPy 更关注“如何让 LLM 程序自动变得更好”,而不是“如何把 LLM 串联起来”。它把提示词工程从手工活变成了可编译、可优化的编程任务。
DSPy 核心功能
1. 声明式签名(Signatures)
用简洁的 Python 类或字符串定义输入输出字段,例如 "question -> answer"。签名描述任务目标,不涉及具体提示词措辞。
2. 可组合模块(Modules)
DSPy 提供 Predict、ChainOfThought、ReAct 等模块,像搭积木一样组合推理链。每个模块内部会自动生成合适的提示模板。
3. 自动优化器(Optimizers / Teleprompters)
这是 DSPy 最大亮点。优化器根据你提供的少量示例和评估指标,自动调整提示词、选择少样本示例,甚至微调模型权重。常见优化器包括 BootstrapFewShot、MIPROv2 等。
4. 评估与指标
内置评估流程,支持自定义指标函数。你可以定义准确率、F1、通过率等,优化器会以最大化该指标为目标。
5. 多模型兼容
支持 OpenAI、Anthropic、Cohere、本地模型(通过 HuggingFace、vLLM 等)。切换模型只需改动一行配置。
DSPy 价格:免费开源,成本在 LLM 调用
DSPy 本身是 MIT 许可证的开源库,完全免费。你不需要为框架支付任何费用。
真正产生成本的是调用 LLM API 的费用。优化过程会多次调用模型,因此可能比手动提示词消耗更多 token。建议:
- 开发阶段用便宜模型(如 GPT-4o-mini)做优化
- 生产环境再切换到更强模型
- 使用本地模型可完全避免 API 费用
| 项目 | 费用 |
|---|---|
| DSPy 框架 | 免费(开源 MIT) |
| LLM API 调用 | 按各提供商计费 |
| 本地模型 | 仅硬件成本 |
| 官方托管服务 | 无,社区自行部署 |
DSPy 上手指南
第一步:安装
pip install dspy-ai
如需最新版,可从 GitHub 安装:
pip install git+https://github.com/stanfordnlp/dspy.git
第二步:配置语言模型
import dspy
lm = dspy.LM('openai/gpt-4o-mini', api_key='你的API_KEY')
dspy.configure(lm=lm)
第三步:定义签名与模块
class QA(dspy.Signature):
"""回答用户问题。"""
question = dspy.InputField()
answer = dspy.OutputField()
qa = dspy.ChainOfThought(QA)
result = qa(question="DSPy 的核心优势是什么?")
print(result.answer)
第四步:准备数据与指标
def validate_answer(example, pred, trace=None):
return example.answer.lower() in pred.answer.lower()
trainset = [
dspy.Example(question="...", answer="...").with_inputs("question"),
# 更多示例
]
第五步:运行优化器
from dspy.teleprompt import BootstrapFewShot
optimizer = BootstrapFewShot(metric=validate_answer)
optimized_qa = optimizer.compile(qa, trainset=trainset)
optimized_qa.save("optimized_qa.json")
优化完成后,optimized_qa 可直接用于推理,效果通常优于手动提示词。
适用场景与局限性
推荐使用 DSPy 的场景:
- 任务有明确评估指标,可自动衡量效果
- 需要频繁更换底层模型
- 构建复杂多步推理管道
- 希望减少提示词维护成本
暂不推荐的情况:
- 一次性简单任务,手动提示词更快
- 没有标注数据或评估指标
- 对 token 成本极度敏感
总结
DSPy 把提示词工程从“艺术”推向“工程”。它免费开源,核心价值在于用优化器自动替代手工调参,尤其适合需要可复现、可迭代的 LLM 应用。上手门槛不高,建议从一个小任务开始,跑通“签名 → 模块 → 优化器”流程,再逐步扩大使用范围。