캐싱(Caching)LangChain은 LLM을 위한 선택적 캐싱 레이어를 제공한다.이는 두 가지 이유로 유용하다.동일한 완료를 여러 번 요청하는 경우 LLM 공급자에 대한 API 호출 횟수를 줄여 비용을 절감할 수 있다.LLM 제공업체에 대한 API 호출 횟수를 줄여 애플리케이션의 속도를 높일 수 있다.InMoeryCache메모리 공간을 활용한 캐싱단점: 서버가 재시작되거나 메모리에서 사라지면 캐시 데이터도 함께 소실됨.%%timefrom langchain.globals import set_llm_cachefrom langchain.cache import InMemoryCacheset_llm_cache(InMemoryCache())response = chain.invoke({"country":"한국"..
LangChain Output Parser: 다양한 출력 파서 설명LangChain 라이브러리에서는 다양한 형식의 출력을 다루기 위한 여러 종류의 Output Parser를 제공함. Output Parser는 AI 모델의 출력 결과를 구조화된 형식으로 변환하는 역할을 하며, 상황에 따라 적절한 Parser를 선택하여 사용할 수 있음. 아래에서는 LangChain에서 제공하는 주요 Output Parser들을 소개하고, 각 Parser의 특징과 사용 사례를 설명함.1. PydanticOutputParserPydanticOutputParser는 Pydantic 모델을 활용하여 출력 결과를 검증하고 구조화하는 Parser임. Pydantic은 Python의 데이터 유효성 검사 라이브러리로, 모델을 정의하여 데..
LangChain을 이용한 RAG 프로세스 구현LangChain을 활용하여 RAG 프로세스를 구현하는 방법을 단계별로 설명함. LangChain 라이브러리와 함께 다양한 모듈과 메서드를 이용해 문서 로드, 분할, 임베딩 생성, 검색, 프롬프트 및 모델 생성 등의 과정이 포함됨.1. 문서 로드 (Load)LangChain의 PyMuPDFLoader를 이용하여 PDF 파일과 같은 문서를 로드함. 이 모듈을 사용하면 다양한 형식의 문서를 쉽게 불러올 수 있음.from langchain_community.document_loaders import PyMuPDFLoader# PDF 문서 로드 예시loader = PyMuPDFLoader("sample.pdf")documents = loader.load()2. 분할..
LangChain - load_prompt 함수LangChain의 load_prompt 함수를 사용하여 다양한 파일 형식(YAML, JSON, .txt, .py)으로 프롬프트 템플릿을 불러오고, 이를 채팅 모델에서 사용하는 방법을 설명합니다. load_prompt는 지정된 파일 형식에 맞추어 템플릿을 동적으로 로드할 수 있는 기능을 제공함.1. YAML 파일 예시YAML 파일 형식으로 템플릿을 정의하고, load_prompt로 불러올 수 있음.파일명: template.yamltemplate: | {name}님, 오늘의 날씨는 {weather}입니다. 좋은 하루 보내세요!variables: - name - weatherPython 코드에서 사용하기:from langchain_core.prompts..
LangChain Output Parser에 대한 설명1. Output Parser란?Output Parser는 AI 모델로부터 나온 비정형 텍스트 응답을 받아서 구조화된 데이터로 변환하는 역할을 함. 예를 들어, 모델이 생성한 자연어 응답을 특정 JSON 형식, 리스트, 테이블 등으로 변환할 수 있음.2. StrOutputParser 사용 예시LangChain에서 StrOutputParser는 단순 문자열 형식의 출력을 처리하는 Parser임. 아래는 StrOutputParser를 사용하여 요리 레시피를 파싱하는 예시임:from langchain.prompts import PromptTemplatefrom langchain_core.output_parsers import StrOutputParser# ..