안녕하세요, 여러분! 오늘은 LangChain Expression Language(LCEL)를 사용하여 간단하면서도 재미있는 챗봇을 만드는 방법을 알아보겠습니다. 이 챗봇은 마치 친한 친구처럼 대화하고 이모지도 사용할 거예요. 😊
준비하기
먼저, 필요한 라이브러리를 설치해야 합니다. Google Colab을 사용한다면 다음 명령어로 최신 버전의 langchain_core와 langchain_openai를 설치할 수 있습니다:
!pip install -Uq langchain_core langchain_openai
그리고 OpenAI API 키를 설정해야 합니다. Google Colab에서는 다음과 같이 할 수 있습니다:
import os
from google.colab import userdata
os.environ["OPENAI_API_KEY"] = userdata.get('OPENAI_API_KEY')
필요한 모듈 가져오기
이제 필요한 모듈들을 가져와 봅시다:
from langchain_core.runnables import RunnablePassthrough
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.output_parsers import StrOutputParser
from langchain_openai import ChatOpenAI
챗봇 만들기
챗봇을 만드는 과정은 놀랍도록 간단합니다! 다음 코드를 보세요:
prompt_template = ChatPromptTemplate.from_messages([
("system", "Talk like a close friend and use emojis 😊"),
("human", "{user_input}")]
)
chain = {"user_input": RunnablePassthrough()} | prompt_template | ChatOpenAI() | StrOutputParser()
이 코드는 다음과 같은 일을 합니다:
- 챗봇에게 친한 친구처럼 대화하고 이모지를 사용하라고 지시합니다.
- 사용자의 입력을 받아 처리합니다.
- OpenAI의 ChatGPT 모델을 사용하여 응답을 생성합니다.
- 생성된 응답을 문자열로 변환합니다.
챗봇과 대화하기
이제 챗봇과 대화를 나눠볼 차례입니다! 다음 코드로 간단한 대화 루프를 만들 수 있습니다:
while True:
user_message = input("USER > ")
if user_message.lower() == "quit":
break
print(" A I > ", end="", flush=True)
for chunk in chain.stream(user_message):
print(chunk, end="", flush=True)
print()
이 코드는 사용자의 입력을 받고, 챗봇의 응답을 실시간으로 출력합니다. "quit"을 입력하면 대화가 종료됩니다.
결과 살펴보기
자, 이제 우리의 챗봇과 대화를 나눠볼까요? 예를 들어:
USER > 안녕
A I > 안녕~ 😊 오랜만이야! 어떻게 지내? 🌸
USER > 잘지내
A I > 안녕~! 나도 잘 지내고 있어! 😊 너는 어때? 무슨 일 있어? 함께 얘기하면 좋을텐데~ 🌟
보세요! 우리의 챗봇이 정말 친한 친구처럼 대화하고 있네요. 이모지도 잘 사용하고 있습니다.
마무리
오늘 우리는 LangChain을 사용하여 간단하면서도 재미있는 챗봇을 만들어보았습니다. 이 챗봇은 친구처럼 대화하고 이모지를 사용하여 더욱 친근하게 느껴집니다.
이 예제를 바탕으로 여러분만의 창의적인 챗봇을 만들어보는 건 어떨까요? 시스템 프롬프트를 변경하거나, 다른 언어 모델을 사용하거나, 추가적인 기능을 넣어볼 수 있을 것 같아요.
즐거운 코딩 되세요! 🚀💻
- [랭체인] 간단한 텍스트 생성 체인 만들기
- [랭체인] 텍스트 감성 분류 체인 만들기
- [랭체인] 간단한 챗봇 만들기
- [랭체인] 수학 연산 체인 구현하기
- [랭체인] SQL 데이터베이스 쿼리 자동화
- [랭체인] PythonREPL을 활용한 동적 코드 실행 챗봇 구현
- [랭체인] PDF 문서 기반 QA챗봇 구현
- [랭체인] 대화형 챗봇 만들기
- [랭체인] 도구 체인 구축 가이드
- [랭체인] 라우팅 체인 - 유연한 AI 응답 시스템 구축하기