"Laravel 10 - .env 파일에서 API 키가 인식되지 않습니다."
P粉198814372
P粉198814372 2023-08-30 11:26:11
0
1
409

저는 Laravel Framework 10.15.0을 사용하고 있습니다.

다음과 같은 방법으로 API 키를 로드해 보았습니다.

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

.env 파일에는 API 키가 명확하게 정의되어 있습니다.

OPENAI_API_KEY=xx-xxxxxxxxxxxxxxxxxxxxxxx

그러나 서버에서 애플리케이션을 실행할 때 $apiKeyOpenAI가 null이라는 메시지가 표시됩니다.

그러나 내 .env 파일에는 OPENAI_API_KEY가 있습니다.확인해 봤습니다!

캐시 php artisan config:clear 를 삭제하려고 했지만 여전히 오류가 발생합니다.

TypeError OpenAI::client(): 인수 #1($apiKey)은 문자열 유형이어야 하며, null이 주어지고 151행의 /var/www/demo-website/app/Console/Commands/AdminCommand.php에서 호출되어야 합니다. 공급업체/openai-php/client/src/OpenAI.php:13에서 9▕{ 10▕ /**11▕ * 주어진 API 토큰을 사용하여 새로운 Open AI 클라이언트를 생성합니다. 12▕*/ ➜ 13▕ 공용 정적 함수 클라이언트(문자열 $apiKey, 문자열 $organization = null): 클라이언트 14▕{ 15▕ return self::factory() 16▕ ->withApiKey($apiKey) 17▕ ->withOrganization($organization) 1개의 앱/콘솔/명령/AdminCommand.php:151 OpenAI::클라이언트() 2 앱/콘솔/명령/AdminCommand.php:39 AppConsoleCommandsAdminCommand::generateContentUsingOpenAI()

내가 뭘 잘못하고 있는지 제안해 주실 수 있나요?

답변해 주셔서 감사합니다!

업데이트

서버에 배포한 후 작동하려면 다음 스크립트를 실행해야 합니다.

Route::get('/clear', function() { Artisan::call('캐시:클리어'); Artisan::call('config:clear'); "캐시, 구성이 지워졌습니다"를 반환합니다. })->middleware(['auth', 'admin']);

배포 시 다음 스크립트도 자동으로 실행됩니다.

#!/bin/sh -e로 설정 echo "애플리케이션 배포 중..." # 유지 관리 모드로 들어갑니다 (php artisan 다운) || 참 # 코드베이스 업데이트 git 가져오기 원본 배포 git Reset --하드 오리진/배포 # 잠금 파일을 기반으로 종속성을 설치합니다. 작곡가 설치 --no-interaction --prefer-dist --optimize-autoloader #데이터베이스 마이그레이션 PHP 장인 마이그레이션 --force # 참고: 대기열 작업자를 사용하는 경우 여기에서 다시 시작할 수 있습니다. #... # 캐시 지우기 # PHP 장인 최적화 PHP 장인 구성:캐시 PHP 장인 경로: 지우기 PHP 장인 경로:캐시 PHP 장인 보기:지우기 PHP 장인 보기:캐시 php artisan 인증:지우기 재설정 PHP 장인 캐시:지우기 PHP 장인 구성: 지우기 #사이트맵 생성 # php artisan 사이트맵:생성 # opcache를 업데이트하려면 PHP를 다시 로드하세요. 에코 "" sudo -S 서비스 php8.1-fpm 다시 로드 # 유지관리 모드 종료 PHP 장인 최대 echo "애플리케이션이 배포되었습니다!"

P粉198814372
P粉198814372

모든 응답 (1)
P粉317679342

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

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

    최신 다운로드
    더>
    웹 효과
    웹사이트 소스 코드
    웹사이트 자료
    프론트엔드 템플릿
    회사 소개 부인 성명 Sitemap
    PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!