「Laravel 10 - API キーが .env ファイルで認識されない」
P粉198814372
P粉198814372 2023-08-30 11:26:11
0
1
405

Laravel Framework 10.15.0 を使用しています。

次の方法で API キーをロードしてみました:

$apiKeyOpenAI = env('OPENAI_API_KEY'); $client = OpenAI::client($apiKeyOpenAI);

私の .env ファイルでは、API キーが明確に定義されています:

OPENAI_API_KEY=xx-xxxxxxxxxxxxxxxxxxxxxxxx

しかし、サーバー上でアプリケーションを実行すると、$apiKeyOpenAI が null であることがわかります。

ただし、.env ファイルには OPENAI_API_KEY があります。確認してみました!

キャッシュをクリアしようとしました php 職人 config:clear ですが、依然としてエラーが発生します:

TypeError OpenAI::client(): 引数 #1 ($apiKey) は文字列型である必要があり、null が指定され、/var/www/demo-website/app/Console/Commands/AdminCommand.php の 151 行目で呼び出されます。 ベンダー/openai-php/client/src/OpenAI.php:13 にあります。 9▕{ 10▕ /**11▕ * 指定された API トークンを使用して新しい Open AI クライアントを作成します。 12▕*/ ➜ 13▕ public static function client(string $apiKey, string $organization = null): クライアント 14▕{ 15▕ return self::factory() 16▕ ->withApiKey($apiKey) 17▕ ->withOrganization($organization) 1 アプリ/コンソール/コマンド/AdminCommand.php:151 OpenAI::client() 2 アプリ/コンソール/コマンド/AdminCommand.php:39 App\Console\Commands\AdminCommand::generateContentUsingOpenAI()

私が間違っている点はありますか?

ご返信ありがとうございます。

アップデート

サーバーにデプロイした後、このスクリプトを実行して機能させる必要があります:

Route::get('/clear', function() { Artisan::call('cache:clear'); Artisan::call('config:clear'); return "キャッシュ、構成はクリアされました"; })->ミドルウェア(['auth', 'admin']);

展開時には、このスクリプトも自動的に実行されます:

#!/bin/sh セット -e echo "アプリケーションをデプロイしています..." # メンテナンスモードに入る (php 職人ダウン) || true # コードベースを更新する git fetch オリジン デプロイ gitリセット --ハードオリジン/デプロイ # ロックファイルに基づいて依存関係をインストールします Composer install --no-interaction --prefer-dist --optimize-autoloader #データベースの移行 php 職人移行 --force # 注: キュー ワーカーを使用している場合は、ここがキュー ワーカーを再起動する場所です。 #... # キャッシュの消去 # php 職人の最適化 php 職人設定:キャッシュ php職人ルート:クリア php 職人ルート:キャッシュ php 職人ビュー:クリア php 職人ビュー:キャッシュ php 職人認証:clear-resets PHPアルティザンキャッシュ:クリア php 職人設定: クリア #サイトマップを生成する # php 職人サイトマップ:生成 # PHP をリロードして opcache を更新します echo "" | sudo -S サービス php8.1-fpm リロード # メンテナンスモードを終了する php 職人アップ echo "アプリケーションがデプロイされました!" 

P粉198814372
P粉198814372

全員に返信 (1)
P粉317679342

config/*.phpファイルの外でenv()を使用しないでください。php 職人 config:cacheを実行すると (通常は運用環境で実行する必要があります)、env()はこれらのファイルの外では動作しなくなります (ほとんどの場合、envキーは引き続きロードできますが、これはほとんどの Laravel セットアップでは一般的ではありません)。これが、env()nullを返さないようにphp 職人 config:clearを実行する必要がある理由です。

config/app.php(またはconfig/ディレクトリ内の他のファイル) にキーを追加します:

リーリー

次に、このキーを使用する場合は、config()ヘルパー関数を使用します:

リーリー

注:appはファイル名、open_ai_api_keyは配列のインデックスです。config/services.phpなどの別のファイルを使用する場合は、config('services.open_ai_api_key')

を使用する必要があります。

詳細については、ドキュメントを参照してください:

https://laravel.com/docs/10.x/configuration#configuration-caching

いいねを押す+0
    最新のダウンロード
    詳細>
    ウェブエフェクト
    公式サイト
    サイト素材
    フロントエンドテンプレート
    私たちについて 免責事項 Sitemap
    PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!