왕현성
코딩발자취
왕현성
전체 방문자
오늘
어제
  • 코딩 (277)
    • Python (71)
    • Java (16)
    • MySQL (34)
    • 인공지능 (48)
      • 머신러닝 (16)
      • 딥러닝 (32)
    • 영상처리 (4)
    • Rest API (21)
    • Android Studio (25)
    • streamlit (13)
    • DevOps (22)
      • AWS (9)
      • PuTTY (5)
      • Git (4)
      • Serverless (2)
      • Docker (2)
    • IT 기술 용어 (6)
    • 디버깅 ( 오류 해결 과정 ) (17)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • unsupervised
  • 영상처리
  • 의료이미징
  • pytorch
  • 딥러닝
  • numpy
  • alibidetect
  • OpenCV
  • matplotlib
  • yolov8
  • maskimage
  • 영상기술
  • 기상탐사
  • ckpt_file
  • tune()
  • encoding='utf-8'
  • PYTHON
  • 컴퓨터비전
  • alibi-detection
  • UnboundLocalError
  • PIL
  • labelme UnocodeDecodeError
  • imageprocessing
  • labelme
  • ComputerVision
  • get_long_description
  • TensorFlow
  • pip install labelme
  • 비지도학습
  • 영상처리역사

최근 댓글

최근 글

티스토리

250x250
hELLO · Designed By 정상우.
왕현성

코딩발자취

chatGPT API(gpt-3.5-turbo)를 활용한 상담기능 서비스 개발
Rest API

chatGPT API(gpt-3.5-turbo)를 활용한 상담기능 서비스 개발

2023. 4. 3. 13:01
728x90

1. 사용법 확인하기.

 

https://openai.com/

위 공식 홈페이지에 접속하고 로그인을 합니다.

 

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
    'Rest API' 카테고리의 다른 글
    • CLOVA Summary를 활용해 리뷰 요약 API 만들기
    • AWS Rekognition 얼굴비교, 이미지 내 텍스트 추출하기
    • Naver Open API - 뉴스 검색 API , 파파고 번역 API 사용하기
    • AmazonRekognition을 사용하여 객체탐지(Object detection) / 사진과 문장을 업로드하는 SNS의 Posting API 개발
    왕현성
    왕현성
    AI 머신비전 학습일지

    티스토리툴바