Notice
                              
                          
                        
                          
                          
                            Recent Posts
                            
                        
                          
                          
                            Recent Comments
                            
                        
                          
                          
                            Link
                            
                        
                    | 일 | 월 | 화 | 수 | 목 | 금 | 토 | 
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 | 
| 9 | 10 | 11 | 12 | 13 | 14 | 15 | 
| 16 | 17 | 18 | 19 | 20 | 21 | 22 | 
| 23 | 24 | 25 | 26 | 27 | 28 | 29 | 
| 30 | 
                            Tags
                            
                        
                          
                          - VectoreStore
- queue
- ansible
- javascript
- Algorithm
- turbo
- 파이썬
- retriever
- AI
- modbus
- OpenAI
- InfluxDB
- 알고리즘
- BFS
- heapq
- typescript
- 완전탐색
- LLM
- 프로그래머스
- rag
- 스택/큐
- python
- dfs
- monorepo
- DP
- Two Pointer
- CI/CD
- frontend
- javascirpt
- React
                            Archives
                            
                        
                          
                          - Today
- Total
DM Log
[AI 개념 및 이해 #4] LangChain: LLM 오케스트레이션 프레임워크 본문
LanChain 필요성
LLM은 강력하지만, 한계 존재
- 긴 문서 처리의 어려움
- 외부 데이터베이스 / 검색엔진과 연결 불가능
- 프롬프트 직접 설계 필요
- 복잡한 워크플로 (검색 → 요약 → 답변 등)을 구현하기 번거러움
👉 한계를 해결하고 LLM + 외부 데이터 + 다양한 기능을 연결하는 것이 LangChain
LangChain 핵심 아이디어
단순 LLM 호출을 넘어, 모듈화된 컴포넌트를 연결해 AI 애플리케이션을 빠르게 구축하도록 설계
[핵심 아이디어]
- Chain: LLM과 여러 모듈을 연결한 파이프라인
- Agent: 도구(tool)를 선택 실행 가능하도록 하는 지능형 에이전트
- Memory: 대화나 상태를 저장하여 문맥 유지
[주요 컴포넌트]
LangChain의 핵심 구성 요소
1. Document Loader
- PDF, TXT, 웹페이지, 데이터 베이스 등 다양한 데이터 소스 로딩
- 예: PyPDFLoader, TextLoader, UnstructureLoader
2. Text Splitter
- 긴 문서를 일정 길이로 잘라 벡터화에 적합하게 변환
- 대표: RecursiveCharacterTextSplitter (문맥 손실 최소화)
3. Embeddings
- 텍스트를 의미 벡터로 변환
- 예: OpenAIEmbeddings, HuggingFaceEmbeddings
4. VectorStore
- 임베딩을 저장 / 검색하는 DB와 연결
- Chroma, Pinecone, Weaviate 등 지원
5. Retriever
- 질문과 관련된 문서 조각을 VectorStore에서 가져오는 인터페이스
- RAG의 핵심 단계
6. Chain
- 여러 단계를 묶어 일련의 작업으로 구성
- 예: RetrievalQA Chain → (검색) → (LLM 답변)
7. Agent
- 단순 체인보다 유연
- 툴을 선택하여 실행 가능하도록 결정 로직 내장
- 예: 계산기, 검색 엔진, DB 진의 등을 자동 호출
간단한 LLMChain 예제
⚠️ 환경 변수에 설정하거나 코드 상단에 추가 필요
export OPENAI_API_KEY="your_api_key_here" # macOS/Linux setx OPENAI_API_KEY "your_api_key_here" # Windows PowerShell
또는import os os.environ["OPENAI_API_KEY"] = "your_api_key_here"
from langchain_openai import ChatOpenAI
from langchain.chains import LLMChain
from langchain.prompts import PromptTemplate
# LLM 초기화
llm = ChatOpenAI(model="gpt-4o")
# 프롬프트 템플릿 정의
prompt = PromptTemplate(
    input_variables=["topic"],
    template="다음 주제에 대해 세 문장으로 설명해줘: {topic}"
)
# LLMChain 생성
chain = LLMChain(llm=llm, prompt=prompt)
# 실행
result = chain.run("벡터 데이터베이스")
print(result)간단한 LLMChain 장점 및 한계
[LangChain 장점]
- LLM과 다양한 데이터 소스 / 툴을 표준화된 방식으로 연결
- 다양한 플러그인과 예제 존재
- 연구·프로토타입에서 프로덕션까지 사용 용이
[LangChain 한계]
- 러닝 커브가 있음 (컴포넌트 개념 이해 필요)
- 의존성 높으며, 빠르게 변화하는 생태계 대응 필요
- 단순 프로젝트에는 복잡하게 느껴질 수 있음
(부록) 용어 정리
- Chain: 여러 모듈을 연결한 파이프라인
- Agent: 도구 선택·실행이 가능한 지능형 구성 요소
- Memory: 대화 상태 유지 모듈
- Retriever: 관련 문서 검색 인터페이스
- VectorStore: 벡터를 저장/검색하는 데이터베이스
'개발공부 > AI' 카테고리의 다른 글
| [AI 실습 #1] Chroma 실습: 벡터DB를 활용한 문서 검색 (0) | 2025.09.13 | 
|---|---|
| [AI 개념 및 이해 #5] RAG: 검색과 생성을 결합하는 기술 (0) | 2025.09.07 | 
| [AI 개념 및 이해 #3] 벡터 DB(Vector Database) 개념: Chroma, Pinecone, Weaviate 비교 (0) | 2025.09.07 | 
| [AI 개념 및 이해 #2] 임베딩(Embedding) 이해: 텍스트-벡터 변환 기술 (0) | 2025.09.06 | 
| [AI 개념 및 이해 #1] LLM(Language Model) 이해: GPT의 동작 (0) | 2025.09.06 | 
 
          