ChatGPT를 활용하기 위해서 OpenAI를 사용하는 방법도 있지만 다양한 채널에서 활용하기위해서는 API 방법을 추천드립니다.
OpenAI에서 API를 제공하고 있기에 손쉽게 API를 연결하여 업무에 활용 가능할 것입니다.
API를 활용하기 위해서는 기본적으로 OpenAI에 회원가입, 그리고 API Key를 생성하여야 합니다. 회원가입 후 계정 > ViewAPI Keys 메뉴를 통해 쉽게 발급 가능합니다.
자 이젠 Key를 발급받았다면 파이썬을 이용한 API 사용 예제를 설명드릴게요.
API를 이용해서 3개의 모델에 접근할 수 있습니다. (GPT-4, GPT3.5 Turbo, Text-davinci-003 (GPT3)) 각 모델에 호출하는 방법은 약간의 차이가 있답니다.
자 우선 API를 사용하기 위해서는 Openai를 import 시키셔야 합니다. 그리고 발급 받은 키값을 변수에 담아야 겠지요.
import openai
openai.api_key="키 값"
처음으로 사용할 API는 GPT3 Text-davinci-003 입니다. davinci 모델은 "질문" 과 "답변"의 형태입니다. 우리가 Prompt로 원하는 질문을 보내면 davinci 모델에서 답을 하는 케이스 입니다.
질문내용은 "프랑스 와인중 2~3만원 정도 가격대의 와인을 추천해주세요"로 할게요.
max_tokens는 GPT가 대답이 최대 설정한 토큰 내로 한정하는 것입니다. 토큰에 대해서 주의할 점은 하나의 질문과 답변에는 토큰 제한이 있습니다. GPT-3.5 Turbo, Davinci 모델은 4097의 토큰수로 제한됩니다. 주의할 점은 해당 토큰 수는 "질문"의 토큰 수만 포함되는게 아닌 답변내용의 토큰 수도 포함되는 것입니다. 즉 답변의 토큰수를 1000으로 하였다면 Davinci모델의 경우 질문의 토큰수는 3097내외여야 합니다.
- Text-Davinci-003모델
#24년 6월 현재 Text-Davinci-003 모델은 지원하지 않습니다.
토큰은 davinci 모델과 3.5 Turbo 모델을 사용할 때 주의해야할 부분이며 질문에 긴 내용이 들어갈 때 토큰으로 분리 시켜 여러번 질문하는 과정을 거쳐야 합니다. (GPT4 모델은 제한 토큰이 32,768 이라 자유롭게 이용가능)
max_tokens : GPT가 답변하는 문장의 토큰길이입니다. 길이에 따라 답변 내용이 달라집니다.
temerature : 답변의 다양성 정도를 뜻합니다.
값이 높을 수록 생성하는 문장이 다양하고 창의적인 결과물을 만들어 주며, 값이 낮을 수록 더 일관성 있는 문장을 생성합니다. 0의 값은 무한대지만 일반적으로 0.5~1.0 사이의 값이 주로 사용됩니다. 정보글일때는 낮은 온도를, 창의성이 필요한 경우에는 높은 온도를 설정하시면 되고 지정하지 않을 경우 기본 0.7의 온도를 가집니다.
prompt_text="프랑스 와인중 2~3만원 정도 가격대의 와인을 추천해주세요"
response = openai.chat.completion.create(
model="text-davinci-003",
prompt=prompt_text,
max_tokens=1000,
temperature=0
)
return response["choices"][0]["text"]
return 값을 json 현태로 제공되며 아래와 같이 결과값이 출력됩니다.
Response의 전체를 출력해보면 JSON구조를 확인할 수 있으며, 질문의 토큰 (Prompt_Tokens)와 답변의 토큰 (Completion_tokens)그리고 Total_Tokens를 확인 할 수도 있습니다.
- GPT-3.5 Turbo & GPT4
GPT3.5 Turbo 과 GPT4 모델 부터는 역할(Role)기반의 모델입니다. 역할(Role)는 요청을 통제하고 모델의 행동을 결정하는 중요한 역할을 하며, 모델이 대화에서 어떤 역할을 하는지 명시후, 대화의 흐름을 결정하는 요소입니다. 역할은 다음과 같이 3가지로 분류 됩니다.
1. 시스템 역할 (System Role) : 대화의 시작에서 대화의 흐름을 설정하고 관리하는 역할입니다. 일반적으로 시작 메시지나 지침을 제공하는데 사용됩니다. ("You are a helpful assistant", 당신은 언어 이해와 요약 훈련을 받은 고도의 숙련된 AI 입니다")
2. 사용자 역할(User Role) : 대화에 있어서 질문을 하는 역할입니다. 이곳이 Davinci model의 Prompt처럼 질문하고자 하는 애요의 Prompt가 들어가면 됩니다.
3. Assistant 역할: 질문에 답변을 하는 역할이라고 보시면 됩니다.
System_Role="당신은 고도로 숙련된 프랑스 와인 소물리에로 친절하게 와인을 추천해 주고 소개를 해줍니다"
Prompt ="가성비 좋은 스페인와인 3개와 특징을 소개해줘요"
response = openai.chat.completion.create(
model="gpt-3.5-turbo",
messages=[
{"role": "system", "content": System_Role},
{"role": "user", "content": Prompt},
],
max_tokens=1000,
temperature=1
)
return response['choices'][0]['message']['content']
반환되는 원문 JSON 값은아래와 같으며, 대답을 출력하기 위해서는 response['choices'][0]['message']['content'] 값을 반환하시면 됩니다.
{
"id": "xxxxxxxxxxxxxxxxxxxxxxxxx",
"object": "chat.completion",
"created": 1697093300,
"model": "gpt-3.5-turbo-0613",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "\ubb3c\ub860\uc785\ub2c8\ub2e4!...... "
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 92,
"completion_tokens": 749,
"total_tokens": 841
}
}
가성비 좋은 스페인와인 3개와 특징을 소개해줘요에 대한 gpt-3.5-turbo 모델의 답변입니다.
물론, 스페인 와인 중 가성비 좋은 와인을 몇 가지 추천해드리겠습니다.
1. 리오하 와인 (Rioja wine)
- 리오하 지역에서 생산되는 스페인 와인으로 가장 잘 알려진 와인입니다.
- 보통 테마처럼 풍부한 맛과 아로마, 부드럽고 균형 잡힌 탄닌이 특징이며, 장기 저장이 가능합니다.
- 주로 레드와인으로 생산되며, 특히 테마는 레드와인인 '테마 레소르바 (Crianza)', '그란 레소르바 (Gran Reserva)'가 인기가 있습니다.
2. 프리오란차 와인 (Priorat wine)
- 카탈루냐 지역에서 생산되는 프리오란차 와인은 스페인에서 가장 명성 있는 와인 중 하나입니다.
- 보통 스페인 콘카 델 모나스트렐 (Conca de Barberà) 지역에서 생산되며, 질좋은 포도와 잔디, 화약 등을 혼합하여 뿌리며, 이로 인해 풍부하고 섬세한 향과 징후가 나타납니다.
- 풍성하고 강렬한 맛을 가지고 있으며, 특히 수렵기 오래된 와인은 부드럽고 균형 잡힌 탄닌을 가지고 있습니다.
3. 알발레사 와인 (Albariño wine)
- 갈리시아 지역에서 생산되는 알발레사 와인은 스페인에서 가장 유명한 화이트 와인 중 하나입니다.
- 상쾌한 과실향과 레몬, 라임, 청렴한 바닷속 제품 같은 특유의 미네랄 향을 가지고 있습니다.
- 부드러운 산도와 새콤한 맛으로 알려져 있으며, 해산물과의 조합이 특히 잘 어울립니다.
이러한 스페인 와인들은 가격 대비 맛과 품질이 우수하며, 다양한 음식과 잘 어울립니다. 즐거운 와인 탐험을 즐기시길 바랍니다!
동일한 역할과 질문을 GPT 4에 전달해볼까요? 조금 다른 결과가 나왔답니다. 우선 우리는 System의 역할을 "프랑스 와인 전문가"로 지정했지만 "스페인 와인"을 추천해달라고 했습니다. 이에 본인의 역할에 대한 답변한 내용이 추가 되었네요.
죄송합니다, 제가 프랑스 와인 전문가로서, 프랑스 와인에 대해 전문적으로 추천하고 소개해 드릴 수 있습니다. 하지만, 스페인 와인은 제 전문 분야가 아닙니다. 그래도 국제 와인 소뮬리에로서 스페인 와인에 대한 일반적인 지식은 가지고 있으니, 아래와 같이 추천해 드립니다.
1. "라리오하 그란 레세르바" - 이 와인은 스페인에서 가장 유명하고 세계적으로 인정받은 라리오하 지역에서 생산됩니다. 그란 레세르바는 최소 2년 동안 오크통에서 숙성하고, 바틀에 담기 전 최소 3년 동안 한 번 더 숙성된 와인을 말합니다. 이 와인은 무게감 있고 풍부한 베리 향, 오크의 강한 존재감과 섬세한 바닐라 향을 지니고 있습니다.
2. "트로스 로블랏" - 이는 미국에서도 인기가 많은 와인으로 스페인의 카탈루니아 지역에 위치한 프리오라트 지역에서 생산됩니다. 이 와인은 과일향이 풍부하고 바닐라, 향신료, 초콜릿 향이 뒤를 이어서 느껴진다는 특징이 있습니다. 가성비가 뛰어나기 때문에 스페인 와인 입문용으로 적합하다고 할 수 있습니다.
3. "모네스트렐 로조" - 이 와인은 스페인 남부 지역의 특별한 품종, 모네스트렐로 만들어집니다. 이 와인은 과일향이 강하면서도 가벼운 몸짓이 특징입니다. 바비큐와 같은 식사와 잘 어울립니다. 가격이 저렴하면서도 퀄리티가 좋아 가성비가 높습니다.
이 와인들은 모두 일반적으로 가성비가 좋다고 알려져 있으며, 각각의 특성이 다양한 식사와 잘 어울립니다. 이 중에서 취향에 맞는 와인을 시도해보시길 권장드립니다.
간단하게 GPT3(Davinci), GPT-3.5 Turbo,GPT4의 API에 대하여 알아봤습니다.모두 지속적인 사용을 위해서는 결재를 해야한다는게 중요. 그리고 23년 10월기준으로 GPT4 API를 활용할 수 있는 조건이 있으니 꼭 확인 하시기 바랍니다.
'IT > CHATGPT' 카테고리의 다른 글
GPT- Prompt(프롬프트)란 무엇인가!! (1) | 2024.04.02 |
---|---|
[ChatGPT] 나만의 GPT 만들기-GPTs (1) | 2024.01.14 |
[ChatGPT] Python 토큰(Token) 계산하기 (0) | 2023.12.18 |
[ChatGPT] Token (Tokenizer) 이란? (0) | 2023.12.18 |
[ChatGPT] 음성 회의록 만들기-Whisper (0) | 2023.10.19 |
댓글