Programming/Langchain 4

LCEL 에 관하여

1. LCEL (LangChain Expression Language) 란? 랭체인 서버를 만들다보면, 다양한 예제에서 아래와 같이 | 연산자를 활용하는 모습을 볼 수 있다. 이는 LCEL이라는 코드 작성 방식이다. return prompt | llm | output_parser LCEL (LangChain Expression Language)은 랭체인에서 코드를 작성하는 새로운 방법이다. LCEL은 프롬프트와 LLM을 | 연산자로 연결하여 작성하여 체인을 구현한다.  2. LCEL의 기본 사용법 가장 간단한 형태로, prompt와 model을 연결해보자.  from dotenv import load_dotenvfrom langchain_openai import ChatOpenAIfrom langchai..

랭체인 에이전트

AI 에이전트는 LLM의 응용 분야로 각광받고 있는 분야 중 하나이다. 기존의 Chain이 고정된 흐름을 처리한다면, 어떤 처리를 할 것인지 LLM이 선택해서 움직여주기를 원하는 경우가 있을 수 있다. 가령, 사용자의 질의에 대해 필요에 따라 사내 문서를 Vector Store 에서 검색하여 답변하거나 웹 상의 정보를 바탕으로 답변해준다는 등으로 작동하면 LLM의 활용 범위는 크게 늘어날 수 있다. 이를 가능케 하는 것이 랭체인의 Agent 다.  에이전트 사용 예시 랭체인에는 다양한 종류의 Agents가 구현되어있다. 그 중, ReAct 라는 Agent를 사용하는 예시를 살펴보자. from langchain import hubfrom langchain.agents import AgentExecutor,..

랭체인 활용 - Data Connection

Data connection은 LLM과 외부의 데이터를 연결하기 위한 기능이다.  RAG (Retrieval Argumented Generation) GPT가 미처 학습하지 못한 정보( 가령, 최근에 발생한 이벤트나 사내 정보 등 )를 사용하게 싶은 경우가 있다. 이 경우, 프롬프트에 컨텍스트(context)를 넣은 방법을 떠올릴 수 있다.  # 프롬프트문맥을 고려하여 한 문장으로 질문에 답해 주세요. 문맥: """"""질문: A회사에서 야근하면, 받을 수 있는 수당은 얼마인가요? 물론 LLM은 토큰 수 제한이 있기에, 모든 데이터를 컨텍스트로 담을 수는 없다. 그래서 "관련이 있는 데이터"만 컨텍스트로 담는 과정이 필요하고, 이를 위한 기법이 바로 RAG (Retrieval Argumented Gene..

랭체인 기초

- 랭체인은 LLM을 이용한 애플리케이션 개발 프레임워크이다. - 랭체인의 모듈은 크게 6가지로 나뉜다.   - Model I/O   - Data Connection  - Chains  - Agents  - Memory  - Callbacks 각 모듈의 역할은 아래와 같다. Language Models- Language models는 랭체인에서 언어 모델을 사용하는 방법을 제공하는 모듈이다. - 다양한 언어 모델을 공통된 인터페이스로 사용할 수 있다.- Language models를 크게 'LLMs'와 'Chat models'로 분류할 수 있다. LLMs- 하나의 텍스트 입력에 대해 하나의 텍스트 출력을 반환하는 전형적인 대규모 언어 모델을 다루는 모듈이다.  from langchain_openai im..