こんにちは、かつコーチです。
LaravelでLLMを使い始める前に、必ず必要になるのがAPIキーの発行と環境設定です。
ここを雑にやると、あとで「動かない」「キーが漏れた」といったトラブルにつながります。
この記事では、OpenAIとAnthropicそれぞれのAPIキー発行手順から、Laravelの.envとconfig/services.phpへの設定方法、そしてGit管理の注意点までを解説します。
APIキーとは?
専門用語の整理
APIキーとは、外部サービスに対して「自分が誰か」を証明する文字列のことです。
このキーをリクエストに含めることで、サービス側は利用者を識別し、利用量を課金・管理します。
環境変数とは、アプリケーションのコードとは別の場所で管理する設定値のことです。
Laravelでは.envファイルに書き、コード中では直接キーを書かずに読み込みます。
なぜ環境変数で管理するのか
APIキーをコードに直接書いてしまうと、Gitにコミットした瞬間に外部へ漏れるリスクがあります。.envはGit管理対象外にするのが標準的な運用なので、環境変数化しておけば、うっかり漏らすリスクを大きく減らせます。
実装手順
手順1:OpenAIでAPIキーを発行する
OpenAIの公式サイトでアカウントを作成し、ダッシュボードの「API keys」ページから新しいキーを発行します。
発行画面でしか全文を確認できないため、必ずその場でコピーしてメモしておきましょう。
手順2:AnthropicでAPIキーを発行する
Anthropicのコンソールでも同様に、アカウント作成後「API Keys」の画面から新規キーを発行します。
どちらのサービスも、支払い方法の登録が必要な点は共通しています。
手順3:.envに設定する
発行したキーを.envに追記します。
# .env
OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxx
ANTHROPIC_API_KEY=sk-ant-xxxxxxxxxxxxxxxxxxxxxxxx
手順4:config/services.phpに登録する
.envの値をLaravelのコードから読み込めるように、config/services.phpに登録します。
// config/services.php
return [
// ...既存の設定...
'openai' => [
'api_key' => env('OPENAI_API_KEY'),
],
'anthropic' => [
'api_key' => env('ANTHROPIC_API_KEY'),
],
];
手順5:設定キャッシュをクリアする
.envを変更したあと、設定がキャッシュされていると反映されないことがあります。
php artisan config:clear
つまずきやすい設定・注意点
.envを編集したあとにサーバーを再起動せずそのままテストして、「値が反映されない」と焦った経験がある人も多いはずです。config:cacheを実行済みの環境では、.envの変更が反映されないため、必ずconfig:clearまたはconfig:cacheのやり直しを行いましょう。
よくあるつまずきポイント・エラー対処
❌Before:APIキーをGitにコミットしてしまった
私が実際にやってしまった失敗です。
検証用に急いでconfig/services.phpにAPIキーを直接ハードコーディングし、そのままコミット&プッシュしてしまいました。
数分後、OpenAIから次のような内容のメールが届きました。
Subject: [OpenAI] Your API key has been disabled due to potential exposure
We detected your API key in a public GitHub repository and have disabled it as a precaution.
✅After:.gitignoreの確認とキーの再発行で対応
原因は単純で、.envではなく設定ファイルに直接キーを書いてしまったことでした。
まず該当キーをOpenAIのダッシュボードで即座に失効させ、新しいキーを再発行しました。
そのうえで、.gitignoreに.envが含まれていることを再確認し、コミット履歴に残ったキーはBFG Repo-Cleanerで完全に削除しました。
# .gitignore に .env が含まれているか確認
cat .gitignore | grep .env
.env
.env.backup
.env.production
この経験から、私は新規プロジェクトを立ち上げるたびに、最初に.gitignoreの中身を目視で確認する習慣をつけました。
「動かすこと」より先に「漏らさないこと」を確認する順番が大事だと痛感した出来事でした。
応用・一歩先の使い方
チーム開発では、.env.exampleにキー名だけを空欄で用意しておくと、メンバーが迷わず設定できます。
# .env.example
OPENAI_API_KEY=
ANTHROPIC_API_KEY=
本番環境では、.envファイルそのものを置かず、ホスティングサービスの環境変数管理機能(Forge、Vapor、各種PaaSのシークレット管理など)を使うと、より安全に運用できます。
まとめ
この記事のポイント
- APIキーは
.envで管理し、config/services.php経由でコードから参照する .env変更後はconfig:clearを忘れずに実行する- APIキーを設定ファイルに直書きしてコミットすると、サービス側に自動検知されキーが無効化されることがある
.gitignoreに.envが含まれているか、プロジェクト開始時に必ず確認する
コメント