본문 바로가기
인공지능/LangChain

[LangChain] 공식문서 Build a Chatbot 실습 (1)

by 이준언 2024. 7. 25.

오늘은 LangChain 공식 홈페이지에서 챗봇을 만드는 실습을 해보려고 합니다.

 

저는 주피터 노트북을 사용해서 실습을 진행해보았습니다.

 

Setup

 

먼저 세팅 과정입니다.

 

필요한 라이브러리를 설치해줍니다. 

!pip install langchain

 

그리고 실습을 위해서는 OpenAI의 API가 필요합니다. 다음 링크로 가셔서 가입을 한 후, 해외 결제가 가능한 카드를 등록하시면 API를 받아서 사용하실 수 있습니다. 카드 등록을 하지 않으면 API 키를 입력해도 에러가 발생합니다.

 

https://platform.openai.com/api-keys

 

API를 발급 받으셨다면 다음 코드에 API 키를 입력하시면 됩니다.

import getpass
import os

os.environ["LANGCHAIN_TRACING_V2"] = "true"
os.environ["LANGCHAIN_API_KEY"] = getpass.getpass()

 

QuickStart

 

다음은 모델을 불러와서 사용하는 방법을 실습해보겠습니다.

 

langchain-openai 라이브러리를 설치 및 업데이트해주고, 불러와줍니다. 이후 다음과 같이 모델을 'gpt-3.5-turbo' 로 설정해줍니다.

 

!pip install -qU langchain-openai

from langchain_openai import ChatOpenAI

model = ChatOpenAI(model="gpt-3.5-turbo")

 

모델 설정을 마쳤다면 이제 .invoke 명령어를 사용하여 챗봇에게 질문을 할 수 있습니다. 

from langchain_core.messages import HumanMessage

model.invoke([HumanMessage(content="Hi! I'm Juneon. How are you?")])
model.invoke([HumanMessage(content="Tell me about you")])

 

이렇게 질문을 하면 다음과 같은 결과가 출력됩니다. 

 

하지만 이 모델은 기존 대화를 기억하지 못하고, 대화의 맥락을 기억하지 못합니다.

 

이를 해결하기 위해서는 다음과 같이 AIMessage 메서드를 통해 대화의 맥락을 입력해주어야합니다.

from langchain_core.messages import AIMessage

model.invoke(
    [
        HumanMessage(content="Hi! I'm Juneon. How are you?"),
        AIMessage(content="Hello Juneon! I'm just a virtual assistant, so I don't have feelings, but I'm here to help you with anything you need. How can I assist you today?"),
        HumanMessage(content="What's my name?"),
    ]
)

 

다음에는 간결한 출력을 얻을 수 있는 방법을 실습해보겠습니다.