저는 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 "애플리케이션이 배포되었습니다!"
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