LangChain6 [LLM & RAG] Langchain 기초 - Agent와 Tools Agent는 사용자의 질문이나 요청을 받고, 그에 맞는 작업을 수행하기 위해 여러 도구(tool)를 선택적으로 호출하는 역할을 합니다. LangChain 에이전트는 주로 Zero-Shot Agent, ReAct 에이전트 등의 형태로 구현되며, 사용자 요청에 따라 여러 작업(예: 웹 검색, 계산, 데이터베이스 질의 등)을 수행할 수 있습니다. 1. 기본 Agent 사용from langchain.agents import initialize_agent, load_toolsfrom langchain.llms import OpenAI# 도구를 로드 (예: 구글 검색 도구)tools = load_tools(["google-search-results"], api_key="YOUR_GOOGLE_SEARCH_API_KE.. 2025. 4. 3. [LLM & RAG] Langchain 기초 - Memory 우리가 Chat GPT와 채팅을 할 때 이전에 대화한 내용을 기억해야 대답을 할 수 있는 상황도 있겠죠? 그런 작업을 위해서는 대화 기록을 저장해야합니다. 그것을 위한 모듈이 Memory입니다. Memory 종류특성장점단점ConversationBufferMemory모든 대화 기록을 저장단순하고 사용하기 쉬움길어지면 토큰 한도 초과 가능ConversationBufferWindowMemory최근 n개 대화만 저장토큰 사용량 절약오래된 정보는 잊어버림ConversationTokenBufferMemory최근 n개의 토큰(token) 기반으로 대화 저장토큰 초과 방지일부 중요한 대화가 잘릴 수 있음ConversationSummaryMemory이전 대화를 요약하여 저장긴 대화에서도 컨텍스트 유지요약 과정에서 정보.. 2025. 4. 3. [LLM & RAG] Langchain 기초 - Output Parser output_parsers는 LLM이 생성한 텍스트를 구조화된 데이터로 변환하는 기능을 제공합니다. 1. PydanticOutputParser (Pydantic 모델을 이용한 데이터 변환)from langchain_core.output_parsers import PydanticOutputParserfrom langchain_core.pydantic_v1 import BaseModel, Fieldfrom langchain_openai import ChatOpenAI# Pydantic 모델 정의class ProductInfo(BaseModel): name: str = Field(..., description="Product name") price: float = Field(..., descrip.. 2025. 4. 3. [LLM & RAG] Langchain 기초 - LLM LLM 모델은 물론 저희가 직접 training시키거나 기저부터 만드는 것은 아닙니다만 어느정도의 조정의 여지는 있습니다. temperature : 생성된 텍스트의 창의성을 조절하는 값 (0~2, 기본값: 1). 낮을수록 더 확정적인 답변을 생성하고, 높을수록 다양하고 창의적인 응답을 생성.max_tokens : 모델이 한 번의 응답에서 생성할 수 있는 최대 토큰 수. 너무 짧으면 불완전한 답변이 나올 수 있음.top_p : Nucleus Sampling 기법으로, 확률값이 높은 토큰의 누적 확률이 top_p 이하가 되도록 샘플링. 낮출수록 보수적인 응답 생성.frequency_penalty : 특정 단어가 반복되는 것을 방지하는 값 (-2.0 ~ 2.0). 값이 클수록 반복된 단어 사용을 줄임.sto.. 2025. 4. 3. [LLM & RAG] Langchain 기초 - Prompt 1. PromptTemplate (기본 프롬프트 템플릿)from langchain.prompts import PromptTemplate# 프롬프트 템플릿 정의prompt = PromptTemplate( input_variables=["topic"], template="Tell me an interesting fact about {topic}.")# 프롬프트 렌더링formatted_prompt = prompt.format(topic="black holes")print(formatted_prompt)Tell me an interesting fact about black holes. 2. ChatPromptTemplate (대화형 프롬프트)대화형 프롬프트를 이용하면 시스템 메시지, 사용자 입력, 어.. 2025. 4. 3. [LLM & RAG] Langchain 기초 - Chain 1. Chain의 연결방식(1) LCEL (LangChain Expression Language) : LangChain에서 제공하는 선언형(Declarative) 방식으로 체인을 구성하는 방법입니다. Python 코드로 직접 체인을 구성하지 않고, 직관적인 YAML 스타일의 표현식을 사용합니다. (비유하자면 R에서 파이프라인 연산자? 같이 쓰는 방식이라고 할까요?)간결한 표현: 복잡한 체인도 짧은 코드로 정의 가능.재사용성: 정의된 체인을 쉽게 재사용하거나 공유 가능.시각적 구성 가능: LCEL 기반의 GUI 도구를 활용할 수도 있음.from langchain_core.runnables import RunnableLambdafrom langchain_openai import ChatOpenAIfrom l.. 2025. 4. 3. 이전 1 다음