WinGyu_coder

Langchain 랭체인으로 챗봇 AI 서비스 제작하기. (1) GPT-3.5 turbo 모델 사용하기 본문

Prompt 프롬프트 개발자

Langchain 랭체인으로 챗봇 AI 서비스 제작하기. (1) GPT-3.5 turbo 모델 사용하기

WinGyu 2023. 12. 13. 23:09

우선 Langchain에서는 수 많은 거대 LLM 모델을 지원한다. 

가격이 가장 저렴한 GPT- 3.5 터보 모델을 사용하였다. 

 

from langchain.chat_models import ChatOpenAI

chat = ChatOpenAI()

 

아주 쉽다. 위처럼 코드를 입력하면 OpenAI 에서 제공하는 GPT 모델을 가져올수있다. 

위와 같은 코드를 사용할려면  GPT에 결제 카드를 등록하고 API 키를 가져와야한다. 이 부분은 다 알거라 생각하고 설명하지 않겠다.

필자는 .env에 API KEY 값을 넣어두었다. (OPENAI_API_KEY 라는 변수에 넣어줘야 자동 인식한다.)

 

 

 

모델을 불러왔으면 사용법은 아주 간단하다. 

chat.predict("Hello, what is your name?")

 

위와 같이 chat 을 사용할수있다. (영어를 사용하는 편이 좋다)

 

"Hello! I am an AI language model developed by OpenAI, and I don't have a personal name. You can simply refer to me as OpenAI Assistant. How can I assist you today?"

 

위 빨간 글씨가 chat 사용해서 나온 결과이다. 

 

 

 

OpenAI에서 제공하는 모델은 여러 값을 추가할수있는데 

temprature이란걸 사용할수있다.

chat = ChatOpenAI(temperature=0.3)

 

temperature는 모델의 창의성 수치를 넣을수있는데 값이 낮을수록 무작위성이 낮아진다. (값을 높게 잡으면 창의적인 대답이 나올수 있으나 원하는 대답이 안 나올수도 있다.)

 

 

그리고 대표적인 Message 사용법이다.

from langchain.schema import HumanMessage, AIMessage, SystemMessage

messages = [
    SystemMessage(content="You're a teacher and present your score"),
    AIMessage(content="I am a GPT teacher!"),
    HumanMessage(content="Sir, what is 30 plus 20?")
]


chat.predict_messages(messages=messages)

 

SystemMessage 는 시스템에게 보내는 메세지이다. (시스템에게 파인 튜닝 등을 할때 사용)

 

AIMessage 는 AI에게 답장을 받는 메세지이다.

 

HumanMessage 는 사람이 보내는 메세지이다.

 

아래 코드를 보면 

messages = [
    SystemMessage(content="You're a teacher and present your score"),
    AIMessage(content="I am a GPT teacher!"),
    HumanMessage(content="Sir, what is 30 plus 20?")
]

 

SystemMessage 시스템 메세지에 너는 선생님이라고 보냈다.

AI 에게 본인은 선생님이라 말하고 

 

30 더하기 20이라 질문해 보았다.

 

 

생각보다 말이 짫게 나오긴 했지만 원하는 대답이 나온 모습이다.

 

AIMessage(content='30 plus 20 equals 50.')

 

 

AI 시대가 찾아온만큼 AI를 통해 서비스를 개발해보자.