暂无菜单项

DSPy:用编程取代提示词工程,Stanford 出品 LLM 应用优化框架,27.5K+ Stars

发布于 更新于
2

📌 项目简介

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 工程
内置 BootstrapFewShotMIPROv2COPRO 等优化器,只需提供训练数据,DSPy 自动搜索最优 prompt / 示例 / 权重。质量可测量、可复现。
3
模块化编程模型 = 像 PyTorch 一样组合 LLM
提供 PredictChainOfThoughtProgramOfThoughtRetriever 等模块,自由组合成复杂 pipeline,支持多跳推理、工具调用、RAG。
4
全模型兼容 = 一处编写,任意 LLM 运行
统一接口支持 OpenAI、Anthropic、Google、Cohere、Ollama、Together AI、Azure 等 30+ LLM 提供商,切换模型只需改一行配置。
5
内置评估框架 = 量化 AI 应用质量
提供 EvaluateMetric 工具,科学评估模型效果,支撑数据驱动的迭代优化。

🚀 典型使用场景

场景 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.ai

💻
GitHub 仓库

github.com/stanfordnlp/dspy

📚
官方文档

dspy.ai/docs

💬
Discord 社区

discord.gg/XCGy2WOMnX

🎯 立即用 DSPy 把你的 LLM 应用工程化
告别手工调 prompt,拥抱可测量、可优化的 LLM 编程新范式
0 点赞
0 收藏
分享
0 讨论
反馈
0 讨论
热门最新
总结
暂无总结
0 / 600