본문 바로가기
Python/NLP&LLM

LangChain 이란

by Mr.DonyStark 2024. 4. 11.

□ LLM 기반 애플리케이션을 쉽게 개발 가능한 프레임워크
언어모델, 데이터 파이프라인 등 가양한 도구를 통합지원(각 도구를 chain 으로 연결)

LCEL( LangChain Expression Language )구성 : 사용자 입력(프롬프트)를 받아 대규모 언어 모델(LLM)을 통해 적절한 응답 생성

입력 모델 출력
Prompt LLM(Large Language Model) Output

 

#라이브러리
import os #가상환경 라이브러리
from dotenv import load_dotenv #가상환경 라이브러리
from langchain_core.prompts import ChatPromptTemplate #prompt 라이브러리
from langchain_openai import ChatOpenAI #LLM 모델
from langchain_core.output_parsers import StrOutputParser #출력파서 라이브러리
import gradio as gr #그라디오 Gradio 라이브러리

#환경변수 처리 : open api 인증키
load_dotenv()
OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")

#(1)prompt
prompt = ChatPromptTemplate.from_messages(
    [("user","{input}")] #input받은 메시지를 전달
)

#(2)LLM 모델
llm = ChatOpenAI(api_key=OPENAI_API_KEY, model_name = "gpt-3.5-turbo-0125") #api키와 모델+버젼 명시적으로 기재

#(3)output 출력파서
ouput_parser = StrOutputParser()

# LCEL 문법 : 체인 지정 (1) + (2) + (3)
one_chain = prompt | llm | ouput_parser

# #내 질문
# myAsk = input("질문하실 내용을 적어주세요.\n")

# #gpt 답변처리
# response_bot = one_chain.invoke({"input" : myAsk}) #질문은 딕셔너리형태로 반드시 전달해야함
# print(f"\n내 조수 자비스\n{response_bot}")

#대화함수 정의
def chat(myAsk):
    return one_chain.invoke({"input" : myAsk})

#gradio 매게변수 지정
demo = gr.Interface(fn=chat, inputs="text", outputs="text")
demo.launch()

 

'Python > NLP&LLM' 카테고리의 다른 글

LLM 주요용어 : In-context learning  (0) 2024.04.28
LLM 주요용어 : 토큰(Token)  (1) 2024.04.28
LLM : 편향(Bias)와 할루시네이션(Hallucination)  (0) 2024.04.28
LLM(Large Language Model)  (0) 2024.04.28
Chat_gpt API 연동방법  (0) 2024.03.10