728x90
OpenAI의 gpt-3.5-turbo 채팅 모델을 PHP에서 cURL로 직접 호출하는 가장 기본적인 예제입니다. SDK 없이 REST API를 그대로 쓰는 방식이라, 어떤 언어로든 옮기기 쉽습니다.
PHP 예제 코드
핵심 요소 설명
- endpoint — 채팅 모델은
/v1/chat/completions를 사용합니다. (구형/v1/completions와 다름) - messages 배열 — 단순 문자열이 아니라 role(system/user/assistant) + content 객체의 배열입니다. 대화 맥락을 유지하려면 이 배열에 이전 주고받은 메시지를 계속 쌓아 보냅니다.
- Authorization 헤더 —
Bearer YOUR_API_KEY형식으로 인증합니다. - temperature — 0에 가까울수록 일관되고 결정적인 답변, 1에 가까울수록 다양하고 창의적인 답변.
- max_tokens — 응답 길이 상한. 입력+출력 토큰 합이 모델의 컨텍스트 한도를 넘지 않아야 합니다.
응답에서 답변만 꺼내기
curl_exec가 돌려주는 JSON에서 실제 답변 텍스트는 choices[0].message.content에 있습니다. 파싱하면:
$result = json_decode($output, true);
$answer = $result["choices"][0]["message"]["content"];
echo $answer;
실무 주의점
- API 키 보안 — 키를 소스에 하드코딩하지 말고 환경변수나 서버 설정으로 분리하세요. 프론트엔드(JS)에 노출하면 절대 안 됩니다.
- 에러 처리 — 실제 서비스에서는 HTTP 상태 코드 확인과 rate limit(429) 재시도 로직이 필요합니다.
- 모델 선택 — gpt-3.5-turbo는 당시 기준이며, 현재는 더 저렴하고 강력한 최신 모델들이 나와 있습니다. 최신 모델명은 OpenAI 모델 문서에서 확인하세요.
- 비용 — 호출량 × 토큰 수만큼 과금되므로, max_tokens와 프롬프트 길이를 관리하는 것이 곧 비용 관리입니다.
OpenAI API
An API for accessing new AI models developed by OpenAI
platform.openai.com
728x90
'푸닥거리' 카테고리의 다른 글
| CodeGPT 기능 활용 with vscode (0) | 2023.03.23 |
|---|---|
| 메타인지 교수법 (0) | 2023.03.13 |
| 2023년기준 일학습병행제 - 1 (0) | 2023.01.26 |
| .NET TLS versioncompilation targetFramework httpRuntime targetFramework (0) | 2022.08.02 |
| Spring Cloud를 활용한 MSA 설치 및 구성-2 (0) | 2022.07.24 |
댓글