用途:dspy.LM 是 DSPy 调用语言模型的统一接口,封装 LiteLLM,让 OpenAI、Anthropic、Google、Together AI、Ollama、vLLM 等 100 多家提供商通过一致的 API 使用。配置一次模型后,所有 DSPy 模块自动使用它。
主要能力:支持以 "provider/model-name" 格式创建 LM 实例;可设置 temperature、max_tokens、cache、num_retries、model_type 等参数;支持推理模型(需 temperature=1.0 或 None、较大 max_tokens);内置缓存与重试;可查看请求历史。
使用方式:基本流程为 lm = dspy.LM("openai/gpt-4o-mini"),再 dspy.configure(lm=lm)。可对单个模块用 set_lm() 永久指定不同模型,或用 with dspy.context(lm=...): 临时切换。API 密钥建议通过环境变量设置(如 OPENAI_API_KEY),DSPy 经 LiteLLM 自动读取。本地模型需提供 api_base,例如 Ollama 用 "ollama_chat/llama3.1" 配 http://localhost:11434。
适用场景:需要在多提供商间切换、按阶段分配不同模型以平衡成本与质量,或使用本地/离线模型时。
限制与注意事项:模型字符串必须带提供商前缀,否则可能路由不可靠;推理模型温度需为 1.0 或 None;不要在 forward() 内调用 dspy.configure,配置应放在脚本顶部,否则会重置全局状态并破坏缓存;本地模型必须设置 api_base;API 密钥不要硬编码。缓存默认开启,如需同一提示的多样输出可关闭。dspy.Embedder 是另一种模型类,不能传给 dspy.configure(lm=...)。