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 등의 다양한 모델과도 연동이 가능합니다.
요양원 선택 전 반드시 확인해야 할 체크리스트를 공개합니다. 공식 평가 자료 조회법, 방문 시 확인…
공공기관 채용 비리의 실태와 피해 지원자의 대응법을 정리했습니다. 채용 비리 신고 방법, 공익신고자 보호제도, 취준생…
주식 손실을 세금 절약에 활용하는 합법적 방법을 공개합니다. 해외주식 손익통산, ISA 계좌 활용, 연금계좌 절세까지…
배달이 예상 시간보다 크게 늦으면 취소·환불을 요청할 수 있습니다. 배달앱별 지연 취소 방법과 잘못 배달됐을…
통신비 절약의 핵심은 요금제 최적화입니다. 내 데이터 사용량 확인법, 알뜰폰 전환 비교, 위약금 없이 요금제…