あゆの塩焼きブログ

RubyでOpenAI APIをアプリに組み込んでみた

Agenda目次
  • ・🚀 かなり簡単に実装できる!
  • ・🔧 OpenAI APIを使うための準備
  • ・📌 RailsのcredentialsにAPIキーを保存する
  • ・🖥 RubyでOpenAI APIを使ってみる
  • ・💡 各パラメータの説明
  • ・✨ prompt(指示文)を工夫すると、AIがより賢くなる!
  • ・💰 OpenAI APIの料金に注意!
  • ・🚀 実際に試してみた感想

🚀 かなり簡単に実装できる!

普段からChatGPTやCopilotを活用しているものの、「APIを使って自分のアプリに組み込むのは難しそう…」と思っていました。

しかし、実際に試してみると驚くほど簡単

この記事では、RubyでOpenAI APIを活用する方法をわかりやすく解説します。

「試してみたいけど、何から始めればいいの?」という方は、ぜひ参考にしてください!

🔧 OpenAI APIを使うための準備

まず、APIを利用するために必要な準備を行います。

  1. OpenAI公式サイトAPIキーを取得
  2. Railsアプリにruby-openaiをインストール

Gemfileに以下を追加してください。

gem 'ruby-openai'

次に、APIキーを安全に保管します。

📌 RailsのcredentialsにAPIキーを保存する

ターミナルを開き、以下のコマンドを実行します。

rails credentials:edit

エディターが開いたら、以下のように追記してください。

openai:
  api_key: あなたの取得したAPIキー

これで、APIキーを暗号化して安全に管理できます。
※APIキーは外部に公開しないようにだけ気を付けてください!

🖥 RubyでOpenAI APIを使ってみる

さっそく、APIを呼び出してChatGPTの応答を取得してみましょう。

def ask_chatgpt(question)
  client = OpenAI::Client.new(access_token: Rails.application.credentials.openai[:api_key])

  response = client.chat(
    parameters: {
      model: 'gpt-4o-mini', # 利用するAIモデル
      messages: [
        { role: "system", content: "あなたは優秀なアシスタントです。ユーザーの質問に的確に答えてください。" },
        { role: "user", content: question }
      ],
      max_tokens: 600,      # 生成するテキストの最大長
      temperature: 0.6      # クリエイティブ度(0.0:厳密, 1.0:自由)
    }
  )

  response.dig("choices", 0, "message", "content")
end

💡 各パラメータの説明

  • model: 使用するAIモデル(gpt-4o-miniはコスパ◎)
  • messages: AIへの指示やユーザーの入力内容
  • max_tokens: 生成されるテキストの長さの上限
  • temperature: 数値が高いほど多様な回答を生成

prompt(指示文)を工夫すると、AIがより賢くなる!

AIに「どのような口調で話すか」「どんな役割を持たせるか」を決めるのがprompt(指示文)です。

例えば、以下のような設定を試すと、AIの挙動が変わります。

{ role: "system", content: "あなたは歴史の専門家です。質問には必ず年代や背景を交えて説明してください。" }

工夫次第で、より実用的なAIアシスタントが作れます!

💰 OpenAI APIの料金に注意!

APIは便利ですが、利用量によっては費用がかかるため、事前に料金プランを確認しましょう。

料金表はこちらからチェックできます。

「なるべくコストを抑えたい」という方は、gpt-4o-miniのようなコスパの良いモデルを選ぶのがおすすめです。

🚀 実際に試してみた感想

「APIを組み込むのは大変そう…」と思っていましたが、
実際にやってみると、Railsアプリへの実装はわずか3時間程度で完了

  • 設定が簡単
  • AIの挙動を細かくカスタマイズできる
  • 応用の幅が広い

AIを活用すれば、アプリがもっと便利で面白くなると実感しました。

もし「こんな活用法もあるよ!」というアイデアがあれば、ぜひ共有してください!
※ 実際に主はタスク管理ツールでAI分析を実装したので、興味があればチェックしてみてください。

Loading...