ChatGPT를 PHP와 연동하는 방법 (2026 완전 가이드)

발행: (2026년 6월 11일 PM 05:42 GMT+9)
2 분 소요
원문: Dev.to

출처: Dev.to

How to Integrate ChatGPT with PHP (Complete Guide 2026) 표지 이미지

              [![Serhii Kalyna](https://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3919650%2F44c55224-1c4c-4ef8-9544-d23b5d5d18f2.png)](https://dev.to/kalyna_pro)
              
              
            
      

      
            
            

PHP와 ChatGPT 통합 방법 (2026년 완전 가이드)

이 가이드에서는 모든 접근 방식을 다룹니다: 공식 PHP SDK, 순수 cURL, 대화 기록, 스트리밍 SSE, 그리고 동작하는 채팅 폼.

옵션 A: 공식 SDK

composer require openai-php/client
$client = OpenAI::client(getenv('OPENAI_API_KEY'));
$response = $client->chat()->create([
    'model' => 'gpt-4o-mini',
    'messages' => [['role' => 'user', 'content' => 'Hello!']],
]);
echo $response->choices[0]->message->content;

옵션 B: 순수 cURL

$ch = curl_init('https://api.openai.com/v1/chat/completions');
curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => json_encode(['model' => 'gpt-4o-mini', 'messages' => [['role' => 'user', 'content' => $msg]]]),
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => ['Content-Type: application/json', 'Authorization: Bearer ' . $key],
]);
$data = json_decode(curl_exec($ch), true);
echo $data['choices'][0]['message']['content'];

대화 기록

session_start();
$_SESSION['messages'][] = ['role' => 'user', 'content' => $input];
$response = $client->chat()->create(['model' => 'gpt-4o-mini', 'messages' => $_SESSION['messages']]);
$reply = $response->choices[0]->message->content;
$_SESSION['messages'][] = ['role' => 'assistant', 'content' => $reply];

스트리밍 SSE

header('Content-Type: text/event-stream');
$stream = $client->chat()->createStreamed(['model' => 'gpt-4o-mini', 'messages' => $messages]);
foreach ($stream as $r) {
    $delta = $r->choices[0]->delta->content;
    if ($delta) { echo "data: " . json_encode(['chunk' => $delta]) . "\n\n"; ob_flush(); flush(); }
}
echo "data: [DONE]\n\n";

오류 처리

use OpenAI\Exceptions\ErrorException;
use OpenAI\Exceptions\TransporterException;
try {
    $reply = $client->chat()->create([...])->choices[0]->message->content;
} catch (ErrorException $e) { /* API 오류 */ }
  catch (TransporterException $e) { /* 네트워크 오류 */ }

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

0 조회
Back to Blog

관련 글

더 보기 »