ChatGPT API란?
ChatGPT API는 OpenAI의 GPT-3.5 모델을 기반으로 한 API 서비스입니다. 이를 통해 다음과 같은 일을 수행할 수 있습니다:
- 텍스트 기반 대화: 사용자가 입력한 텍스트에 대한 응답을 생성합니다.
- 질문 응답: 사용자의 질문에 대한 답변을 생성하고 지식을 공유합니다.
- 텍스트 생성: 특정 주제나 스타일의 텍스트를 생성하거나 문장을 완성합니다.
ChatGPT API를 사용하는 방법
1. API Key 획득
먼저 OpenAI의 ChatGPT API를 사용하기 위해 API 키를 획득해야 합니다. API 키는 인증에 사용되며, OpenAI 웹사이트에서 발급받을 수 있습니다.
2. API 요청 및 응답 처리
API 키를 획득한 후, API를 호출하여 대화나 질문에 대한 응답을 얻을 수 있습니다. 이때 API 응답에는 여러 가지 선택사항이 포함됩니다. 일반적으로 "choices[0].message.content"를 사용하여 가장 적절한 답변을 추출합니다.
왜 choices[0].message.content인가?
response.data.choices 배열은 API 호출에 대한 다양한 응답 선택사항을 담고 있습니다. 즉, choices[0]의 의미는 GPT가 처음으로 하는 답변이며, choices[1]은 두번째 답변이 됩니다. 직접 ChatGPT를 사용할 때의 Regenerating 기능을 생각하면 됩니다.
이는 API 호출 1회 당 여러가지 답변을 얻고자 하는 경우에 사용할 수 있습니다.
예를 들어 response.data.choices[2].message.content는 API 응답에서 세 번째 선택사항의 답변을 추출합니다.
3. 특정 언어나 주제에 대한 설정
ChatGPT API는 다양한 언어와 주제에 대한 설정을 지원합니다. 사용자의 입력에 따라 언어를 감지하고, 그에 따른 답변을 생성합니다.
기본적으로 영어(en)을 사용하기에, 원하는 언어로 설정하려면 language 파라미터를 사용하여 해당 언어 코드를 지정하면 됩니다. 예제는 한국어로 설정하는 javascript 코드입니다.
const { OpenAIApi } = require("openai");
// OpenAI API 키 설정
const apiKey = "YOUR_API_KEY_HERE";
const openai = new OpenAIApi({ key: apiKey });
// 언어와 주제 설정
const language = "ko"; // 한국어 설정
const topic = "과학에 대해 설명해줘"; // 주제 설정
// API 호출
openai.createCompletion({
engine: "text-davinci-003",
prompt: `${topic}에 대해 ${language}로 글을 쓰세요.`, // 언어와 주제를 프롬프트에 포함
max_tokens: 100, // 생성할 텍스트의 최대 길이
})
.then((response) => {
const generatedText = response.choices[0].text;
console.log("Generated Text:");
console.log(generatedText);
})
.catch((error) => {
console.error("Error:", error);
});
GPT API를 사용하여 특정 주제에 대한 내용을 생성하려면, 입력 프롬프트(prompt)나 지시(instruction)를 사용하여 주제를 명확하게 지정해야 합니다. 위의 예시처럼, "과학에 대해 설명해줘"라는 프롬프트를 사용하여 과학 주제에 대한 내용을 생성하도록 지시할 수 있습니다.
API 호출 예시
const axios = require("axios");
const apiKey = "YOUR_API_KEY";
async function generateText() {
const prompt = "Translate the following English text to French: 'Hello, world.'";
const maxTokens = 50;
try {
const response = await axios.post(
"https://api.openai.com/v1/engines/text-davinci-003/completions",
{
prompt,
max_tokens: maxTokens,
},
{
headers: {
Authorization: `Bearer ${apiKey}`,
},
}
);
console.log(response.data.choices[0].text);
} catch (error) {
console.error("Error:", error.response.data);
}
}
generateText();
OpenAI API와 axios 라이브러리의 차이점
OpenAIApi와 같은 전용 라이브러리는 여러 API 호출을 관리하고 API 인증 등의 복잡한 작업을 단순화하기 위해 사용됩니다. 하나의 API 호출만을 수행하는 경우, 일반적으로 axios와 같은 HTTP 요청 라이브러리를 사용하는 것이 더 간단하고 효율적입니다.
OpenAI API
- OpenAIApi는 OpenAI의 API를 사용하기 위한 JavaScript 라이브러리입니다. OpenAI API를 사용하여 인공 지능 모델을 호출하고 텍스트 생성 및 자연어 처리 작업을 수행하는 데 사용됩니다.
- OpenAIApi는 OpenAI API와 상호 작용하기 위해 특수하게 설계되었으며, OpenAI API에 대한 토큰 및 인증을 관리하고 API 호출을 단순화하는 데 도움을 줍니다.
axios
- axios는 HTTP 요청을 수행하기 위한 JavaScript 라이브러리입니다. axios는 웹 서버로 HTTP 요청을 보내고 응답을 받는 데 사용됩니다. 주로 RESTful API와 상호 작용하거나 원격 서버와 데이터 통신에 사용됩니다.
- axios는 OpenAI API와 같은 외부 API를 호출하거나 서버 간 통신에 사용할 수 있습니다.