[랭체인] 간단한 텍스트 생성 체인 만들기steemCreated with Sketch.

in #kr8 days ago (edited)

안녕하세요, 여러분! 오늘은 LangChain의 새로운 기능인 LangChain Expression Language (LCEL)를 사용하여 간단한 텍스트 생성 체인을 만드는 방법에 대해 알아보겠습니다. LCEL을 사용하면 복잡한 AI 기반 애플리케이션을 쉽고 직관적으로 구축할 수 있습니다.

준비하기

먼저, 필요한 라이브러리를 설치해야 합니다. Google Colab을 사용한다면 다음 명령어로 최신 버전의 langchain_corelangchain_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.prompts import ChatPromptTemplate
from langchain_core.output_parsers import StrOutputParser
from langchain_openai import ChatOpenAI

텍스트 생성 체인 만들기

LCEL을 사용하면 간단한 파이프라인 형태로 체인을 구성할 수 있습니다. 여기서는 주어진 주제에 대한 짧은 농담을 생성하는 체인을 만들어 보겠습니다:

prompt_template = ChatPromptTemplate.from_template("tell me a short joke about {topic}")

chain = prompt_template | ChatOpenAI() | StrOutputParser()

이 코드는 다음과 같은 단계로 구성됩니다:

  1. ChatPromptTemplate.from_template(): 프롬프트 템플릿을 생성합니다. 여기서는 {topic}이라는 변수를 포함한 템플릿을 사용합니다.
  2. ChatOpenAI(): OpenAI의 채팅 모델을 사용합니다.
  3. StrOutputParser(): 모델의 출력을 문자열로 파싱합니다.

이 세 단계를 파이프(|) 연산자로 연결하여 하나의 체인을 만듭니다.

체인 사용하기

이제 만든 체인을 사용해 봅시다:

result = chain.invoke({'topic': 'cat'})

print(result)

이 코드는 'cat'이라는 주제로 짧은 농담을 생성합니다. 결과는 다음과 같을 수 있습니다:

Why was the cat sitting on the computer? Because it wanted to keep an eye on the mouse!

마치며

LangChain Expression Language를 사용하면 복잡한 AI 작업을 간단하고 읽기 쉬운 코드로 구현할 수 있습니다. 이 예제에서는 간단한 텍스트 생성 체인을 만들어 보았지만, LCEL의 강력함을 활용하면 훨씬 더 복잡한 애플리케이션도 쉽게 만들 수 있습니다.

앞으로 LCEL에 대해 더 자세히 알아보고, 다양한 use case에 적용해 보세요. 즐거운 코딩 되세요!

#LangChain

Posted using Obsidian Steemit plugin

Sort:  

[광고] STEEM 개발자 커뮤니티에 참여 하시면, 다양한 혜택을 받을 수 있습니다.

Congratulations, your post has been upvoted by @upex with a 0.22% upvote. We invite you to continue producing quality content and join our Discord community here. Keep up the good work! #upex

Coin Marketplace

STEEM 0.17
TRX 0.13
JST 0.030
BTC 56355.98
ETH 2973.83
USDT 1.00
SBD 2.14