대규모 언어 모델(LLM)을 활용한 애플리케이션 개발 오픈 소스 프레임워크다.
LLM과 다양한 데이터 소스를 연결하여 챗봇, 검색 시스템, 데이터 증강 등
다양한 애플리케이션을 만들 수 있도록 지원한다.
거의 모든 LLM 모듈을 API를 통해 LangChain에서 사용할 수 있다.

Models: ChatOpenAI(openAI에서 만든 GPT 모델), OpenAI, HuggingFaceHub, Embedding model 등을 API로 연결해 사용할 수 있음
Prompts: 동적 프롬프트를 생성할 수 있도록 돕는다. 대화 이력, 검색 결과 등 다양한 입력 변수를 Context로 활용해 유연하게 적용
Agents: 특정 목표를 달성하기 위해 자율적으로 행동하는 시스템 또는 프로그램. 사용자 입력에 따라 어떤 도구를 언제 호출할지 결정해야 하는 경우에 필요.
Chains: LangChain Workflow의 핵심. 서로 연결된 작업 또는 프롬프터 시퀀스. 복잡한 작업을 단계별로 나누고 자동화하기 위한 것.
Memory: LLM은 상태를 저장하지 않아서 이전 대화 내용을 기억하지 못하기 때문에 메모리를 추가해 기억을 보존한다.
Indexes: 문서를 LLM이 쉽게 검색하고 활용할 수 있도록 구조화. Doc Loader, Vetor DB, Text Splitter 등
from langchain.chat_models import ChatOpenAI # 모델
from langchain.chains import LLMChain # 체인
from langchain.prompts import PromptTemplate # 프롬프트
from langchain.memory import ConversationBufferMemory # 메모리
from langchain.agents import initialize_agent # 에이전트
LangGraph를 사용하면 다중 에이전트 시스템(Multi-Agent-System)과 복잡한 비선형 워크플로를 구현할 수 있다. LangSmith는 추적(Tracing), 디버깅, 성능 평가를 제공한다.