[랭체인] 간단한 챗봇 만들기steemCreated with Sketch.

in #kr7 days ago (edited)

안녕하세요, 여러분! 오늘은 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()

이 코드는 다음과 같은 일을 합니다:

  1. 챗봇에게 친한 친구처럼 대화하고 이모지를 사용하라고 지시합니다.
  2. 사용자의 입력을 받아 처리합니다.
  3. OpenAI의 ChatGPT 모델을 사용하여 응답을 생성합니다.
  4. 생성된 응답을 문자열로 변환합니다.

챗봇과 대화하기

이제 챗봇과 대화를 나눠볼 차례입니다! 다음 코드로 간단한 대화 루프를 만들 수 있습니다:

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을 사용하여 간단하면서도 재미있는 챗봇을 만들어보았습니다. 이 챗봇은 친구처럼 대화하고 이모지를 사용하여 더욱 친근하게 느껴집니다.

이 예제를 바탕으로 여러분만의 창의적인 챗봇을 만들어보는 건 어떨까요? 시스템 프롬프트를 변경하거나, 다른 언어 모델을 사용하거나, 추가적인 기능을 넣어볼 수 있을 것 같아요.

즐거운 코딩 되세요! 🚀💻

#LangChain

Posted using Obsidian Steemit plugin

Coin Marketplace

STEEM 0.17
TRX 0.13
JST 0.029
BTC 56608.36
ETH 2976.28
USDT 1.00
SBD 2.15