IT

【2025年最新版】LaravelでChatGPTを使う方法|OpenAI API連携完全ガイド

IT

最近のWebアプリ開発において、ChatGPTやGeminiなどの生成AIを活用する動きが急速に広がっています。これらのAI APIをLaravelと連携させることで、チャットボットや自動応答、テキスト生成など、さまざまな機能を自分のアプリに組み込むことが可能になります。

本記事では、Laravelを使ってChatGPT(OpenAI)およびGemini(Google AI)のAPIと連携する方法を、コード付きで丁寧に解説します。

本記事のテーマ

  • LaravelでChatGPTを使う方法
  • OpenAI API連携完全ガイド

対象読者と前提知識

  • Laravelの基本的な構文・開発経験がある方
  • .env やコントローラーの作成ができるレベル
  • GuzzleHTTPなどのHTTPクライアントを使ったことがある、または学びたい方

1. OpenAI API・Gemini APIとは?

ChatGPT(OpenAI API)

OpenAIが提供するAPIで、ChatGPT(GPT-4など)を使った自然言語処理が可能です。質問応答、文章要約、コード生成など多彩な応用が可能です。

Gemini(Google AI)

Googleが提供する生成AI APIです。会話型AIに加え、画像やコード生成など幅広く対応しています。Gemini APIはGoogle Cloud Consoleから利用できます。

2. APIキーの取得と環境設定

OpenAIのAPIキー取得方法

  1. OpenAI にログイン
  2. APIキーを作成し、コピー

Google GeminiのAPIキー取得方法

  1. Google AI Studio または Google Cloud Console
  2. プロジェクト作成後、Gemini APIを有効化
  3. APIキーを取得

.envファイルに記載

OPENAI_API_KEY=sk-xxxxxx
GEMINI_API_KEY=your-google-api-key

3. LaravelでOpenAI APIを叩く(ChatGPT編)

GuzzleHTTPでの通信コード例

use Illuminate\Support\Facades\Http;

$response = Http::withHeaders([
    'Authorization' => 'Bearer ' . env('OPENAI_API_KEY'),
])->post('https://api.openai.com/v1/chat/completions', [
    'model' => 'gpt-4',
    'messages' => [
        ['role' => 'user', 'content' => 'LaravelでAPI通信する方法は?']
    ]
]);

$data = $response->json();

結果の取得

$reply = $data['choices'][0]['message']['content'];

4. LaravelでGemini APIを叩く(Google AI編)

GoogleのGemini APIはcurlでもアクセスできますが、LaravelではGuzzleHTTPを使うと便利です。

$response = Http::post('https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContent?key=' . env('GEMINI_API_KEY'), [
    'contents' => [[
        'parts' => [[
            'text' => 'LaravelとGoogle Geminiの連携方法を教えて'
        ]]
    ]]
]);

$reply = $response->json()['candidates'][0]['content']['parts'][0]['text'];

5. フロントエンドとの連携(Blade + Axios)

Bladeテンプレートの例

<form id="chatForm">
  <input type="text" id="message" placeholder="メッセージを入力">
  <button type="submit">送信</button>
</form>
<div id="response"></div>

<script>
  document.getElementById('chatForm').addEventListener('submit', async (e) => {
    e.preventDefault();
    const message = document.getElementById('message').value;
    const res = await axios.post('/api/chat', { message });
    document.getElementById('response').innerText = res.data.reply;
  });
</script>

6. 応用編:AIを活用したチャットボット機能の構築

  • ユーザーごとに履歴をセッションまたはデータベースで管理
  • 特定キーワードで回答を変える条件分岐
  • Laravelのキューと組み合わせて非同期応答処理

7. セキュリティと料金の注意点

  • APIキーは .env に保管し、Gitには絶対に公開しない
  • 料金体系はトークン数に応じて課金。テスト時は低ボリュームで検証
  • レート制限やエラー処理も実装しておくと安心

おわりに

Laravelと生成AI(ChatGPT / Gemini)を連携させることで、Webアプリに高度なAI機能を組み込むことができます。今回のようなチャットアプリに限らず、記事生成ツールやFAQ支援などにも応用可能です。

次回は、実際にAIを活用して「問い合わせ対応Bot」を作成する記事を予定しています。お楽しみに!

コメント