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:
Walau bagaimanapun, apabila melaksanakan aplikasi saya pada pelayan, saya mendapat bahawa
Walau bagaimanapun, saya mempunyai OPENAI_API_KEY dalam fail
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!"
Dalam
config/*.php
文件之外不要使用env()
。如果你曾经运行过php artisan config:cache
(通常应该在生产环境中进行),那么env()
将停止在这些文件之外工作(对于大多数情况来说;env
键仍然可以加载,但这对于大多数Laravel设置来说并不典型)。这就是为什么你需要运行php artisan config:clear
才能使env()
不返回null
sebab.Tambah kunci pada mana-mana fail lain dalam direktori
config/app.php
(或config/
:Kemudian, apabila anda ingin menggunakan kunci ini, gunakan fungsi
config()
helper: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