AI開発 / Tech
このブログアプリにAI機能を追加しました
☰
目次
このブログ、Ruby on Rails 使ってるんだけど、記事を書いた後に入力するスラッグと要約文をAIで自動生成するようにした。
使ったLLMはオープンウエイトの qwen3 で、Cloudflare Workers AI を使ってAPIとしてコールしている。
Quenのような中華LLMは軽量安価でいいんだけど、データが中国のデータセンターに送られることに不安を感じる人もいるかもしれない。
その点、Cloudflare Workers AI を使ってこれらを呼ぶと、こちらが送ったデータは Cloudflare に留まるからちょっと安心な気もする。
サンプルコード
このブログのソースコードは非公開だから見せられないけど、CURLを使ってAPIをたたくとしたらこんな感じ
(なお、Cloudflareで取得したトークンとアカウントIDを CLOUDFLARE_AI_API_TOKEN CLOUDFLARE_ACCOUNT_ID 環境変数にセットしてから実行すること。
export CLOUDFLARE_ACCOUNT_ID="..."
export CLOUDFLARE_AI_API_TOKEN="..."
CURLでのサンプル
curl -X POST \
"https://api.cloudflare.com/client/v4/accounts/${CLOUDFLARE_ACCOUNT_ID}/ai/run/@cf/qwen/qwen3-30b-a3b-fp8"
\
-H "Authorization: Bearer ${CLOUDFLARE_AI_API_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"messages": [
{
"role": "system",
"content": "あなたは技術ブログ編集者です。短く正確な日本語で回答してください。"
},
{
"role": "user",
"content": "AWS Aurora PostgreSQLへオンプレから移行期間中に接続する記事を、70字程度で要約し
てください。"
}
]
}'
Rubyでのサンプル
require "json"
require "net/http"
require "uri"
account_id = ENV.fetch("CLOUDFLARE_ACCOUNT_ID")
api_token = ENV.fetch("CLOUDFLARE_AI_API_TOKEN")
model = "@cf/qwen/qwen3-30b-a3b-fp8"
uri = URI("https://api.cloudflare.com/client/v4/accounts/#{account_id}/ai/run/#{model}")
request = Net::HTTP::Post.new(uri)
request["Authorization"] = "Bearer #{api_token}"
request["Content-Type"] = "application/json"
request.body = JSON.generate(
messages: [
{
role: "system",
content: "あなたは技術ブログ編集者です。短く正確な日本語で回答してください。"
},
{
role: "user",
content: "AWS Aurora PostgreSQLへオンプレから移行期間中に接続する記事を、70字程度で要約してく
ださい。"
}
]
)
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
http.open_timeout = 60
http.read_timeout = 60
response = http.request(request)
payload = JSON.parse(response.body)
puts "HTTP #{response.code}"
puts payload.dig("result", "response") || payload["result"] || payload
あとはプロンプトをどれだけ良い感じに作れるかだけど、結構簡単に自作アプリにAIを組み込めた。
コメント
まだコメントはありません。