ruby_llm
Ruby生态统一AI网关,一行代码接入GPT/Claude/Gemini等14+家AI服务商
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
Ruby生态统一AI网关,一行代码接入GPT/Claude/Gemini等14+家AI服务商
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。

图1:RubyLLM 项目 Logo
如果你是 Ruby 开发者,想在应用中接入 GPT-4、Claude 或 Gemini,通常会面临一个尴尬的局面:每家 AI 厂商都有自己的 SDK,安装麻烦、接口不一致、升级维护成本高。RubyLLM 的出现,就是来解决这个问题的——用一行代码,把所有主流 AI 提供商装进你的 Rails 应用里。
RubyLLM 是一个 RubyGem 库(Ruby 的包管理器格式),由独立开发者 Carmine Paolino 创建,目前 GitHub 超过 3975 颗星、452 个 Fork,被 Chat with Work 生产环境验证,曾多次登顶 GitHub Ruby 语言 Trending 榜首。它的核心定位是:一座连接 Ruby 应用与所有主流 AI 服务的统一桥梁。
你不再需要学习 OpenAI SDK 的用法、再学一套 Anthropic 的接口——RubyLLM 提供了一套优雅的 Ruby 风格 API,无论底层调用的是哪家 AI,接口体验几乎一样。这对于需要切换 AI 提供商、或同时使用多个模型的场景特别有价值。
最简单的用法,只需要三行代码:
chat = RubyLLM.chat
chat.ask "What is the best way to learn Ruby?"
这段代码背后自动帮你处理认证、构造请求、解析响应,无需关心 API 的细节。
RubyLLM 不只处理文字——它能自动识别并发送给 AI:
chat.ask "What's in this image?", with: "ruby_conf.jpg"RubyLLM.transcribe "meeting.wav"chat.ask "Summarize this document", with: "contract.pdf"chat.ask "Explain this code", with: "app.rb"Marcel gem 负责自动识别文件类型并正确构造 multipart 请求,无需手动设置 MIME 类型。
这是 AI Agent 的核心能力——让 AI 能够「调用」你写的 Ruby 方法来完成任务:
class Weather < RubyLLM::Tool
desc "Get current weather"
def execute(latitude:, longitude:)
# 调用天气 API
end
end
chat.with_tool(Weather).ask "What's the weather in Berlin?"
AI 会自动决定何时调用工具、传入什么参数,结果返回后再继续对话。整个过程对开发者是透明的。
RubyLLM::Agent 让你可以创建可复用的 AI 助手,带有专属指令和工具集:
class MyAssistant < RubyLLM::Agent
model "gpt-5-nano"
instructions "Be concise and use tools."
tools Weather
end
MyAssistant.new.ask "What's the weather?"
定义 Ruby 类来描述你期望的 JSON 结构,RubyLLM 自动验证并返回 Ruby 对象:
class ProductSchema < RubyLLM::Schema
string :name
number :price
array :features { string }
end
response = chat.with_schema(ProductSchema).ask "Analyze this product"
chat.ask "Tell me a story" do |chunk|
print chunk.content # 实时打印 AI 逐字输出
end
通过 acts_as_chat ActiveRecord 集成,你可以把聊天历史存储在数据库中,结合 ActionText 还能支持富文本消息,这是其他 AI SDK 很少有的开箱即用功能。
RubyLLM 的依赖少得惊人——只有三个 gem:Faraday(HTTP 客户端)、Zeitwerk(自动加载)、Marcel(文件类型识别)。没有重型依赖,没有任何运行时开销。
图2:作者 Carmine Paolino
代码库采用 Zeitwerk 驱动的模块化结构:
lib/ruby_llm/providers/ — 各 AI 提供商适配器(OpenAI、Anthropic、Gemini、Bedrock 等)lib/ruby_llm/agent.rb — Agent 框架核心lib/ruby_llm/active_record/ — Rails 集成lib/ruby_llm/stream_accumulator.rb — 流式输出累积lib/ruby_llm/model/ — 模型注册与能力检测(内置 800+ 模型)支持 14 家 AI 提供商:OpenAI、xAI、Anthropic、Google Gemini、AWS Bedrock、Azure、DeepSeek、Mistral、Ollama(本地模型)、OpenRouter、Perplexity、GPUStack、VertexAI,以及任何 OpenAI 兼容 API。
只要有 Ruby >= 3.1.3 的环境,Gemfile 里加一行:
gem 'ruby_llm'
然后 bundle install,配置 API Key(环境变量或初始化文件),就完成了。全程不超过 3 分钟。没有 Docker,没有复杂的依赖,没有门槛。
官方文档站点(rubyllm.com)提供完整的分步骤指南,覆盖从零安装到生产部署的全流程。
天下没有免费的午餐,RubyLLM 也有它的局限:
RubyLLM 的出现,标志着 Ruby 社区终于有了认真对待 AI 集成的基础设施。在此之前,Ruby 开发者要么硬着头皮直接调 HTTP API,要么用社区维护质量参差不齐的第三方适配器。
作者 Carmine Paolino 在 LinkedIn 发文感叹:RubyLLM 再次登顶 GitHub Ruby Trending 第一名,太疯狂了。这说明 Ruby 社区有多需要这个工具!
从增长曲线看,这个项目从 0 到 3000 星用了一年多,从 3000 到 4000 星只用了不到三个月,说明随着 AI 应用大爆发,Ruby 开发者的需求在急剧增长。
对于国内开发者,RubyLLM 同样值得关注:国内众多大模型(DeepSeek、阿里云等)均提供 OpenAI 兼容 API,RubyLLM 可以零改动直接接入,结合 Rails 框架的高效开发体验,是一个值得考虑的组合。