你是 Ruby 開發者嗎?看著身邊的人都在用 Python 玩 AI,心裡是不是有點不是滋味?
別擔心,現在 Ruby 也能輕鬆串接 AI 了!最近在 Hacker News 上爆紅的 RubyLLM,讓你可以用最熟悉的 Ruby 語法,呼叫 OpenAI、Gemini、Claude 等主流 AI 模型。這篇文章就是為你準備的入門教學。
為什麼你需要 RubyLLM?
想像一下這個場景:你正在開發一個 Rails 電商網站,客戶突然要求加入「AI 商品推薦」功能。傳統做法是:學 Python、裝套件、寫 Flask API、再串回 Rails。光想就頭痛。
RubyLLM 的誕生,就是為了消滅這種痛苦。它提供統一的 API 介面,讓你用幾行程式碼就能:
- 呼叫 ChatGPT 幫你寫文案
- 用 Claude 分析客戶評論
- 讓 Gemini 幫你摘要文章
- 甚至串接多個模型做比較
更棒的是,它完全使用 Ruby 的慣用寫法。如果你會寫 Rails,五分鐘就能上手。
第一步:安裝與設定
先確認你的 Ruby 版本是 3.1 以上。打開終端機,執行:
gem install ruby_llm
或者在你的 Gemfile 加入:
gem "ruby_llm"
然後 bundle install。
接下來需要設定 API 金鑰。RubyLLM 會自動讀取環境變數,所以你只需要:
export OPENAI_API_KEY="sk-your-key-here"
export ANTHROPIC_API_KEY="sk-ant-your-key-here"
export GEMINI_API_KEY="your-gemini-key"
貼心提醒:如果你在 Windows 上開發,可以在 .env 檔案管理這些金鑰,然後用 dotenv gem 載入。這樣就不會不小心把金鑰推到 GitHub 上。
第二步:開始對話
安裝好後,來寫你的第一行程式碼吧。建立一個 hello_ai.rb 檔案:
require "ruby_llm"
# 最簡單的用法
client = RubyLLM::Client.new(:openai)
response = client.chat("用繁體中文介紹 RubyLLM 是什麼?")
puts response
執行 ruby hello_ai.rb,你就會看到 AI 的回應。
但這只是開始。RubyLLM 真正的魅力在於它的對話管理功能。想像你在開發客服機器人,需要記住對話上下文:
chat = RubyLLM::Chat.new(:openai)
# 第一輪對話
chat.say("嗨,我叫小明")
# => "你好小明!有什麼我可以幫你的嗎?"
# 第二輪對話(AI 還記得你的名字)
chat.say("我叫什麼名字?")
# => "你叫小明,我們剛剛聊過喔!"
看到沒?你完全不用手動管理歷史記錄。RubyLLM 會自動保存對話上下文,就像你在網頁上使用 ChatGPT 一樣自然。
第三步:串接不同模型
RubyLLM 最強大的功能之一,就是可以無痛切換不同 AI 模型。比如說,你想比較 GPT-4 和 Claude 對同一問題的回答:
prompt = "用繁體中文解釋量子糾纏"
gpt4 = RubyLLM::Client.new(:openai, model: "gpt-4")
claude = RubyLLM::Client.new(:anthropic, model: "claude-3-opus-20240229")
puts "=== GPT-4 的回答 ==="
puts gpt4.chat(prompt)
puts "\n=== Claude 的回答 ==="
puts claude.chat(prompt)
這在實務上非常有用。例如你經營一個美食部落格,可以讓 GPT-4 寫食譜,讓 Claude 幫忙校對文法,再讓 Gemini 產生 SEO 關鍵字。全部用 Ruby 搞定。
第四步:進階應用 — 串接工具
真正的殺手級應用來了。RubyLLM 支援 Function Calling,讓 AI 可以呼叫你寫的 Ruby 方法。
假設你有一個天氣查詢功能:
class WeatherTool
def self.get_weather(city)
# 這裡可以串接真實的天氣 API
case city
when "台北" then "25°C,晴朗"
when "香港" then "28°C,多雲"
else "無法查詢該城市"
end
end
end
client = RubyLLM::Client.new(:openai)
# 註冊工具
client.add_tool("get_weather", WeatherTool.method(:get_weather))
# AI 會自動判斷什麼時候需要呼叫你的工具
response = client.chat("台北今天天氣如何?")
puts response
# => "台北今天天氣 25°C,晴朗!"
這意味著你可以讓 AI 串接你的資料庫、呼叫第三方 API、甚至執行複雜的業務邏輯。想像一個 AI 客服,可以幫客戶查訂單、改地址、計算運費,全部用 Ruby 寫成工具函式。
實戰案例:用 RubyLLM 做郵件摘要
讓我們做一個真實有用的功能:自動摘要客戶來信。
require "ruby_llm"
require "json"
class EmailSummarizer
def initialize
@client = RubyLLM::Client.new(:openai, model: "gpt-4o-mini")
end
def summarize(email_text)
prompt = <<~PROMPT
請摘要以下客戶郵件,輸出 JSON 格式:
{
"主旨": "一句話摘要",
"緊急程度": "高/中/低",
"需要回覆": true/false,
"關鍵字": ["關鍵字1", "關鍵字2"]
}
郵件內容:
#{email_text}
PROMPT
response = @client.chat(prompt)
JSON.parse(response)
end
end
# 使用範例
email = <<~EMAIL
您好,我在上週五訂購了一台筆電(訂單編號:#2024-5678),
但到今天還沒收到貨。訂單狀態一直顯示「處理中」。
請幫我確認出貨進度,謝謝。
EMAIL
summarizer = EmailSummarizer.new
result = summarizer.summarize(email)
puts result
# => {"主旨"=>"客戶詢問筆電訂單出貨進度", "緊急程度"=>"中", "需要回覆"=>true, "關鍵字"=>["訂單查詢", "出貨延遲", "#2024-5678"]}
這樣你就可以自動分類客戶信件,優先處理緊急案件。整個過程不到 20 行程式碼。
常見問題
Q: RubyLLM 需要 GPU 嗎? A: 完全不需要。RubyLLM 只是 API 客戶端,實際運算是在 OpenAI、Anthropic 或 Google 的雲端伺服器上執行。你的電腦只需要能上網就行。
Q: 串接不同模型會不會很貴? A: 不會。RubyLLM 讓你可以根據任務選擇最划算的模型。簡單任務用 GPT-4o-mini(非常便宜),複雜任務才用 GPT-4 或 Claude Opus。甚至可以混合使用。
Q: 我的 Rails 專案已經很老了,能用嗎? A: 只要 Ruby 版本 >= 3.1 就能用。Rails 5 以上都相容。安裝方式就是加一行 gem,不會影響現有程式碼。
Q: 中文支援好嗎? A: 非常好。RubyLLM 本身是中立的,中文品質取決於你串接的模型。GPT-4o 和 Claude 3 的繁體中文能力都相當優秀。
Q: 有沒有免費方案可以試用? A: OpenAI 和 Google 都有免費額度(OpenAI 新帳號送 $5,Google 送 $300)。你可以先用免費額度測試,確定符合需求再付費。
延伸閱讀
總結
RubyLLM 讓 Ruby 開發者不再被 AI 浪潮拋在後面。你不需要學 Python、不需要架設複雜的基礎設施,只要會 Ruby 就能開始打造 AI 應用。
今天的教學讓你學會了:
- 安裝與設定 RubyLLM
- 基本對話與上下文管理
- 無痛切換不同 AI 模型
- 使用 Function Calling 串接自訂工具
- 實戰郵件摘要功能
下一步,試著把 RubyLLM 整合到你現有的 Rails 專案中。從一個簡單功能開始,比如自動回覆常見問題。你會發現,AI 開發其實沒有想像中那麼難。
趕快打開終端機,裝上 RubyLLM,讓你的 Ruby 程式碼也擁有 AI 超能力吧!
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "RubyLLM 需要 GPU 嗎?",
"acceptedAnswer": {
"@type": "Answer",
"text": "完全不需要。RubyLLM 只是 API 客戶端,實際運算是在 OpenAI、Anthropic 或 Google 的雲端伺服器上執行。你的電腦只需要能上網就行。"
}
},
{
"@type": "Question",
"name": "串接不同模型會不會很貴?",
"acceptedAnswer": {
"@type": "Answer",
"text": "不會。RubyLLM 讓你可以根據任務選擇最划算的模型。簡單任務用 GPT-4o-mini(非常便宜),複雜任務才用 GPT-4 或 Claude Opus。甚至可以混合使用。"
}
},
{
"@type": "Question",
"name": "我的 Rails 專案已經很老了,能用嗎?",
"acceptedAnswer": {
"@type": "Answer",
"text": "只要 Ruby 版本 >= 3.1 就能用。Rails 5 以上都相容。安裝方式就是加一行 gem,不會影響現有程式碼。"
}
},
{
"@type": "Question",
"name": "中文支援好嗎?",
"acceptedAnswer": {
"@type": "Answer",
"text": "非常好。RubyLLM 本身是中立的,中文品質取決於你串接的模型。GPT-4o 和 Claude 3 的繁體中文能力都相當優秀。"
}
},
{
"@type": "Question",
"name": "有沒有免費方案可以試用?",
"acceptedAnswer": {
"@type": "Answer",
"text": "OpenAI 和 Google 都有免費額度(OpenAI 新帳號送 $5,Google 送 $300)。你可以先用免費額度測試,確定符合需求再付費。"
}
}
]
}
</script>