用途:指导把DSPy程序组织为可组合、可优化的模块。dspy.Module是多步DSPy程序的构建单元,类似PyTorch的nn.Module;在__init__中以self.属性声明子模块,在forward()中用Python逻辑串联,优化器会自动遍历整棵模块树并调优。
主要能力:单步以上流程可封装为模块;支持模块嵌套复用;可用print(pipeline)查看模块树,用named_predictors()确认Predict实例可被发现;优化后可用save()/load()保存与恢复少量示例与优化指令,但Python逻辑、模型权重与LM配置不在其中,加载前需调用dspy.configure();可用dspy.Refine配合reward_fn、N、threshold重试达标,或用dspy.BestOfN做独立多次采样;支持条件路由、循环重试、迭代改进、异常回退、返回dspy.Prediction,以及为子模块set_lm分配不同模型、用batch()并行处理。
使用方式:先明确管道类型、步骤数、是否优化、是否需要异步,再选择顺序、条件、循环或嵌套等forward()模式。单次调用可不写模块,直接使用dspy.Predict或dspy.ChainOfThought;需要复用、优化、保存、批处理或检查时再封装为Module。安装命令:npx skills add lebsral/DSPy-Programming-not-prompting-LMs-skills --skill <name>。
适用场景:RAG、先分类再路由、迭代精炼、简单抽取等多步LLM管道。
限制与注意:子模块须作为self.属性,放入局部变量或普通列表会导致优化器无法发现(字典可以);不要在forward()中调用dspy.configure();forward()参数名需与训练示例字段一致,否则会静默失败;每个子类必须实现forward()。异步、价格与具体模型效果资料暂未提供完整说明。