
最近の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キー取得方法
- OpenAI にログイン
- APIキーを作成し、コピー
Google GeminiのAPIキー取得方法
- Google AI Studio または Google Cloud Console
- プロジェクト作成後、Gemini APIを有効化
- 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」を作成する記事を予定しています。お楽しみに!
コメント