SuperAPI AI 工具集

dspy-predict

通用与其它

查看项目

更新于 10-15 23:58

技能介绍

dspy.Predict 是 DSPy 程序的基本构建单元:接收输入,调用一次语言模型,返回类型化输出,没有中间推理步骤。其他模块(如 ChainOfThought、ReAct)都构建在它之上。

用途与选择:任务较直接(分类、抽取、格式化、问答)、追求低延迟与低 token 消耗、输入输出映射直接,或作为更大流水线的子步骤时,用 dspy.Predict。若任务需要逐步推理、准确率优先、需检查模型推理过程,则改用 dspy.ChainOfThought,仅需替换一个词。经验法则是先试 Predict,准确率不足再切换。

主要能力:支持 Pydantic BaseModel 作为输出类型,实现结构化输出;支持异步调用 acall/aforward;支持批量 predict.batch(examples, num_threads=8, timeout=120);支持 predict.save("my_predictor.json") 与 predict.load("my_predictor.json") 保存加载优化后的预测器。用法上,先定义签名,再实例化 dspy.Predict(签名) 并以关键字参数调用,如 predict(question="my input");只接受关键字参数,传位置参数会引发 ValueError。传给 batch 的每个 dspy.Example 必须调用 .with_inputs("field_name") 标记输入字段,否则 DSPy 会把所有字段当作输出,破坏批量执行与优化器训练。批量处理应使用 predict.batch() 而非 Python 循环,它内部使用 dspy.Parallel 处理并发,速度更快。

验证与限制:构建后应在小规模带标签开发集上抽查,再用 dspy.Evaluate 评估准确率;若低于目标,先优化 Predict(如 BootstrapFewShot 或 MIPROv2),而不是先换模块。常见误区是准确率低时立刻改用 ChainOfThought,但优化过的 Predict 通常能以更低 token 成本达到或超过未优化的 ChainOfThought。安装技能可用 npx skills add lebsral/DSPy-Programming-not-prompting-LMs-skills --skill <name>。更多 API 与示例见 reference.md 与 examples.md。