"Laravel 10 - kunci API tidak dikenali dalam fail .env"
P粉198814372
P粉198814372 2023-08-30 11:26:11
0
1
403

Saya menggunakan Laravel Framework 10.15.0.

Saya cuba memuatkan kunci API saya dengan cara berikut:

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

Dalam fail .env saya, kunci API ditakrifkan dengan jelas:

OPENAI_API_KEY=xx-xxxxxxxxxxxxxxxxxxxxxxxx

Walau bagaimanapun, apabila melaksanakan aplikasi saya pada pelayan, saya mendapat bahawa $apiKeyOpenAI

Walau bagaimanapun, saya mempunyai OPENAI_API_KEY dalam fail .envSaya telah menyemaknya!

Saya cuba mengosongkan cache php artisan config:clear tetapi saya masih mendapat ralat:

TypeError OpenAI::client(): Argumen #1 ($apiKey) mestilah daripada jenis rentetan, batal diberikan, dipanggil dalam /var/www/demo-website/app/Console/Commands/AdminCommand.php pada baris 151 di vendor/openai-php/client/src/OpenAI.php:13 9▕{ 10▕ /**11▕ * Mencipta Klien AI Terbuka baharu dengan token API yang diberikan. 12▕*/ ➜ 13▕ klien fungsi statik awam(rentetan $apiKey, rentetan $organisasi = null): Pelanggan 14▕{ 15▕ kembalikan diri::kilang() 16▕ ->denganApiKey($apiKey) 17▕ ->denganOrganisasi($organisasi) 1 apl/Console/Commands/AdminCommand.php:151 OpenAI::client() 2 app/Console/Commands/AdminCommand.php:39 AppConsoleCommandsAdminCommand::generateContentUsingOpenAI()

Ada cadangan apa yang saya lakukan salah?

Terima kasih atas balasan anda!

Kemas kini

Selepas digunakan ke pelayan, saya perlu menjalankan skrip ini untuk menjadikannya berfungsi:

Route::get('/clear', function() { Artisan::call('cache:clear'); Artisan::call('config:clear'); kembalikan "Cache, Config dikosongkan"; })->perisian tengah(['auth', 'admin']);

Pada penggunaan, skrip ini juga akan dijalankan secara automatik:

#!/bin/sh set -e bergema "Mengedarkan aplikasi ..." # Masukkan mod penyelenggaraan (php artisan turun) || # Kemas kini pangkalan kod git fetch origin deploy git reset --hard origin/deploy # Pasang kebergantungan berdasarkan fail kunci komposer install --no-interaction --prefer-dist --optimize-autoloader #Migrasi pangkalan data php artisan migrate --force # Nota: Jika anda menggunakan pekerja baris gilir, ini adalah tempat untuk memulakan semula mereka. #... # Kosongkan cache # php artisan optimize php artisan config:cache php artisan route: clear php artisan route:cache php artisan view:clear php artisan view:cache php artisan auth:clear-reset php artisan cache:clear php artisan config: clear #Generate sitemap # php artisan sitemap:generate # Muat semula PHP untuk mengemas kini opcache echo "". sudo -S service php8.1-fpm reload # Keluar dari mod penyelenggaraan php artisan up bergema "Aplikasi digunakan!"

P粉198814372
P粉198814372

membalas semua (1)
P粉317679342

Dalamconfig/*.php文件之外不要使用env()。如果你曾经运行过php artisan config:cache(通常应该在生产环境中进行),那么env()将停止在这些文件之外工作(对于大多数情况来说;env键仍然可以加载,但这对于大多数Laravel设置来说并不典型)。这就是为什么你需要运行php artisan config:clear才能使env()不返回nullsebab.

Tambah kunci pada mana-mana fail lain dalam direktoriconfig/app.php(或config/:

'open_ai_api_key' => env('OPENAI_API_KEY', null)

Kemudian, apabila anda ingin menggunakan kunci ini, gunakan fungsiconfig()helper:

$apiKeyOpenAI = config('app.open_ai_api_key'); $client = OpenAI::client($apiKeyOpenAI);

Perhatian:app是文件名,open_ai_api_key是数组索引。如果你使用了不同的文件,比如config/services.php,那么应该使用config('services.open_ai_api_key')

Sila rujuk dokumentasi untuk butiran:

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

    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan
    Tentang kita Penafian Sitemap
    Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!