📌 Langchain의 개념 및 주요 컴포넌트 1️⃣ 모델 (Models) 다양한 모델을 지원 (OpenAI, Google, Ollama 등) 텍스트 생성, 대화, 요약 등의 작업을 수행 * - 출력* token_usage : 토큰 사용량 * - 출력* 2️⃣ 메시지 (Messages) 모델별 고유한 메시지 형식 관계없이 다양한 채팅 모델 활용 ...
LCEL은 | 연산자를 사용해 컴포넌트들을 순차적으로 연결하는 선언적 체이닝을 지원재사용성이 높아 정의된 체인을 다른 체인의 컴포넌트로 활용 가능다양한 실행 방식(.invoke(), .batch(), .stream(), .astream())으로 동기/비동기 처리가 가능
conda 환경 : pip install gradiopoetry 환경 : poetry add gradio \- 출력 1 \- 출력 2 \- 출력Temperature, max_tokens 등과 같은 설정을 위한 추가 입력multimodal=True 옵션이미지나 파일을 처
Tool Calling은 LLM이 외부 시스템과 상호작용하기 위한 함수 호출 메커니즘LLM은 정의된 도구나 함수를 통해 외부 시스템과 통신하고 작업을 수행Tool calling은 모델이 시스템과 직접 상호작용할 수 있게 하는 기능구조화된 출력을 통해 API나 데이터베이
LLM(대규모 언어 모델) 을 의사결정 엔진으로 사용하여 작업을 수행하는 시스템모델은 입력된 데이터를 분석하여 맥락에 맞는 의사결정을 수행시스템은 사용자의 요청을 이해하고 적절한 해결책을 제시복잡한 작업을 자동화하여 업무 효율성을 높일 수 있음 AgentExecutor
역할: Document Loader는 다양한 소스에서 문서를 로드구현: Document Loader는 BaseLoader 인터페이스를 통해서 구현.load() 또는 .lazy_load() 메서드를 통해 동일한 방식으로 호출 대용량 데이터셋의 경우 메모리 효율을 위해 .
대규모 텍스트 문서를 처리할 때 매우 중요한 전처리 단계고려사항:문서의 구조와 형식원하는 청크 크기문맥 보존의 중요도처리 속도 \- 출력\- 출력\- 출력가장 기본적인 분할 방식문자 수를 기준으로 텍스트를 분할단순하지만 문맥을 고려하지 않는다는 단점이 있음설치: pip
\- 출력\- 출력개념: 텍스트를 벡터(숫자 배열)로 변환하는 과정문서의 의미적 특성을 수치화하여 컴퓨터가 이해하고 처리할 수 있는 형태로 변환 목적:텍스트 간 유사도 계산 가능벡터 데이터베이스 저장 및 검색의미 기반 문서 검색 구현LangChain의 임베딩 모델 종류
RAG란?RAG는 기존 LLM의 한계를 보완하기 위한 방법론외부 데이터를 검색하여 LLM의 지식을 보강하는 방식으로 동작 (기존의 언어 모델에 검색 기능을 추가)최신 정보나 특정 도메인의 전문 지식을 활용 가능주어진 질문이나 문제에 대해 더 정확하고 풍부한 정보를 기반
📌 벡터 저장소 (Vector Store) 개념: 벡터화된 데이터를 효율적으로 저장하고 검색하기 위한 특수 데이터베이스 시스템 텍스트나 이미지 등의 비정형 데이터를 고차원 벡터 공간에 매핑하여 저장 유사도 기반 검색을 통해 의미적으로 가까운 데이
효율적인 벡터 유사도 검색 및 클러스터링을 위한 오픈소스 벡터 저장소 설치: pip install faiss-cpu / poetry add faiss-cpu.IndexFlatL2(임베딩차원) 으로 index 를 생성한다. \- 출력\- 출력\- 출력문서 추가: vect
상용 클라우드 기반의 벡터 데이터베이스 서비스 (SaaS)실시간 고성능 벡터 검색 제공회원가입 및 API 인증키 발급 (.env 파일에 PINECONE_API_KEY 등록)설치: pip install langchain-pinecone pinecone-notebooks
[Langchain] Document Loader [Langchain] Text Splitter 📌 Retriever
옵션 1: 다국어 RAG 시스템은 언어 교차 검색 기능을 통해 다양한 언어의 문서를 처리옵션 2: 언어 감지와 자동번역 기능이 통합되어 매끄러운 다국어 처리가 가능옵션 3: 벡터저장소 라우팅을 통해 각 언어별 최적화된 처리 경로를 구성데이터는 자체적으로 보유중인 테슬라
ReAct Agent는 Reasoning과 Acting을 결합한 가장 일반적인 에이전트 형태에이전트는 행동-관찰-추론 단계를 순환하며 작업을 수행행동 (act): 모델이 특정 도구(Tool)를 호출관찰 (observe): 도구의 출력(Tool Message)를 모델에
StateGraph는 상태 기반의 그래프 구조를 사용하여 대화 흐름을 체계적으로 관리예제: 기본 챗봇 시스템챗봇은 StateGraph를 통해 상태 기반 구조로 구현 (노드와 엣지로 구성)챗봇의 실행 흐름은 START에서 시작하여 END로 종료되며, 엣지를 통해 노드 간
Command 객체는 LangGraph의 핵심 제어 도구로, 노드 함수의 반환값으로 사용상태 관리와 흐름 제어를 동시에 수행할 수 있어 효율적인 그래프 운영이 가능그래프의 상태를 동적으로 업데이트하면서 다음 실행할 노드를 지정할 수 있음 상태 업데이트: 그래프의 상태(
State Reducer는 LangGraph의 상태 관리 핵심 메커니즘각 노드의 출력을 전체 그래프 상태에 통합하는 방식을 정의Reducer의 필요성:상태 덮어쓰기 문제: 기본적으로 각 노드의 반환값은 해당 상태 키의 이전 값을 덮어쓰는 방식으로 동작 (override
LangGraph는 메시지 목록 기반의 채팅 모델 인터페이스를 활용HumanMessage와 AIMessage 등 다양한 메시지 타입을 지원그래프 상태에서 대화 기록은 메시지 객체 리스트로 저장되며, 이를 통해 효율적인 대화 관리를 가능reducer 함수를 통해 상태 업
분기(branching) 기능을 통해 LangGraph에서 노드의 병렬 실행이 가능병렬 처리는 독립적인 작업들을 동시에 실행함으로써 전체 처리 시간을 단축다양한 데이터 소스에서 정보 수집 및 처리가 필요한 경우 병렬 실행이 특히 효과적Fan-out 구조는 하나의 노드에
Zero-shot 프롬프팅은 예시 없이 AI가 즉시 작업을 수행하는 기법명확한 지시사항만으로 원하는 결과를 얻을 수 있어 사용이 간단단순하고 직관적인 작업에 적합한 프롬프팅 방식이지만, 작업의 복잡도에 따라 선택적 사용이 필요\- 출력\- 출력One-shot 프롬프팅은
📌 Prompt Engineering 1️⃣ Chain of Thought (CoT) Chain of Thought는 AI 모델이 복잡한 문제를 해결할 때 각 단계별 사고 과정을 명시적으로 보여주도록 하는 프롬프팅 기법으로, 이를 통해 모델의 추론 과정을 투명하게
RAG 기술의 핵심: 외부 지식 검색과 LLM 결합으로 응답 품질 향상평가 기준: LLM-as-judge 방식으로 사실성, 관련성, 충실도, 유용성 평가체계적인 A/B 테스트: 각 컴포넌트별 성능 비교 및 영향도 분석으로 최적 구성 도출평가 방법론: 오프라인(참조답변
📌 Retrieval Metrics 1️⃣ 평가 지표 (Evaluation Metric) 1) 검색(Retrieval) 평가 Non-Rank Based Metrics: Accuracy, Precision, Recall@k 등을 통해 관련성의 이진적 평가를 수행
[RAG] 평가 지표 (1) Metric 에서 이어집니다. K-RAG DOCS 페이지 📌 RAG Evaluation _ K-RAG pip install krag / poetry add krag 문서 표현: KragDocument 클래스를 사용하여 문서를
의미론적 검색 (Semantic Search)Vector Store를 기반으로 한 검색 방식으로, 텍스트의 의미적 유사성을 고려하여 검색을 수행함임베딩 벡터 간의 유사도를 계산하여 의미적으로 관련성이 높은 문서를 찾아내는 특징이 있음동의어나 문맥적 의미를 파악할 수 있
(1) Semantic Search 에서 이어집니다. 📌 RAG 검색기 2️⃣ Keyword Search (키워드 검색) 키워드 검색은 BM25 등 전통적 알고리즘 기반의 단어 매칭 방식 정확한 단어/구문 매칭에 강점이 있으며 계산 효율성이 우수 직접적인 키
(2) Keyword Search 에서 이어집니다. 📌 RAG 검색기 3️⃣ Hybrid Search (하이브리드 검색) 하이브리드 검색은 키워드 검색과 의미론적 검색을 EnsembleRetriever로 통합 정확한 키워드 매칭과 의미적 유사성을 동시에 고려하여
📌 쿼리 확장 (Query Expansion) Query Reformulation LLM을 사용하여 원래 질문을 다른 형태로 재작성하는 방식임 동의어 확장, 질문 명확화, 관련 키워드 추가 등 다양한 방식으로 쿼리를 변형 검색의 다양성과 정확도
재순위화는 검색 결과를 재분석하여 최적의 순서로 정렬하는 고도화된 기술이중 단계 프로세스로 기본 검색 후 정교한 기준으로 재평가를 진행먼저 기본 검색 알고리즘으로 관련 문서들을 찾은 후, 더 정교한 기준으로 이들을 재평가하여 최종 순위를 결정사용자의 검색 의도에 맞는
📌 Generation Metrics 1️⃣ 평가 지표 (Evaluation Metric) 1) 검색(Retrieval) 평가 Non-Rank Based Metrics: Accuracy, Precision, Recall@k 등을 통해 관련성의 이진적 평가를 수행
LLM-as-Judge의 기본 개념:LLM을 평가자로 활용하여 텍스트 출력물의 품질을 전문적으로 판단평가 기준을 프롬프트 형태로 명확히 정의하여 일관된 평가 수행다양한 품질 측면(정확성, 관련성, 일관성 등)을 종합적으로 평가활용 방법:Reference-free 평가:
답변과 검색 문서를 함께 출력 \- 출력\- 출력\- 출력\- 출력기준 활용: 참조 답안과 RAG 응답을 비교 평가평가 방식: 자동화된 A/B 테스트로 객관적 성능 측정주요 지표: 정확도, 완성도, 관련성 등 정량적 평가참조 답안 기반 체계적인 품질 평가 수행\- 출력
\- 출력\- 출력ChromaPineconePinecone 에서 index_name 에 맞게 index 생성 후 코드 실행\- 출력\- 출력메뉴 검색을 위한 벡터저장소를 초기화 (기존 저장소를 로드)\- 출력\- 출력\- 출력일반 웹 검색을 위한 Tavily 초기화Ta
📌 Self-RAG 주요 단계: 검색 결정 (Retrieval Decision): 입력: 질문 x 또는 질문 x와 생성된 답변 y 목적: 검색기 R을 사용하여 D 개의 청크를 검색할지 결정 출력: "yes", "no", "con