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, FewShotPromptTemplateOpenAI, ChatOpenAI, LLMChainLLMChain, SequentialChain, SimpleSequentialChainConversationBufferMemory, ConversationSummaryMemory, VectorStoreRetrieverMemoryAgentExecutor, ZeroShotAgent, ConversationalAgentTool, SerpAPIWrapper, PythonREPLToolFAISS, Chroma, WeaviateVectorStoreRetriever, BM25RetrieverTextLoader, PyPDFLoader, CSVLoaderStdOutCallbackHandler, LangChainTracerLangChain은 LLM을 활용한 AI 애플리케이션을 구축하는 강력한 도구입니다. 다양한 모듈을 조합하여 챗봇, 검색 시스템, 에이전트 기반 자동화 등을 손쉽게 구현할 수 있습니다. Python 기반으로 쉽게 확장 가능하며, OpenAI, Hugging Face, Google PaLM 등의 다양한 모델과도 연동이 가능합니다.
코스피 8% 폭락, 서킷브레이커 발동, SK텔레콤 Claude AI 차단까지. 한국의 AI 레버리지 버블이 단 하루…
SNS 사진 1장으로 30초 만에 딥페이크 영상이 완성됩니다. 당신의 얼굴이 이미 범죄에 악용되고 있을 수…
SNS 사진 1장으로 30초 만에 딥페이크 영상이 완성됩니다. 당신의 얼굴이 이미 범죄에 악용되고 있을 수…
달러/원 환율이 급등하는 이유와 실생활 영향을 정리했습니다. 지금 당장 활용할 수 있는 환전·투자 대응 전략까지…
미래에셋·미래에셋벤처투자·미래에셋생명이 동반 급등한 이유는 스페이스X 상장 기대감입니다. 세 회사가 스페이스X와 어떻게 연결되어 있는지 상세히 분석했습니다.
스페이스X 상장이 계속 미뤄지는 진짜 이유를 파헤쳤습니다. 화성 계획, 스타링크 분리, 국방 계약... 머스크가 절대…