WinGyu_coder
Langchain 랭체인으로 챗봇 AI 서비스 제작하기. (1) GPT-3.5 turbo 모델 사용하기 본문
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를 통해 서비스를 개발해보자.