【Laravel】APIキーの設定と環境構築(OpenAI・Anthropic対応)

laravelアイキャッチ Laravel

こんにちは、かつコーチです。

LaravelでLLMを使い始める前に、必ず必要になるのがAPIキーの発行と環境設定です。
ここを雑にやると、あとで「動かない」「キーが漏れた」といったトラブルにつながります。

この記事では、OpenAIとAnthropicそれぞれのAPIキー発行手順から、Laravelの.envconfig/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が含まれているか、プロジェクト開始時に必ず確認する

次に読むべき記事

コメント

タイトルとURLをコピーしました