본문 바로가기
Programming/Backend

[외부 연동] 엑셀(Excel) 파일을 ChatGPT API로 분석하는 방법(php framework)

by BitSense 2025. 3. 10.

PHP에서 ChatGPT API를 연동하여 사용하는 방법을 단계별로 정리해서 안내드리겠습니다.


1단계: 준비사항

  • OpenAI API Key 발급
    👉 OpenAI API 키 발급받기
  • PHP에서 cURL 확장이 활성화되어 있어야 합니다.
    • 보통 기본적으로 활성화되어 있습니다.

2단계: 간단한 PHP 코드 작성

아래 예시 코드는 ChatGPT API와 간단히 연동하는 방법을 보여줍니다.

예시 파일: chatgpt.php

 'gpt-3.5-turbo',
    'messages' => [
        ['role' => 'system', 'content' => '당신은 데이터를 분석하고 요약하는 전문가입니다.'],
        ['role' => 'user', 'content' => $prompt]
    ],
    'temperature' => 0.2
];

// cURL을 이용한 API 호출
$ch = curl_init('https://api.openai.com/v1/chat/completions');

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Content-Type: application/json',
    'Authorization: Bearer ' . $apiKey
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));

// API 응답 받기
$response = curl_exec($ch);

// 에러 처리
if (curl_errno($ch)) {
    echo 'API 요청 에러: ' . curl_error($ch);
    exit;
}

// 응답 JSON 파싱
$result = json_decode($response, true);

// ChatGPT 응답 출력
if (isset($result['choices'][0]['message']['content'])) {
    echo nl2br($result['choices'][0]['message']['content']);
} else {
    echo '응답에 오류가 있습니다: ' . $response;
}

curl_close($ch);

💡 주의:
실제로 사용 시, API Key(YOUR_API_KEY)는 꼭 본인의 키로 교체하세요!


3단계: 실제 엑셀 데이터를 PHP에서 다룰 때

PHP에서 엑셀 데이터를 읽어서 분석할 때는 PhpSpreadsheet 패키지를 사용하는 것이 편리합니다.

✅ PhpSpreadsheet 설치 (Composer 이용)

composer require phpoffice/phpspreadsheet

✅ 엑셀 파일 읽어서 ChatGPT API로 보내기 (완성 예시)

예시 파일명: excel_to_chatgpt.php

getActiveSheet();
$dataArray = $sheet->toArray();

// 배열 데이터를 텍스트로 변환
$textData = "";
foreach ($dataArray as $row) {
    $textData .= implode("\t", $row) . "\n";
}

// 프롬프트 작성
$prompt = "다음 엑셀 데이터를 분석하고 핵심 내용을 요약해주세요.\n\n" . $textData;

// API 요청 데이터 설정
$data = [
    'model' => 'gpt-3.5-turbo',
    'messages' => [
        ['role' => 'system', 'content' => '당신은 엑셀 데이터를 분석하고 요약하는 전문가입니다.'],
        ['role' => 'user', 'content' => $prompt]
    ],
    'temperature' => 0.2
];

// cURL을 이용한 API 호출
$ch = curl_init('https://api.openai.com/v1/chat/completions');

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Content-Type: application/json',
    'Authorization: Bearer ' . $apiKey
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));

// API 응답 받기
$response = curl_exec($ch);

// 에러 처리
if (curl_errno($ch)) {
    echo 'API 요청 에러: ' . curl_error($ch);
    exit;
}

// 응답 JSON 파싱
$result = json_decode($response, true);

// ChatGPT 응답 출력
if (isset($result['choices'][0]['message']['content'])) {
    echo nl2br($result['choices'][0]['message']['content']);
} else {
    echo '응답에 오류가 있습니다: ' . $response;
}

curl_close($ch);
  • 위 코드를 실행하면, 엑셀 파일(data.xlsx)의 내용을 읽어서 자동으로 ChatGPT API에 전달하고 결과를 받아 출력합니다.

사용 시 유의할 점

  • API 키 보안 주의
    • API 키를 별도의 보안 파일이나 환경변수에 저장하는 것이 권장됩니다.
  • 비용 관리
    • API 호출마다 비용이 부과되므로, 데이터 양을 적절히 제한하세요.
  • 엑셀 데이터 크기 제한
    • 너무 큰 엑셀 데이터를 한 번에 보내면 ChatGPT API에서 처리하지 못할 수 있습니다.
    • 이 경우 데이터를 나눠 보내거나, 중요한 부분만 추출하여 보내는 게 좋습니다.

이 방법으로 PHP에서 ChatGPT API를 연동하여 간단하면서도 강력한 데이터 분석 기능을 구현할 수 있습니다.

반응형