1. LangChain Expression Language 이란?
LangChain Expression Language (LCEL)은 LangChain 라이브러리에서 제공하는 *선언적 방식의 인터페이스로, 복잡한 LLM (Large Language Model) 애플리케이션을 구축하고 실행하기 위한 도구입니다. LCEL은 LLM, 프롬프트, 검색기, 메모리 등 다양한 컴포넌트를 조합하여 강력하고 유연한 AI 시스템을 만들 수 있게 해줍니다.
👀 1) : 선언적 프로그래밍은 개발자가 복잡한 LLM 애플리케이션을 구축 할 때, "목표"나 "결과"를 명시하고, 그 목표를 달성하기 위한 구체적인 실행 절차는 프레임워크나 언어 런타임이 처리하도록 맡기는 프로그래밍 패러다임입니다. 반면, 명령적(절차적) 프로그래밍은 개발자가 실행 과정의 각 단계를 직접 명시하는 방식입니다.
2. LCEL의 구조 (with examples)
참고) 다양한 구성 요소
- 프롬프트 : 사용자의 입력 변수를 사용하여 완전한 프롬프트 문자열을 만드는데 사용되는 템플릿
- PromptTemplate 활용
- 모델
- 출력 파서 :
- output_parser 활용
1) 프롬프트 + 모델 + 출력 파서
가장 기본적이고 일반적인 사용 사례는 프롬프트 템플릿, 모델, 출력 parser를 함께 결합하는 것입니다.
from langchain.chat_models import ChatOpenAI
from langchain.prompts import ChatPromptTemplate
from langchain.schema.output_parser import StrOutputParser
prompt = ChatPromptTemplate.from_template("다음의 주제에 대해서 설명해줘: {topic}") # 프롬프트
model = ChatOpenAI() # 모델
output_parser = StrOutputParser() # 출력 파서
chain = prompt | model | output_parser
result = chain.invoke({"topic": "LangChain"})
print(result)
'LLM' 카테고리의 다른 글
[LLM] Agent Based System (0) | 2024.10.17 |
---|---|
[LLM] LLM Agent (0) | 2024.10.16 |
[LLM/RAG] Retrieval-Augmented Generation for Large Language Models : A Survey 논문 읽기(진행중) (2) | 2024.10.10 |
MTEB 한국어 데이터셋 (5) | 2024.09.30 |
[python] API Key 환경변수로 설정하고 관리하기 (dotenv) (1) | 2024.09.06 |