用途:指导创建生产质量的 DSPy 自定义模块,适合构建可复用 DSPy 组件、实现内置模块之外的复杂逻辑、需要自定义状态管理、跨项目共享模块,以及生产部署等场景。
主要能力:自定义模块均继承 dspy.Module,通过 init 定义预测器与子组件,实现 forward 作为执行入口;支持有状态模块(如查询缓存)、输入校验与错误处理、日志记录;支持保存与加载,例如 module.save("my_module.json") 与 loaded.load("my_module.json");在 dspy>=2.6.0 中可用 module.save("./my_module/", save_program=True) 与 dspy.load("./my_module/") 加载整个程序。工作流分为基础结构、有状态模块、错误处理与校验、序列化四个阶段,并给出包含检索、生成、缓存与计数的生产级 RAG 示例。
使用方式:先 dspy.configure(lm=dspy.LM("openai/gpt-4o-mini")) 配置语言模型,实例化模块后以关键字参数调用,如 qa(question="What is Python?"),通过返回对象的字段(如 result.answer)读取结果。
最佳实践:单一职责、校验输入、以带 error 字段的 Prediction 返回错误而非抛出异常、记录缓存命中与错误等事件、组合前先独立单元测试。
限制:状态会增加内存占用(大缓存需谨慎);序列化不会自动保存自定义状态;模块测试需 mock LM 调用;深层模块层级难以调试;热路径中的校验会带来性能开销。
相关技能包括模块组合、签名设计与优化器,均属同一系列,具体标识暂未提供。