OlympiaAI/raix

Ruby AI eXtensions

解决的问题

Raix 是一个专为将离散的 AI 组件集成到现有 Ruby 应用程序中而设计的 Ruby 库。它简化了添加 LLM 功能(如聊天补全、工具使用和提示链)的过程,无需开发者手动管理复杂的 API 交互或对话记录。

工作原理

Raix 提供三个可混入任意 Ruby 类的模块,赋予其 AI 能力:

  • ChatCompletion:核心模块,负责管理对话记录,并通过 RubyLLM(支持 OpenAI、Anthropic、Google Gemini 和 OpenRouter)提供与 LLM 交互的方法。
  • FunctionDispatch:用于声明式定义 AI 可调用工具函数的 DSL。它会自动执行这些函数,将结果添加回对话记录,并持续对话循环,直到生成最终文本响应。
  • PromptDeclarations:用于创建“提示链”的 DSL,允许开发者定义一系列按顺序执行的提示或可调用的提示对象。

适用人群

希望使用基于 Olympia AI 平台验证过的模式的结构化、模块化方法,为应用程序(包括非 Rails 应用)添加 LLM 功能的 Ruby 开发者。

主要亮点

  • 统一的提供者访问:通过 RubyLLM 和 OpenRouter 支持多个 LLM 提供者。
  • 自动工具循环:无缝执行函数调用并将结果反馈给 AI,无需手动干预。
  • 灵活的钩子系统:提供 before_completion 钩子(全局、类、实例级别),用于动态参数解析、PII 脱敏和日志记录。
  • JSON 模式:原生支持结构化 JSON 响应,包括对不原生支持 JSON 响应格式的模型的回退机制。
  • 提示缓存:支持 Anthropic 风格的提示缓存,以减少大文本内容的延迟和成本。
  • 可自定义的分发:允许覆盖函数分发逻辑,以添加缓存(通过 ActiveSupport)或自定义错误处理。

相关

  • Dispatch
  • 项目
  • 项目
  • 项目
  • 项目