본문으로 건너뛰기

© 2026 Molayo

Dev.to헤드라인2026. 06. 15. 05:56

Laravel에 OpenAI API를 통합하는 방법 (2026년 완전 가이드)

요약

Laravel 프레임워크에 OpenAI API를 통합하는 단계별 가이드를 제공합니다. 라이브러리 설치부터 서비스 클래스 구현, 스트리밍 응답 처리, 에러 핸들링 및 테스트 방법까지 상세히 다룹니다.

핵심 포인트

  • openai-php/laravel 라이브러리를 통한 간편한 통합
  • Service Class를 활용한 깔끔한 컨트롤러 구조 설계
  • SSE(Server-Sent Events)를 이용한 실시간 스트리밍 구현
  • OpenAI::fake()를 활용한 효율적인 단위 테스트 방법

Laravel에 OpenAI API를 통합하는 방법 (2026년 완전 가이드)

Laravel은 가장 인기 있는 PHP 프레임워크이며, 공식 openai-php/client 라이브러리를 사용하면 OpenAI를 추가하는 과정이 매우 간단합니다. 이 가이드는 설치, 서비스 클래스 (Service Class), 채팅 컨트롤러 (Chat Controller), 스트리밍 (Streaming), 에러 핸들링 (Error Handling) 및 테스트 (Testing)를 다룹니다.

요구 사항

  • Laravel 10 또는 11, PHP 8.1 이상, Composer, OpenAI API 키

1단계: 설치

composer require openai-php/laravel
php artisan vendor:publish --provider="OpenAI\Laravel\ServiceProvider"

2단계: .env

OPENAI_API_KEY=sk-proj-...

3단계: OpenAIService

namespace App\Services;
use OpenAI\Laravel\Facades\OpenAI;

...

4단계: ChatController

public function send(Request $request): JsonResponse
{
    $messages = $request->input('history', []);
...

5단계: 스트리밍 SSE (Streaming SSE)

return response()->stream(function () use ($messages) {
    foreach ($this->openAI->stream($messages) as $chunk) {
        echo "data: " . json_encode(['chunk' => $chunk]) . "\n\n";
...

에러 핸들링 (Error Handling)

use OpenAI\Exceptions\ErrorException;
use OpenAI\Exceptions\TransporterException;

...

테스트 (Testing)

OpenAI::fake([CreateResponse::fake(['choices' => [['message' => ['content' => 'Hi!']]]])]);
$reply = app(OpenAIService::class)->chat([['role' => 'user', 'content' => 'Hello']]);
$this->assertEquals('Hi!', $reply);

요약

  • composer require openai-php/laravel + .env 파일에 OPENAI_API_KEY 설정
  • 서비스 클래스 (Service Class)를 사용하여 컨트롤러를 깔끔하게 유지; response()->stream() + SSE를 통한 스트리밍
  • 실제 API를 호출하지 않고 단위 테스트 (Unit Test)를 수행하기 위한 OpenAI::fake() 사용

원문은 kalyna.pro에서 처음 게시되었습니다.

AI 자동 생성 콘텐츠

본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0