1. 사용법 확인하기.
위 공식 홈페이지에 접속하고 로그인을 합니다.
OpenAI
Introducing GPT-4, OpenAI’s most advanced system
openai.com

Product -> OverView -> Get started를 눌러줍니다.

제가 사용할 고민상담 기능은 Chat 인공지능을 이용해야하기 때문에 클릭하여 들어가서 이용하는 방법과, 예시 코드를 확인합니다.
2. Key 발급받기

우측 상단에 Personal을 클릭한 후 View API Keys를 클릭하여 들어가줍니다.

Create new secret key를 클릭하여 secret key를 발급 받아주고 이를 내 로컬에 저장해줍니다.
이후 작업은 VSC에서 Python코드를 이용해서 작업하겠습니다.
3. 공식 문서를 보고 API 호출해보기

Chat completions를 눌러 들어온 이후 채팅 기반 언어 모델에 대한 API 호출을 만드는 방법을 알 수 있는 밑줄친 링크가 걸려있는 문장을 클릭해줍니다.

들어오게 되면 오른 쪽과 같은 예시 코드를 확인할 수 있습니다.
1번 밑줄은 본인의 key값을 입력하면 됩니다.
2번 밑줄은 모델을 선택해주면 됩니다. 제가 이용할 모델은 gpt-3.5-trubo 모델입니다.
3번 밑줄은 user가 Hello라고 입력한 예시 코드입니다.
사용법을 알았으니 아래에서 직접 코드를 작성해보겠습니다.
4. 내 앱의 서비스에 적용하기위한 API 만들기
# chat-gpt
class ConsultationResource(Resource) :
# 고민 상담 API ( 질문과 응답을 DB에 저장 )
@jwt_required()
def post(self) :
# 상담 기능
userId = get_jwt_identity()
data = request.get_json()
content = data["question"]
type = data["type"]
openai.api_key = Config.openAIKey
# 유능하고 친절한 고민상담가
if type == 0:
system_message = "You are a competent and kind trouble counselor who listens to people's concerns and provides helpful advice."
# 객관적이고 냉철한 고민상담가
elif type == 1:
system_message = "You are an objective and cool-headed trouble counselor who listens to people's concerns and provides rational advice."
# 편안한 친구같은 고민상담가
else: # counselor_type == 2
system_message = "You are a comforting friend-like trouble counselor who listens to people's concerns and provides warm and supportive advice."
completion = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[
{"role": "system", "content": system_message},
{"role": "user", "content": content}
]
)
print(completion.choices[0].message['content'].strip())
response_message = completion.choices[0].message['content'].strip()
# DB에 저장
try :
connection = get_connection()
query = '''insert into consultation
(userId,question,answer,type)
values
(%s,%s,%s,%s)'''
record = (userId,content,response_message,type)
cursor = connection.cursor()
cursor.execute(query,record)
connection.commit()
cursor.close()
connection.close()
except Error as e :
print(e)
cursor.close()
connection.close()
return{'error':str(e)},500
return {'result':'success'},200
key 값은 config.py에 따로 작성한 이후 작성한 코드입니다.
요청으로부터 사용자 아이디, 질문내용, 상담가의 유형을 추출하여
상담내용에 대한 답변을 생성하고 생성된 답변과 함께 DB에 상담내용과 질문내용, 유형을 저장하는 코드입니다.
생성된 답변은 completion.choices[0].message["content"]로 반환합니다.
이용해보고 놀란 점은 답변을 하는 문장의 분위기를 정할 수 있다는 점이 굉장히 놀라웠습니다.
제가 위에서 작성한 코드에서는 유능하고 친절한 고민상담가, 객관적이고 냉철한 고민상담가, 편안한 친구같은 고민상담가로 system을 정해주고 코드를 작성했을 때 정해준 분위기의 답변을 반환받는 것을 확인할 수 있었고, 실제로 앱을 개발할 때 정말 많이 사용될 기능 같아서 재밌었습니다.

위 사진은 제가 개발한 앱에서 gpt를 이용한 부분입니다.
'Rest API' 카테고리의 다른 글
CLOVA Summary를 활용해 리뷰 요약 API 만들기 (0) | 2023.04.03 |
---|---|
AWS Rekognition 얼굴비교, 이미지 내 텍스트 추출하기 (0) | 2023.02.21 |
Naver Open API - 뉴스 검색 API , 파파고 번역 API 사용하기 (0) | 2023.01.13 |
AmazonRekognition을 사용하여 객체탐지(Object detection) / 사진과 문장을 업로드하는 SNS의 Posting API 개발 (0) | 2023.01.13 |
AmazonRekognition을 사용하여 객체탐지(Object detection) / 자동 태그 API 개발 (0) | 2023.01.13 |