📝Chat GPT API 사용하기
요즘 유명한 챗 지피티 API를 사용해보려한다
우선 공식 홈페이지(https://openai.com/)에 접속하여 로그인한다
Product > OverView 클릭하고 해당 페이지로 가서 Get started 버튼 클릭
Chat을 클릭해서 이용하는 방법과 예시 코드를 확인
사용법을 확인했다면 key를 발급 받습니다
우측 상단에 Personal 클릭, View API Keys를 클릭하여 해당 페이지로 이동 후
Create new secret key를 클릭하여 secret key를 발급 받아주고 이를 내 로컬에 저장
저장했다면 이제 공식문서를 확인하고 API를 호출해 사용해준다
위의 공식문서에 있는 파이썬 코드를 가져왔다(주석을 달아놨으니 참고)
아래 코드는 요청으로부터 사용자 아이디, 질문내용, 상담가의 유형을 추출하여
상담내용에 대한 답변을 생성하고 생성된 답변과 함께 DB에 상담내용과 질문내용, 유형을 저장하고
생성된 답변은 completion.choices[0].message["content"]로 반환하는 내 앱 서비스에 맞게 작성한 예시코드이다
+ 발급 받은 key값은 config 파일에 따로 저장해 사용한다
# chat-gpt
class ConsultationResource(Resource) :
@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}
]
)
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
'Restful API' 카테고리의 다른 글
[Restful API] CLOVA Summary를 이용한 리뷰 요약 API 만들기 (0) | 2023.04.03 |
---|---|
[Error] TypeError: post() got an unexpected keyword argument (0) | 2023.01.17 |
[Restful API] 이미지와 텍스트 포스팅하면 태그 가져오는 API만들기 (0) | 2023.01.16 |
[Restful API] 서버 개발 총 정리 (0) | 2023.01.16 |
[Restful API] 네이버 Open API 사용해보기 (0) | 2023.01.13 |
댓글