recherche

Maison  >  Questions et réponses  >  le corps du texte

"Laravel 10 - Clé API non reconnue dans le fichier .env"

<p>J'utilise <code>Laravel Framework 10.15.0</code>. </p> <p>J'ai essayé de charger ma clé API de la manière suivante : </p> <pre class="brush:php;toolbar:false;">$apiKeyOpenAI = env('OPENAI_API_KEY'); $client = OpenAI::client($apiKeyOpenAI);</pre> <p>Dans mon fichier <code>.env</code>, la clé API est clairement définie : </p> <p><code>OPENAI_API_KEY=xx-xxxxxxxxxxxxxxxxxxxxxxxx</code></p> <p>Cependant, lors de l'exécution de mon application sur le serveur, j'obtiens que <code>$apiKeyOpenAI</code> </p> <p>Cependant, j'ai OPENAI_API_KEY dans mon fichier <code>.env</code>Je l'ai vérifié ! </p> <p>J'ai essayé de vider le cache <code>php artisan config:clear </code> mais j'obtiens toujours l'erreur : </p> <pre class="brush:php;toolbar:false;">TypeError OpenAI::client() : l'argument n°1 ($apiKey) doit être de type chaîne, null donné, appelé dans /var/www/demo-website/app/Console/Commands/AdminCommand.php à la ligne 151 sur supplier/openai-php/client/src/OpenAI.php:13 9▕{ 10▕ /**11▕ * Crée un nouveau client Open AI avec le jeton API donné. 12▕*/ ➜ 13▕ client de fonction statique publique (string $apiKey, string $organization = null) : Client 14▕{ 15▕ retourner self::factory() 16▕ ->avecApiKey($apiKey) 17▕ ->avecOrganisation($organisation) 1 application/Console/Commands/AdminCommand.php:151 OpenAI :: client () 2 application/Console/Commands/AdminCommand.php:39 AppConsoleCommandsAdminCommand::generateContentUsingOpenAI()</pre> <p>Des suggestions sur ce que je fais mal ? </p> <p>Merci pour votre réponse ! </p> <p><strong>Mise à jour</strong></p> <p>Après le déploiement sur le serveur, je dois exécuter ce script pour le faire fonctionner : </p> <pre class="brush:php;toolbar:false;">Route::get('/clear', function() { Artisan::call('cache:clear'); Artisan::call('config:clear'); return "Cache, la configuration est effacée"; })->middleware(['auth', 'admin']);</pre> <p>Lors du déploiement, ce script s'exécutera également automatiquement : </p> <pre class="brush:php;toolbar:false;">#!/bin/sh définir -e echo "Déploiement de l'application..." # Entrez en mode maintenance (artisan php en panne) || vrai # Mettre à jour la base de code git fetch origin déployer git reset --hard origin/déploiement # Installer les dépendances en fonction du fichier de verrouillage composer install --no-interaction --prefer-dist --optimize-autoloader #Migrer la base de données php artisan migrer --force # Remarque : Si vous utilisez des files d'attente, c'est ici que vous pouvez les redémarrer. #... # Vider le cache # php artisan optimiser configuration artisanale php : cache route artisanale php : effacer route artisanale php: cache vue artisan php : effacer vue artisan php: cache authentification artisan php : effacer les réinitialisations Cache artisanal php : effacer configuration artisan php : effacer #Générer un plan du site # plan du site artisan php : générer # Recharger PHP pour mettre à jour opcache echo "" | sudo -S service php8.1-fpm rechargement # Quitter le mode maintenance artisan php en place echo "Application déployée !"</pre></p>
P粉198814372P粉198814372442 Il y a quelques jours521

répondre à tous(1)je répondrai

  • P粉317679342

    P粉3176793422023-08-31 00:38:30

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

    Ajoutez une clé à n'importe quel autre fichier du répertoire config/app.php(或config/ :

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

    Ensuite, lorsque vous souhaitez utiliser cette clé, utilisez la fonction config()helper :

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

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

    Veuillez vous référer à la documentation pour plus de détails :

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

    répondre
    0
  • Annulerrépondre