🧠

Cloudflare Workers + RubyでGPT-OSSを試す

に公開

Cloudflare workers のアプリをRubyで書くためのフレームワーク Hibana で Workers AI に対応したので、わりかし最近 Workers AI に追加された GPT-OSS を試してみた。

試し方

Hibanaプロジェクトの新規作成

npm create hibana@latest gpt-test

初期セットアップ

cd gpt-test
npm install

動作確認

npm run dev

http://localhost:8787にアクセスし、正常に表示されることを確認。
※ポートは8787以外かもしれません。サーバーの起動メッセージに表示されます。

コード修正

app/app.rb に以下のコードを追加

WorkersAI.register_binding("AI")

get "/gpt" do |c|
  ai = c.env(:AI)
  prompt = c.query["prompt"]
  model = "@cf/openai/gpt-oss-20b"

  result = ai.run(
    model: model,
    payload: {
      input: prompt,
      reasoning: {
        effort: "low",
        summary: "auto"
      }
    },
  )

  answer = result["output"][-1]["content"][0]["text"]
  c.text(answer)
rescue WorkersAI::Error => e
  c.json({ error: e.message, details: e.details }, status: 500)
end

CTRL-Cで一旦サーバーを止めて起動し直す。

npm run dev

以下にブラウザ等でアクセス(ポート番号はサーバー起動時のメッセージに表示されるので適宜変更します)
http://localhost:8787/gpt?prompt=あなたは誰ですか?

表示された回答は以下のような内容でした。
もちろんこれは生成AIの回答なので都度異なります。

私はOpenAIが開発した大規模言語モデル、ChatGPTです。膨大なテキストデータで訓練されており、質問に答えたり、情報を提供したり、創造的な文章を書いたりすることが得意です。あなたのお手伝いをするためにここにいます!

URLパラメータで prompt=...にわたす質問を変えると答えも変わります。

http://localhost:8787/gpt?prompt=Rubyというプログラミング言語について一言で教えて

Rubyは、オブジェクト指向とシンプルな構文で書きやすく、開発者の幸福("Happy Programmer")を追求する脚本言語です。

とりあえず動作確認はできました。
GPTを使う生成AIアプリがサクッと作れて便利かも。

Discussion