chatGPT(openAi) python 소스 코드 예제

2023. 5. 26. 14:57it

반응형

 

open ai 로 챗봇을 만들어야 하는 상황이 드디어 오고 말았다. 기존 챗봇의 소스코드가 개똥같고, 여기저기 스파게티처럼 꼬여 있어서, 새로 만들어야 하는 상황이다. 그래서 오늘은 가볍게 chatgpt를 활용해서 가벼운 채팅 프로그램을 만들어 볼까한다. 

 

728x90

 

해당 소스코드를 만들기 전에, 먼저 api key를 발급 받아야 한다. 나는 api 키가 발급 받아졌다는 가정한 뒤 글을 쓰겠다. 

 

import openai

openai.api_key = '=========key========'


class chatbot():
    memory_size = 5
    gpt_standard_messages = [ {"role": "system", "content": "You are a helpful assistant. Your name is BTS. The structure of the conversation should be highly visible in the main points of the conversation / summary and examples (3 types) - to each explanation / concluding conclusion.]"} ]  
    
    
    def set_memory_size(self, memory_size ) :
        self.memory_size = memory_size
        
    
    def gpt_send_msg(self, question:str ) : 
        # 메시지 설정하기
        print( "사용자 : ", question )
        self.gpt_standard_messages.append( {"role": "user", "content": question} )

        # ChatGPT API 호출하기
        response = openai.ChatCompletion.create(
            model="gpt-3.5-turbo",
            messages=self.gpt_standard_messages,
             temperature=0.8  # 원하는 temperature 값으로 설정 (기본값은 0.8)
        )
        
        print
        answer = response['choices'][0]['message']['content']
        self.gpt_standard_messages.append( {"role": "assistant", "content": answer}  )
        if self.memory_size*2 < len( self.gpt_standard_messages ): 
            self.gpt_standard_messages.pop(1)
            self.gpt_standard_messages.pop(1)
            
        print( "GPT : ", answer)
#         return answer

 

소스코드는 심플하다. 역시나 파이썬은 할게 없다. 

 

반응형

 

1. gpt_standard_messages = [ {"role": "system", "content": "You are a helpful assistant. Your name is BTS"} ]  설정이 없으면, 아래와 같이 이어 말하기를 한다. 그러니, 너가 챗봇이라는 걸, 명시하면 대답을 잘한다. 

2. memory_size = 5 는 최신 대화 목록 5개를 기억해, 답변을 이어가게 만들는 작업이다. 해당 세팅이 없으면, 답변이 뚝뚝 끊겨, 질문과 답변의 연속성이 사라진다. 

 

3. set_memory_size(self, memory_size ) 해당 함수는 답변을 저장하는 사이즈이다, 디폴트는 5지만, 사용자가 변경할 수 있다. 

 

4. gpt_send_msg(self, question:str ) 는 GPT에서 받은 답변을 기억하고 사용자에게 보여주는 함수이다. 

 

5. 사용 법

5-1. 먼저 클래스를 선언한다. 

chatbot = chatbot()

 

5-2. get_send_msg () 함수에 자신이 chatgpt에게 물어보고 싶은걸 질문한다. 

chatbot.get_send_msg("안녕?")

 

 

심플한 코드이지만, 잘 작동한다.

 

아래 소스코드는 예시이다. 

 

 

 

반응형