📌 项目简介
DSPy(Declarative Self-improving Language Programs in Python)是斯坦福大学开发的 LLM 编程框架,让你用 编程取代提示词工程。不再手写 prompt,而是定义模块 + 数据,DSPy 自动优化提示词和权重,让 LLM 应用可靠、可测量、可迭代。
🔧 安装要求与过程
环境要求
- Python ≥ 3.9
- pip 包管理器
- (可选)OpenAI / Anthropic / Google API Key,或本地 Ollama
快速安装
# 基础安装(仅 DSPy 核心)
pip install dspy-ai
# 安装常用扩展(推荐)
pip install dspy-ai[vertexai,anthropic,cohere]
# 从源码安装最新版
pip install git+https://github.com/stanfordnlp/dspy.git
Hello World
import dspy
# 配置 LLM(支持 OpenAI / Claude / Gemini / Ollama 等)
lm = dspy.LM("openai/gpt-4o-mini")
dspy.configure(lm=lm)
# 定义签名(Signature):输入 → 输出
class QnA(dspy.Signature):
question = dspy.InputField()
answer = dspy.OutputField()
# 创建预测器
qa = dspy.Predict(QnA)
# 直接调用!
result = qa(question="DSPy 是什么?")
print(result.answer)
⭐ 核心功能
1
签名(Signature)= 结构化 Prompt
用类型安全的 Python 类定义输入输出,DSPy 自动生成高质量 prompt。告别手工调 prompt,代码即文档。
2
自动优化器(Optimizer)= 自动 Prompt 工程
内置
BootstrapFewShot、MIPROv2、COPRO 等优化器,只需提供训练数据,DSPy 自动搜索最优 prompt / 示例 / 权重。质量可测量、可复现。3
模块化编程模型 = 像 PyTorch 一样组合 LLM
提供
Predict、ChainOfThought、ProgramOfThought、Retriever 等模块,自由组合成复杂 pipeline,支持多跳推理、工具调用、RAG。4
全模型兼容 = 一处编写,任意 LLM 运行
统一接口支持 OpenAI、Anthropic、Google、Cohere、Ollama、Together AI、Azure 等 30+ LLM 提供商,切换模型只需改一行配置。
5
内置评估框架 = 量化 AI 应用质量
提供
Evaluate 和 Metric 工具,科学评估模型效果,支撑数据驱动的迭代优化。🚀 典型使用场景
场景 1:RAG 问答系统(最经典用法)
import dspy
from dspy.datasets import HotPotQA
# 配置检索器 + LM
colbertv2 = dspy.ColBERTv2(url="http://20.102.90.50:2017/wiki17_abstracts")
lm = dspy.LM("openai/gpt-4o-mini")
dspy.configure(lm=lm, rm=colbertv2)
# 定义 RAG 签名
class GenerateAnswer(dspy.Signature):
context = dspy.InputField(desc="相关维基百科段落")
question = dspy.InputField()
answer = dspy.OutputField()
# 构建 RAG 管道
class RAG(dspy.Module):
def __init__(self):
super().__init__()
self.retrieve = dspy.Retrieve(k=3)
self.generate = dspy.ChainOfThought(GenerateAnswer)
def forward(self, question):
context = self.retrieve(question).passages
return self.generate(context=context, question=question)
# 编译优化(自动调参)
from dspy.teleprompt import MIPROv2
teleprompter = MIPROv2(metric=dspy.evaluate.answer_exact_match)
optimized_rag = teleprompter.compile(
RAG(), trainset=your_trainset, valset=your_valset
)
场景 2:多跳推理 Agent
DSPy 原生支持构建多步推理 Agent,结合 ReAct 模块和工具调用,让 LLM 自主规划 + 执行复杂任务:
class MultiHopQA(dspy.Module):
def __init__(self):
self.react = dspy.ReAct(GenerateAnswer)
# ReAct 自动循环:Thought → Action → Observation → ...
def forward(self, question):
return self.react(question=question)
场景 3:生产级 Prompt 优化(MLOps 集成)
用 DSPy 的评估 + 优化管线,将 prompt 工程纳入 CI/CD:每次模型更新自动重新优化 prompt,保证质量不回退。
💡 推荐理由
如果你还在手写 prompt、手动调 few-shot 示例、靠感觉评估 LLM 应用质量——DSPy 会彻底改变你的工作方式。
它的核心洞察是:Prompt 是代码,应该像代码一样被编译、优化、测试。DSPy 把 prompt 工程从「手工艺」升级为「工程学科」,让 LLM 应用开发进入可测量、可迭代的正循环。
最打动我的是 MIPROv2 优化器:给它一堆训练数据,它能自动搜索最优的指令指令 + few-shot 示例组合,效果往往超过手工调参。对于需要稳定质量的 production 场景,这是救命稻草。
另外,DSPy 的学术背景(斯坦福 Ocelot 团队,NeurIPS/ICML 多篇论文)保证了它的方法论严谨性,不是又一个「AI 包装框架」。
📊 项目数据
| GitHub Stars | 27.5K+ |
| 开源许可 | MIT License |
| 主要语言 | Python |
| 维护团队 | Stanford Ocelot Lab(@stanfordnlp) |
| 最新版本 | v2.6+(2026 持续更新) |
| 文档地址 | dspy.ai |
📥 下载地址
🎯 立即用 DSPy 把你的 LLM 应用工程化
告别手工调 prompt,拥抱可测量、可优化的 LLM 编程新范式

发表回复