SuperAPI AI 工具集

dspy

智能体与模型

查看项目

更新于 10-16 06:24

技能介绍

用途:DSPy 是面向提示程序的编译器,用于构建并自动优化基于语言模型的程序。它不采用链式框架的 prompt | model | parser 组合方式,也没有 LCEL;你在 Python 中用控制流和带类型的签名定义程序结构,再由编译器依据指标优化提示词。

主要能力:签名(Signature)以输入/输出字段对定义任务,语法为 input1, input2 -> output1, output2;模块(Module)作为程序组件,包括 dspy.Predict(直接预测)、dspy.ChainOfThought(推理)、dspy.ReAct(工具调用)以及自定义 dspy.Module 子类,可用 if/for/while 组合;优化器(teleprompter)调优指令、少样本示例或两者,选择取决于瓶颈与预算;支持评估(dspy.Evaluate)、检索(dspy.Retrieve)以及通过 program.save(path) / program.load(path) 保存与加载可移植产物。

使用方式:先配置 LM,例如 lm = dspy.LM("openai/gpt-4o-mini") 与 dspy.configure(lm=lm);定义签名类;用模块构建程序;再用优化器编译,例如 optimizer = dspy.MIPROv2(metric=dspy.answer_exact_match),compiled_qa = optimizer.compile(qa, trainset=trainset, num_trials=25);最后调用编译后的程序。DSPy 默认缓存所有 LM 调用,可用 DSPY_CACHEDIR 设置缓存目录,或用 dspy.LM(..., cache=False) 关闭。

适用场景:提示优化与编译式程序、多步流水线、智能体与工具调用任务。若只需简单单提示应用、需要预置应用模块(如 PDF 问答、text-to-SQL)、没有优化预算的一次性任务,或对实时延迟极敏感,则不适合使用 DSPy。

限制:编译成本较高(资料称约 3 至 300 美元以上),但推理开销不增加;编译慢可减少 num_candidates 或使用 auto="light";上下文过长可减少 max_bootstrapped_demos 与 max_labeled_demos;指标应返回浮点数而非布尔值以增强区分度;子模块不更新时可先设 module._compiled = False 再重新编译。