Laravel
openai-php/laravel
Laravel용 OpenAI PHP는 Open AI API와 손쉽게 연동할 수 있게 해 주는 강력한 PHP API 클라이언트입니다.
OpenAI PHP for Laravel은 Open AI API와 연동할 수 있도록 커뮤니티가 관리하는 PHP API 클라이언트입니다. 여러분이나 여러분의 회사가 이 패키지에 의존하고 있다면, 시간과 노력을 들여 이 유용한 도구를 만들고 유지해 온 개발자들을 후원해 주시기 바랍니다.
- Nuno Maduro: github.com/sponsors/nunomaduro
- Sandro Gehri: github.com/sponsors/gehrisandro
NOTE
이 저장소에는 Laravel용 OpenAI PHP의 통합 코드가 들어 있습니다. 프레임워크에 종속되지 않고 OpenAI PHP 클라이언트를 사용하고 싶다면 openai-php/client 저장소를 참고하세요.
시작하기
NOTE
PHP 8.2 이상이 필요합니다.
먼저 Composer 패키지 매니저로 OpenAI 패키지를 설치합니다.
composer require openai-php/laravel다음으로 설치 명령을 실행합니다.
php artisan openai:install이 명령은 프로젝트에 config/openai.php 설정 파일을 생성하며, 환경 변수를 이용해 필요에 맞게 설정을 바꿀 수 있습니다.
OpenAI API 키와 조직 ID에 해당하는 빈 환경 변수도 .env 파일에 자동으로 추가됩니다.
OPENAI_API_KEY=sk-...
OPENAI_ORGANIZATION=org-...마지막으로 OpenAI 파사드를 사용해 OpenAI API에 접근할 수 있습니다.
use OpenAI\Laravel\Facades\OpenAI;
$response = OpenAI::responses()->create([
'model' => 'gpt-5',
'input' => 'Hello!',
]);
echo $response->outputText; // Hello! How can I assist you today?설정
설정은 환경 변수 또는 설정 파일(config/openai.php)에서 직접 할 수 있습니다.
OpenAI API 키와 조직
OpenAI API 키와 조직을 지정합니다. 이 값은 OpenAI API 인증에 사용되며, API 키와 조직 ID는 https://openai.com 의 OpenAI 대시보드에서 확인할 수 있습니다.
OPENAI_API_KEY=
OPENAI_ORGANIZATION=OpenAI 프로젝트
프로젝트 ID가 필요한 환경이라면 환경 변수에 OpenAI 프로젝트 ID를 지정할 수 있습니다.
OPENAI_PROJECT=proj_...OpenAI API 기본 URL
OpenAI API의 기본 URL입니다. 기본값은 api.openai.com/v1입니다.
OPENAI_BASE_URL=요청 타임아웃
타임아웃은 응답을 기다릴 최대 시간(초)을 지정합니다. 기본적으로 클라이언트는 30초 후에 타임아웃됩니다.
OPENAI_REQUEST_TIMEOUT=사용법
사용 예시는 openai-php/client 저장소를 참고하세요.
테스트
OpenAI 파사드에는 API 응답을 가짜로 만들 수 있는 fake() 메서드가 있습니다.
가짜 응답은 fake() 메서드에 전달한 순서대로 반환됩니다.
모든 응답 클래스에도 fake() 메서드가 있어, 테스트 케이스에 필요한 파라미터만 지정해 응답 객체를 간편하게 만들 수 있습니다.
use OpenAI\Laravel\Facades\OpenAI;
use OpenAI\Responses\Responses\CreateResponse;
OpenAI::fake([
CreateResponse::fake([
'choices' => [
[
'text' => 'awesome!',
],
],
]),
]);
$response = OpenAI::responses()->create([
'model' => 'gpt-5',
'input' => 'PHP is ',
]);
expect($response->outputText)->toBe('awesome!');요청을 보낸 뒤에는 기대한 요청이 실제로 전송되었는지 검증하는 여러 메서드를 사용할 수 있습니다.
use OpenAI\Resources\Responses;
// completion 생성 요청이 전송되었는지 단언
OpenAI::assertSent(Responses::class, function (string $method, array $parameters): bool {
return $method === 'create' &&
$parameters['model'] === 'gpt-5' &&
$parameters['prompt'] === 'PHP is ';
});더 많은 테스트 예시는 openai-php/client 저장소를 참고하세요.
OpenAI PHP for Laravel은 **MIT 라이선스**로 배포되는 오픈소스 소프트웨어입니다.