用途:在 Ruby 应用中使用 DSPy.rb 框架以编程方式构建 LLM 应用,用类型安全的签名与可组合模块替代手工提示词工程,便于测试、优化和版本控制。
主要能力:1) 类型安全签名,为 LLM 任务定义输入输出契约与运行时类型检查,可用枚举约束输出;2) 可组合模块,封装并串联 LLM 操作为多步工作流;3) 多种预测器:Predict、ChainOfThought、ReAct(工具调用智能体,含 max_iterations)、CodeAct(需 dspy-code_act gem);4) 多提供方配置,支持 OpenAI、Anthropic Claude、Google Gemini、Ollama、OpenRouter;5) 多模态视觉,统一 DSPy::Image 接口,支持 from_file、from_base64、from_url(URL 仅 OpenAI);6) 测试,可用 RSpec、mock、VCR;7) 优化,如 MIPROv2;8) 可观测性,支持 OpenTelemetry、Langfuse。
使用方式:安装 gem install dspy dspy-openai(或 dspy-anthropic、dspy-gemini);用 DSPy.configure 配置 c.lm = DSPy::LM.new('openai/gpt-4o-mini', api_key: ENV['OPENAI_API_KEY']);继承 DSPy::Signature 定义签名,继承 DSPy::Module 实现 forward 并调用预测器。Rails 中可加入 Gemfile 并在 config/initializers/dspy.rb 配置。
适用场景:Ruby/Rails 中的分类、抽取、分析、多步流水线、工具型智能体、多模态问答、提示词优化与生产监控。
限制:Gemini、Anthropic 的图片仅支持文件或 base64;Ollama 多模态依模型而定且工具调用支持不一;ReAct、CodeAct、MIPROv2、Langfuse、OpenTelemetry 等依赖对应 gem 或外部服务,具体版本、收费与价格暂未提供。