0Pricing
AI Prompt Engineering · 课时

DSPy 框架简介

了解 DSPy 为何使用声明式签名取代手写提示词。

DSPy 框架简介 是 CoddyKit 上的免费 AI Prompt Engineering 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 AI Prompt Engineering 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 AI Prompt Engineering 课程共包含 4 节课。

手写提示词的脆弱性

手工编写的提示词很脆弱。只改动一个词,就可能大幅改变模型的行为;对 GPT-4 有效的方法,在 Claude 或 Gemini 上往往会失效。

提示词工程师会花数小时调整措辞,最后却发现这些改动无法跨数据集或模型版本泛化。这种脆弱性正是 DSPy 要解决的核心问题。

DSPy 是什么

DSPy(声明式自改进 Python)是斯坦福大学推出的框架,它将提示词编写视为编译问题,而不是手工创作问题。

您无需编写:"Think step by step and answer the following question...",而是声明您想要什么(一个 signature),让 DSPy 自行确定应如何做提示词构造,才能让模型实现目标。

安装 DSPy

PyPI 上提供了 DSPy。安装它并配置语言模型后端,即可开始使用。

pip install dspy-ai

# Basic setup in Python
import dspy

# Configure the language model
lm = dspy.LM('openai/gpt-4o-mini', api_key='sk-...')
dspy.configure(lm=lm)

print('DSPy configured successfully')

核心理念:将逻辑与提示词分离

在传统的提示词编写中,程序逻辑和提示词文本纠缠在一起。如果您想改变模型的推理方式,就必须重写提示词字符串。

DSPy 将这两个关注点分离:您使用模块编写 Python 逻辑,DSPy 则在编译步骤中自动生成并优化实际的提示词文本。

signature:声明意图

DSPy 中的 signature 是对输入和输出的类型化声明。它说明的是要什么,而不是怎么做。

DSPy 使用 signature 在编译时构造合适的提示词,您无需亲自进行提示词工程。

import dspy

# Declare: given a question, produce an answer
class SimpleQA(dspy.Signature):
    """Answer questions with short factual responses."""
    question: str = dspy.InputField()
    answer: str = dspy.OutputField(desc='A concise factual answer')

# DSPy turns this declaration into a real prompt automatically
print(SimpleQA.__doc__)

模块:可组合的推理构件

DSPy 提供了实现常见推理模式的模块。您可以像使用 PyTorch 层一样使用它们,将它们组合成更大的程序。

  • dspy.Predict — 直接预测
  • dspy.ChainOfThought — 添加推理步骤
  • dspy.ReAct — 推理 + 工具调用
import dspy

class SimpleQA(dspy.Signature):
    """Answer questions with short factual responses."""
    question: str = dspy.InputField()
    answer: str = dspy.OutputField()

# Three different module strategies for the same signature
predict_module = dspy.Predict(SimpleQA)
cot_module = dspy.ChainOfThought(SimpleQA)

# Call just like a function
result = predict_module(question='What is the capital of France?')
print(result.answer)

编译的作用

编译是 DSPy 使用训练集和指标函数优化程序提示词的过程。

编译前:DSPy 使用基本的默认提示词。编译后:DSPy 找到了能最大化指标的少样本示例、更好的指令或思维链示例。优化后的提示词会被保存,并在推理时重复使用。

一个最小的 DSPy 程序

下面是一个完整的最小 DSPy 程序:一个 signature、一个模块和一次调用。整个程序中没有任何地方编写提示词字符串。

import dspy

# 1. Configure LM
lm = dspy.LM('openai/gpt-4o-mini', api_key='sk-...')
dspy.configure(lm=lm)

# 2. Define signature
class Summarize(dspy.Signature):
    """Summarize text into one sentence."""
    text: str = dspy.InputField()
    summary: str = dspy.OutputField()

# 3. Create module
summarizer = dspy.Predict(Summarize)

# 4. Use it
result = summarizer(text='DSPy is a framework for programming language models.')
print(result.summary)

DSPy 与传统提示词工程

两者在理念上的关键区别:

  • 传统方式:您编写提示词文本 → 模型执行提示词 → 您手动调整文本
  • DSPy:您编写 Python 逻辑 → 优化器找出最佳提示词文本 → 模型执行优化后的提示词

DSPy 将提示词视为编译器应处理的实现细节,就像编译器将 Python 转换为字节码一样。

何时值得使用 DSPy

在以下情况下,DSPy 尤其有优势:

  • 有明确的优化指标(准确率、F1、用户评分)
  • 有一个训练集示例(即使只有 20–50 个也足够)
  • 有一个包含会相互影响的多个推理步骤的流水线

对于一次性的简单提示词,DSPy 的额外开销并不值得。对于具有可衡量目标的生产环境 LLM 流水线,DSPy 会带来根本性的提升。

DSPy 生态系统概览

DSPy 不只是一个接口包装器,而是一套完整的生态系统:

  • signature:声明输入/输出
  • 模块:推理策略
  • 优化器:BootstrapFewShot、MIPRO、COPRO
  • Evaluate:内置评估工具
  • 断言:以声明方式约束输出

您将在本课程接下来的课程中逐一探索这些内容。

知识检查:DSPy 核心概念

与手动编写提示词相比,DSPy 的主要区别是什么?

回顾:DSPy 框架基础

DSPy 将提示词编写视为编译问题,从而解决了手写提示词的脆弱性。您编写signature(类型化输入/输出声明),并将它们与 模块(如 Predict 和 ChainOfThought)组合起来。随后,优化器利用您的训练数据和指标自动找出最佳提示词文本。最终得到的提示词流水线具有可移植、可测试和可自动改进的特点,无需手动进行提示词工程。

常见问题解答

「DSPy 框架简介」课时是免费的吗?

是的 — 「DSPy 框架简介」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 AI Prompt Engineering 课程的其余内容,请升级到 CoddyKit PRO。 AI Prompt Engineering 课程共包含 4 节课。

「DSPy 框架简介」这节课中我会学到什么?

了解 DSPy 为何使用声明式签名取代手写提示词。 你通过在浏览器中直接运行的动手代码来练习 AI Prompt Engineering,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 AI Prompt Engineering 需要有经验吗?

无需任何先前经验。CoddyKit 上的 AI Prompt Engineering 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。

「DSPy 框架简介」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 AI Prompt Engineering 课中编写并运行代码吗?

能。每节 AI Prompt Engineering 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. DSPy 框架简介
  2. 定义签名与模块
  3. 编译与优化提示词
  4. 评估 DSPy 流程
← 返回 AI Prompt Engineering