用途:DSPy.rb 是 Ruby 的编程式提示框架,目标是像开发软件一样构建 LLM 应用,类型安全、模块化、可测试。它用 Ruby 类型定义输入输出,而非手工调整提示词。
主要能力:类型安全签名(用 Sorbet 类型定义输入/输出)、模块化组件(Predict、ChainOfThought、ReAct、CodeAct)、工具与工具集(Sorbet 类型支持)、类型系统与判别器(自动 _type 字段、联合类型)、优化(MIPROv2、GEPA)、评估框架(内置与自定义指标)、事件系统、生命周期回调、Fiber 本地 LM 上下文、存储系统、Rails 集成、Schema 格式(BAML/TOON)。
使用方式:安装 gem 'dspy';配置 DSPy.configure 设置 c.lm = DSPy::LM.new(...);定义 DSPy::Signature 子类;用 DSPy::Predict.new(签名).call(...) 调用。提供商适配可用每提供商 gem(dspy-openai、dspy-anthropic、dspy-gemini),或经 RubyLLM 的统一适配 gem(dspy-ruby_llm + ruby_llm),模型名用 ruby_llm/ 前缀。GEPA 需 gem 'dspy-gepa';CodeAct 需 dspy-code_act gem;BAML 需 sorbet-baml gem。
适用场景:需要对 LLM 输出做类型约束与校验、构建工具型智能体、用数据优化提示、系统化评测 LLM 应用、在 Rails 中按目录结构组织签名/工具/模块/服务、对不同角色使用不同模型。
限制:资料未提供收费、价格信息。BAML 与 TOON 仅在 structured_outputs: false 时生效,structured_outputs: true 时提供商直接接收 JSON Schema。避免在 struct 中自定义 _type 字段。其余细节暂未提供。