LangChain은 LLM (Large Language Model) 기반 애플리케이션을 더욱 강력하고 유연하게 만들기 위한 프레임워크입니다. OpenAI, Hugging Face 등의 다양한 LLM을 쉽게 연결하고, 체인(Chain) 형태로 구성하여 복잡한 기능을 수행할 수 있도록 돕습니다.
LangChain은 단순한 프롬프트 관리 도구를 넘어서, 외부 데이터와의 연동, 메모리 유지, 데이터베이스 연결, API 호출 등 다양한 기능을 제공합니다.
LangChain은 여러 개의 핵심 모듈로 구성됩니다.
LangChain은 다양한 LLM을 지원합니다.
from langchain.llms import OpenAI
llm = OpenAI(model_name="gpt-4", temperature=0.7)
response = llm("인공지능이란?")
print(response)
LLM의 응답을 조정하기 위해 미리 정의된 프롬프트를 사용할 수 있습니다.
from langchain.prompts import PromptTemplate
template = PromptTemplate(
input_variables=["주제"],
template="다음 주제에 대해 자세히 설명해 주세요: {주제}"
)
prompt = template.format(주제="LangChain이란?")
print(prompt)
LangChain의 강력한 기능 중 하나는 여러 개의 LLM 호출을 연결하여 복잡한 작업을 수행하는 것입니다.
from langchain.chains import LLMChain
from langchain.llms import OpenAI
from langchain.prompts import PromptTemplate
llm = OpenAI(model_name="gpt-4", temperature=0.7)
template = PromptTemplate(
input_variables=["topic"],
template="다음 주제에 대해 설명해 주세요: {topic}"
)
chain = LLMChain(llm=llm, prompt=template)
response = chain.run("LangChain의 특징")
print(response)
여러 개의 체인을 순차적으로 연결할 수도 있습니다.
from langchain.chains import SimpleSequentialChain
chain1 = LLMChain(llm=llm, prompt=PromptTemplate(
input_variables=["topic"],
template="다음 주제에 대해 설명해 주세요: {topic}"
))
chain2 = LLMChain(llm=llm, prompt=PromptTemplate(
input_variables=["summary"],
template="이 요약을 더 짧게 만들어 주세요: {summary}"
))
sequential_chain = SimpleSequentialChain(chains=[chain1, chain2])
response = sequential_chain.run("LangChain의 기본 개념")
print(response)
LangChain은 대화의 맥락을 유지할 수 있도록 메모리 기능을 제공합니다.
from langchain.memory import ConversationBufferMemory
memory = ConversationBufferMemory()
memory.save_context({"input": "안녕하세요!"}, {"output": "반갑습니다!"})
print(memory.load_memory_variables({}))
에이전트는 LLM이 동적으로 다양한 도구를 사용하도록 돕습니다. 예를 들어, Google 검색, 데이터베이스, API 호출 등을 조합할 수 있습니다.
from langchain.agents import AgentType, initialize_agent
from langchain.tools import Tool
def weather_tool(query):
return "서울의 날씨는 맑음입니다."
tools = [Tool(name="WeatherTool", func=weather_tool, description="날씨 정보를 제공합니다.")]
agent = initialize_agent(
tools=tools,
llm=llm,
agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
verbose=True
)
response = agent.run("서울의 날씨는?")
print(response)
LangChain은 벡터 DB (Pinecone, FAISS, Chroma 등)를 사용하여 LLM이 데이터를 검색할 수 있도록 합니다.
from langchain.vectorstores import FAISS
from langchain.embeddings import OpenAIEmbeddings
docs = ["LangChain은 LLM을 활용한 애플리케이션 개발 프레임워크입니다.", "Python을 사용하여 LangChain을 실행할 수 있습니다."]
embeddings = OpenAIEmbeddings()
vector_store = FAISS.from_texts(docs, embeddings)
query = "LangChain이 무엇인가요?"
results = vector_store.similarity_search(query)
print(results[0].page_content)
LangChain은 다양한 구성 모듈로 이루어져 있으며, 이를 통해 AI 기반 애플리케이션을 쉽게 개발할 수 있습니다. 주요 구성 모듈은 다음과 같습니다.
PromptTemplate
, FewShotPromptTemplate
OpenAI
, ChatOpenAI
, LLMChain
LLMChain
, SequentialChain
, SimpleSequentialChain
ConversationBufferMemory
, ConversationSummaryMemory
, VectorStoreRetrieverMemory
AgentExecutor
, ZeroShotAgent
, ConversationalAgent
Tool
, SerpAPIWrapper
, PythonREPLTool
FAISS
, Chroma
, Weaviate
VectorStoreRetriever
, BM25Retriever
TextLoader
, PyPDFLoader
, CSVLoader
StdOutCallbackHandler
, LangChainTracer
LangChain은 LLM을 활용한 AI 애플리케이션을 구축하는 강력한 도구입니다. 다양한 모듈을 조합하여 챗봇, 검색 시스템, 에이전트 기반 자동화 등을 손쉽게 구현할 수 있습니다. Python 기반으로 쉽게 확장 가능하며, OpenAI, Hugging Face, Google PaLM 등의 다양한 모델과도 연동이 가능합니다.
윈도우 운영체제의 노트북에서는 iPhone 유선 테더링이 잘 안되는 경우가 많습니다. 보통 iPhone의 드라이버가 설치가 안되있어서인…
안녕하세요, 혹시 이런 생각해 본 적 없으신가요? "내가 투자한 회사는 누가 감시하고, 어떻게 운영될까?" 오늘은…
1. Gemini CLI란 무엇인가요? Gemini CLI는 터미널 환경에서 직접 Gemini 모델과 상호작용할 수 있도록 만들어진…
과적합은 머신러닝에서 학습용데이터를 과하게 학습하여, 실제데이터를 예측하지 못하는 현상을 말합니다. 인공지능(AI)의 학습 방법은 우리가 시험공부를…