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 등의 다양한 모델과도 연동이 가능합니다.
1. 타입스크립트 개요 타입스크립트(TypeScript)는 마이크로소프트(Microsoft)가 개발한 자바스크립트(JavaScript)의 상위 집합(Superset) 언어입니다.즉, 자바스크립트에 정적 타입(Static Type)을 추가하고,…
윈도우 운영체제의 노트북에서는 iPhone 유선 테더링이 잘 안되는 경우가 많습니다. 보통 iPhone의 드라이버가 설치가 안되있어서인…
안녕하세요, 혹시 이런 생각해 본 적 없으신가요? "내가 투자한 회사는 누가 감시하고, 어떻게 운영될까?" 오늘은…
1. Gemini CLI란 무엇인가요? Gemini CLI는 터미널 환경에서 직접 Gemini 모델과 상호작용할 수 있도록 만들어진…