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
- 项目
- 项目
- 项目
- 项目