LangChain(๋žญ์ฒด์ธ)

๋Œ€๊ทœ๋ชจ ์–ธ์–ด ๋ชจ๋ธ(LLM)์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•˜๊ธฐ ์œ„ํ•œ ์ฒซ๊ฑธ์Œ

Jul 12, 2025

๊ฐ•์˜๋ฏผ

#AI

๋“ค์–ด๊ฐ€๋ฉฐ

์ตœ๊ทผ AI ๊ฐœ๋ฐœ์ด๋‚˜ LLM(Large Language Model)์„ ํ™œ์šฉํ•œ ์„œ๋น„์Šค ๊ฐœ๋ฐœ์ด ๊ธ‰์†ํžˆ ์ฆ๊ฐ€ํ•˜๋ฉด์„œ ํŒ€๊ณผ์ œ๋‚˜ ํ•™์Šต์—์„œ ๊ฐœ์ธ์ ์œผ๋กœ ๊ด€์‹ฌ์„ ๊ฐ–๊ฒŒ๋œ ๊ธฐ์ˆ ์ค‘ ํ•˜๋‚˜๊ฐ€ ๋ฐ”๋กœ LangChain์ž…๋‹ˆ๋‹ค ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” LangChain์˜ ๊ฐœ๋…๊ณผ ํ™œ์šฉ ๋ฐฉ๋ฒ•, ๊ทธ๋ฆฌ๊ณ  ์™œ AI ๊ฐœ๋ฐœ์— LangChain์ด ์œ ์šฉํ•œ์ง€ ๊ฐ€๋ณ๊ฒŒ ์•Œ์•„๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค.

๋žญ์ฒด์ธ(LangChain)์ด๋ž€?

LangChain์€ ๋‹ค์–‘ํ•œ ์–ธ์–ด ๋ชจ๋ธ์„ ์‰ฝ๊ฒŒ ์—ฐ๊ฒฐํ•˜์—ฌ ์ž์—ฐ์–ด ์ฒ˜๋ฆฌ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋„์™€์ฃผ๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ๊ฐ„๋‹จํžˆ ๋งํ•˜๋ฉด, ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋„๊ตฌ๋‚˜ API, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋“ฑ์„ ์–ธ์–ด ๋ชจ๋ธ๊ณผ ์‰ฝ๊ฒŒ ๊ฒฐํ•ฉํ•˜์—ฌ ๋”์šฑ ๊ฐ•๋ ฅํ•˜๊ณ  ์œ ์šฉํ•œ AI ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•˜๋Š” ์˜คํ”ˆ์†Œ์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค.

๋žญ์ฒด์ธ(LangChain)์˜ ์ฃผ์š” ๊ตฌ์„ฑ ์š”์†Œ

์ฃผ์š” ๊ตฌ์„ฑ ์š”์†Œ
๋žญ์ฒด์ธ(LangChain)์˜ ์ฃผ์š” ๊ตฌ์„ฑ ์š”์†Œ
  1. LLM ์ถ”์ƒํ™” (Abstraction) ์ž๋™์ฐจ ์‹œ๋™์„ ๊ฑธ๋“ฏ ๋‚ด๋ถ€ ๊ตฌ์กฐ๋ฅผ ๋ชฐ๋ผ๋„ ์–ธ์–ด ๋ชจ๋ธ์„ ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.
  2. ํ”„๋กฌํ”„ํŠธ ํ…œํ”Œ๋ฆฟ (Prompts) ๊ตฌ์กฐํ™”๋œ ํ”„๋กฌํ”„ํŠธ ์ž‘์„ฑ์„ ๋„์™€ ์ •ํ˜•ํ™”๋œ ๋ช…๋ น ๊ตฌ์„ฑ์„ ์‰ฝ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.
  3. ์ฒด์ธ (Chains) ์—ฌ๋Ÿฌ LLM ํ˜ธ์ถœ ์ž‘์—…, ๊ฒ€์ƒ‰, ๋ถ„์„ ๋‹จ๊ณ„๋ฅผ ์—ฐ๊ฒฐํ•ด ๋ณต์žกํ•œ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  4. ์ธ๋ฑ์Šค (Indexes) ์™ธ๋ถ€ ๋ฌธ์„œ๋ฅผ ๋กœ๋”ฉ, ๋ถ„ํ• ํ•˜๊ณ  ๋ฒกํ„ฐ DB์— ์ €์žฅํ•˜์—ฌ ํšจ์œจ์ ์œผ๋กœ ๊ฒ€์ƒ‰ํ•˜๊ณ  ์‘๋‹ต ํ’ˆ์งˆ์„ ๋†’์ž…๋‹ˆ๋‹ค.
  5. ๋ฉ”๋ชจ๋ฆฌ (Memory) ์‚ฌ์šฉ์ž ๋Œ€ํ™” ๋งฅ๋ฝ์„ ์ €์žฅํ•ด ์ฑ—๋ด‡์— ์ง€์†๋œ ๊ธฐ์–ต๋ ฅ์„ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค.
  6. ์—์ด์ „ํŠธ (Agents) LLM์ด ์Šค์Šค๋กœ ๋„๊ตฌ(API, ๊ฒ€์ƒ‰, DB ๋“ฑ)๋ฅผ ์„ ํƒํ•ด ์ž‘์—…ํ•  ์ˆ˜ ์žˆ๋Š” ๋Šฅ๋ ฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๋žญ์ฒด์ธ(LangChain)์€ ๋ฌด์—‡์„ ๋„์™€์ค„๊นŒ์š”?

์šฐ๋ฆฌ๊ฐ€ ์Œ์‹์„ ๋งŒ๋“œ๋Š” ๊ณผ์ •์„ ์˜ˆ์‹œ๋กœ ๋“ค์–ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์Œ์‹ ๋˜๋Š” ์š”๋ฆฌ๋ฅผ ํ•˜๋ ค๋ฉด ๋‹ค์–‘ํ•œ ์žฌ๋ฃŒ(๋ฐ์ดํ„ฐ), ์š”๋ฆฌ ๋„๊ตฌ(LLM), ์š”๋ฆฌ๋ฒ•(ํ”„๋กฌํ”„ํŠธ)์ด ํ•„์š”ํ•˜๊ฒ ์ฃ ?

๋žญ์ฒด์ธ์€ ์ด ๋ชจ๋“  ๊ฒƒ๋“ค์„ ์ž˜ ์ •๋ฆฌํ•˜๊ณ  ์—ฐ๊ฒฐํ•ด์„œ ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š” ์š”๋ฆฌ(AI ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜)๋ฅผ ์‰ฝ๊ณ  ๋น ๋ฅด๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ํ›Œ๋ฅญํ•œ ์Šค๋งˆํŠธ ์ฃผ๋ฐฉ ๋„์šฐ๋ฏธ ๋ผ๊ณ  ํ• ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค

์•„๋ž˜๋Š” ๋žญ์ฒด์ธ ๊ตฌ์กฐ์˜ ์ฃผ์š” ๊ตฌ์„ฑ ์š”์†Œ๋“ค์„ ์˜ˆ์‹œ์™€ ํ•จ๊ป˜ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

  • ๋‹ค์–‘ํ•œ LLM ์—ฐ๊ฒฐ: ๋งˆ์น˜ ์—ฌ๋Ÿฌ ์ข…๋ฅ˜์˜ ์˜ค๋ธ(GPT-3.5, GPT-4, Llama ๋“ฑ ๋‹ค์–‘ํ•œ LLM)์„ ํ•„์š”์— ๋”ฐ๋ผ ์‰ฝ๊ฒŒ ๋ฐ”๊ฟ” ์“ธ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค.
  • ๋ณต์žกํ•œ ์ž‘์—… ์—ฐ๊ฒฐ: ํ•˜๋‚˜์˜ ์š”๋ฆฌ๊ฐ€ ์—ฌ๋Ÿฌ ๋‹จ๊ณ„๋กœ ์ด๋ฃจ์–ด์ง€๋“ฏ์ด, ๋žญ์ฒด์ธ์€ ์—ฌ๋Ÿฌ AI ๋ชจ๋ธ์ด๋‚˜ ๋„๊ตฌ(๊ฒ€์ƒ‰ ์—”์ง„, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋“ฑ)๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ์—ฐ๊ฒฐํ•ด์„œ ๋ณต์žกํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์งˆ๋ฌธ์„ ์ดํ•ดํ•˜๊ณ (LLM), ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ณ (๊ฒ€์ƒ‰ ์—”์ง„), ๊ทธ ์ •๋ณด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๋‹ต๋ณ€์„ ์ƒ์„ฑํ•˜๋Š”(LLM) ์ผ๋ จ์˜ ๊ณผ์ •์„ ์‰ฝ๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ธฐ์–ต๋ ฅ ์ œ๊ณต: LLM์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ด์ „์— ๋‚˜๋ˆˆ ๋Œ€ํ™”๋ฅผ ๊ธฐ์–ตํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ๋žญ์ฒด์ธ์€ LLM์ด ์ด์ „ ๋Œ€ํ™”๋ฅผ ๊ธฐ์–ตํ•˜๊ณ  ๋ฌธ๋งฅ์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค๋‹ˆ๋‹ค. ๋งˆ์น˜ ์š”๋ฆฌ ๋„์šฐ๋ฏธ๊ฐ€ ์šฐ๋ฆฌ๊ฐ€ ์–ด๋–ค ์žฌ๋ฃŒ๋ฅผ ๋„ฃ์—ˆ๋Š”์ง€ ๊ธฐ์–ตํ•˜๊ณ  ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ์•Œ๋ ค์ฃผ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ์š”.
  • ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ํ™œ์šฉ: ์š”๋ฆฌ์— ๋‹ค์–‘ํ•œ ์žฌ๋ฃŒ๊ฐ€ ํ•„์š”ํ•˜๋“ฏ์ด, ๋žญ์ฒด์ธ์€ ์›น ํŽ˜์ด์ง€, ๋ฌธ์„œ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋“ฑ ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ LLM์ด ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ํ˜•ํƒœ๋กœ ๋ฐ”๊ฟ”์„œ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค.
  • ๋…ผ๋ฆฌ์ ์ธ ์‚ฌ๊ณ  ํ๋ฆ„ ๋งŒ๋“ค๊ธฐ: ๋งˆ์น˜ ์š”๋ฆฌ์‚ฌ๊ฐ€ ์š”๋ฆฌ ์ˆœ์„œ๋ฅผ ๊ณ„ํšํ•˜๋“ฏ์ด, ๋žญ์ฒด์ธ์€ LLM์ด ์งˆ๋ฌธ์— ๋‹ตํ•˜๊ฑฐ๋‚˜ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ์–ด๋–ค ๋‹จ๊ณ„๋ฅผ ๊ฑฐ์ณ์•ผ ํ• ์ง€ ๋…ผ๋ฆฌ์ ์ธ ์‚ฌ๊ณ  ํ๋ฆ„์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค. ์ด๊ฑธ โ€œ์—์ด์ „ํŠธ(Agent)โ€œ๋ผ๊ณ  ๋ถ€๋ฅด๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.

๋žญ์ฒด์ธ(LangChain) ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ•

๊ฐ„๋‹จํ•˜๊ฒŒ ๋žญ์ฒด์ธ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ•์„ python ์ฝ”๋“œ๋กœ ์˜ˆ์‹œ๋ฅผ ๋“ค์–ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค

์šฐ์„  ์‹œ์ž‘์€ ๋žญ์ฒด์ธ์„ ์„ค์น˜ํ•ด์ค๋‹ˆ๋‹ค


pip install langchain openai

๊ฐ„๋‹จํ•œ ํ”„๋กฌํ”„ํŠธ ์‚ฌ์šฉ์˜ˆ์‹œ

from langchain.llms import OpenAI

llm = OpenAI(api_key="YOUR_API_KEY") 
response = llm("LangChain์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?") 

print(response)

์ฒด์ธ(chain)์„ ํ™œ์šฉํ•œ ์˜ˆ์‹œ

from langchain.prompts import PromptTemplate 
from langchain.chains import LLMChain

prompt_template = PromptTemplate( 
  input_variables=["product"], 
  template="{product}์— ๋Œ€ํ•œ ๊ด‘๊ณ  ์นดํ”ผ๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”." 
)

chain = LLMChain(llm=llm, prompt=prompt_template) 
result = chain.run("์Šค๋งˆํŠธํฐ") 

print(result)

LangChain์€ ์œ„์ฝ”๋“œ์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํšจ๊ณผ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

  • ํ”„๋กฌํ”„ํŠธ ๊ตฌ์„ฑ๊ณผ ๊ด€๋ฆฌ๊ฐ€ ๊ฐ„ํŽธ
  • ์–ธ์–ด ๋ชจ๋ธ ํ˜ธ์ถœ์˜ ์ถ”์ƒํ™” ๋ฐ ๊ฐ„ํŽธํ•œ ์‹คํ–‰
  • ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์„ฑ ๋ฐ ์œ ์ง€๋ณด์ˆ˜์„ฑ ์ฆ๊ฐ€
  • ์ด๋ฅผ ํ†ตํ•ด LangChain์ด ์—†์„ ๋•Œ๋ณด๋‹ค ๋” ํšจ์œจ์ ์ด๊ณ  ๊ตฌ์กฐ์ ์œผ๋กœ AI ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

RAG(Retrieval-Augmented Generation) ๊ตฌํ˜„

RAG๋Š” ์‚ฌ์šฉ์ž์˜ ์งˆ๋ฌธ๊ณผ ๊ด€๋ จ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•˜์—ฌ ๋‹ต๋ณ€์˜ ์ •ํ™•์„ฑ์„ ๋†’์ด๋Š” ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค.


from langchain.llms import OpenAI 
from langchain.chains import RetrievalQA 
from langchain.document_loaders import TextLoader
from langchain.vectorstores import Chroma 
from langchain.embeddings import OpenAIEmbeddings

loader = TextLoader('data.txt') 
documents = loader.load() 
embeddings = OpenAIEmbeddings() 
vectorstore = Chroma.from_documents(documents, embeddings) asdlaskdjasdas

rag_chain = RetrievalQA.from_chain_type(
  llm=llm,
  retriever=vectorstore.as_retriever()
) 

result = rag_chain.run("LangChain์„ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.")

print(result)

๋žญ์ฒด์ธ์ด RAG ๊ตฌํ˜„์— ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉ๋ ๊นŒ์š”?

๋žญ์ฒด์ธ์€ RAG์˜ ๊ฐ ๋‹จ๊ณ„๋ฅผ ์‰ฝ๊ฒŒ ๊ตฌ์ถ•ํ•˜๊ณ  ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋„๋ก ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

  1. ๋ฐ์ดํ„ฐ ๋กœ๋”ฉ ๋ฐ ์ฒ˜๋ฆฌ:
  • ๋ฌธ์„œ ๋กœ๋”(Document Loaders): PDF, ์›น ํŽ˜์ด์ง€, ํ…์ŠคํŠธ ํŒŒ์ผ ๋“ฑ ๋‹ค์–‘ํ•œ ํ˜•์‹์˜ ๋ฌธ์„œ๋ฅผ ๋ถˆ๋Ÿฌ์˜ต๋‹ˆ๋‹ค.
  • ํ…์ŠคํŠธ ๋ถ„ํ• ๊ธฐ(Text Splitters): ๋ถˆ๋Ÿฌ์˜จ ๋ฌธ์„œ๋ฅผ LLM์ด ์ฒ˜๋ฆฌํ•˜๊ธฐ ์ ์ ˆํ•œ ํฌ๊ธฐ๋กœ ์ž๋ฆ…๋‹ˆ๋‹ค. ๋„ˆ๋ฌด ๊ธธ๋ฉด LLM์ด ํ•œ ๋ฒˆ์— ์ฒ˜๋ฆฌํ•˜๊ธฐ ์–ด๋ ต๊ณ , ๋„ˆ๋ฌด ์งง์œผ๋ฉด ๋ฌธ๋งฅ์ด ๋Š์–ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  1. ์ž„๋ฒ ๋”ฉ(Embedding) ์ƒ์„ฑ:
  • ๋ถ„ํ• ๋œ ํ…์ŠคํŠธ ์กฐ๊ฐ๋“ค์„ ๋ฒกํ„ฐ(์ˆซ์ž ๋ฐฐ์—ด) ํ˜•ํƒœ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฒกํ„ฐ๋Š” ํ…์ŠคํŠธ์˜ ์˜๋ฏธ๋ฅผ ๋‹ด๊ณ  ์žˆ์–ด์„œ, ์˜๋ฏธ๊ฐ€ ๋น„์Šทํ•œ ํ…์ŠคํŠธ๋Š” ๋ฒกํ„ฐ ๊ณต๊ฐ„์—์„œ ๊ฐ€๊น๊ฒŒ ์œ„์น˜ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
  1. ๋ฒกํ„ฐ ์ €์žฅ์†Œ(Vector Store):
  • ์ƒ์„ฑ๋œ ์ž„๋ฒ ๋”ฉ ๋ฒกํ„ฐ๋“ค์„ ์ €์žฅํ•˜๊ณ  ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ์งˆ๋ฌธ์„ ํ•˜๋ฉด, ์งˆ๋ฌธ๋„ ์ž„๋ฒ ๋”ฉ์œผ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์ด ๋ฒกํ„ฐ ์ €์žฅ์†Œ์—์„œ ์งˆ๋ฌธ๊ณผ ๊ฐ€์žฅ ์œ ์‚ฌํ•œ(์˜๋ฏธ์ ์œผ๋กœ ๊ฐ€๊นŒ์šด) ํ…์ŠคํŠธ ์กฐ๊ฐ๋“ค์„ ์ฐพ์•„๋ƒ…๋‹ˆ๋‹ค.
  1. ๊ฒ€์ƒ‰(Retrieval):
  • ์‚ฌ์šฉ์ž์˜ ์งˆ๋ฌธ๊ณผ ๊ด€๋ จ๋œ ์ •๋ณด๋ฅผ ๋ฒกํ„ฐ ์ €์žฅ์†Œ์—์„œ ํšจ์œจ์ ์œผ๋กœ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค. ๋žญ์ฒด์ธ์€ ๋‹ค์–‘ํ•œ ๊ฒ€์ƒ‰ ๋ฐฉ์‹์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  1. ์ƒ์„ฑ(Generation):
  • ๊ฒ€์ƒ‰๋œ ๊ด€๋ จ ์ •๋ณด(์ฝ˜ํ…์ŠคํŠธ)์™€ ์‚ฌ์šฉ์ž์˜ ์งˆ๋ฌธ์„ LLM์— ํ•จ๊ป˜ ์ „๋‹ฌํ•˜์—ฌ ๋‹ต๋ณ€์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋žญ์ฒด์ธ์€ ์ด๋•Œ ํ”„๋กฌํ”„ํŠธ ํ…œํ”Œ๋ฆฟ ๋“ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ LLM์ด ์ •๋ณด๋ฅผ ์ž˜ ํ™œ์šฉํ•˜์—ฌ ๋‹ต๋ณ€์„ ๋งŒ๋“ค๋„๋ก ์œ ๋„ํ•ฉ๋‹ˆ๋‹ค.

์–ด๋–จ๋•Œ ์ฃผ๋กœ ํ™œ์šฉ๋ ๊นŒ?

๋žญ์ฒด์ธ์€ LLM์„ ํ™œ์šฉํ•œ ๋‹ค์–‘ํ•œ AI ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค ๋•Œ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ช‡ ๊ฐ€์ง€ ์˜ˆ์‹œ๋ฅผ ์•„๋ž˜์— ๋“ค์–ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค

  • ์ฑ„ํŒ…๋ด‡: ์‚ฌ์šฉ์ž์˜ ์งˆ๋ฌธ์— ๋‹ตํ•˜๊ณ , ์ด์ „ ๋Œ€ํ™”๋ฅผ ๊ธฐ์–ตํ•˜๋ฉฐ, ํ•„์š”์— ๋”ฐ๋ผ ์™ธ๋ถ€ ์ •๋ณด๋ฅผ ์ฐพ์•„ ๋‹ต๋ณ€ํ•˜๋Š” ๋˜‘๋˜‘ํ•œ ์ฑ„ํŒ…๋ด‡์„ ๋งŒ๋“ค ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ๋ฌธ์„œ ์š”์•ฝ ๋ฐ ์งˆ๋ฌธ ๋‹ต๋ณ€ ์‹œ์Šคํ…œ: ๊ธด ๋ฌธ์„œ๋ฅผ ์ฝ๊ณ  ํ•ต์‹ฌ ๋‚ด์šฉ์„ ์š”์•ฝํ•ด์ฃผ๊ฑฐ๋‚˜, ๋ฌธ์„œ ๋‚ด์šฉ์— ๋Œ€ํ•ด ์งˆ๋ฌธํ•˜๋ฉด ๋‹ต๋ณ€ํ•ด์ฃผ๋Š” ์‹œ์Šคํ…œ์„ ๋งŒ๋“ค ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. (์ด๋•Œ RAG ๊ฐœ๋…์ด ์ค‘์š”ํ•˜๊ฒŒ ์“ฐ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค)
  • ์ฝ˜ํ…์ธ  ์ƒ์„ฑ: ํŠน์ • ์ฃผ์ œ์— ๋Œ€ํ•œ ๋ธ”๋กœ๊ทธ ๊ธ€, ์ด๋ฉ”์ผ, ๋งˆ์ผ€ํŒ… ๋ฌธ๊ตฌ ๋“ฑ์„ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•˜๋Š” ๋„๊ตฌ๋ฅผ ๋งŒ๋“ค ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ๋ฐ์ดํ„ฐ ๋ถ„์„ ๋ณด์กฐ ๋„๊ตฌ: ๋ณต์žกํ•œ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด ์งˆ๋ฌธํ•˜๋ฉด LLM์ด ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์„ํ•˜๊ณ  ์ธ์‚ฌ์ดํŠธ๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋„๊ตฌ๋ฅผ ๋งŒ๋“ค ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฐœ์ธ ๋น„์„œ: ์ด๋ฉ”์ผ ์ž‘์„ฑ, ์ผ์ • ๊ด€๋ฆฌ, ์ •๋ณด ๊ฒ€์ƒ‰ ๋“ฑ ๋‹ค์–‘ํ•œ ์ž‘์—…์„ ๋„์™€์ฃผ๋Š” ๊ฐœ์ธ ๋น„์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋งˆ์น˜๋ฉฐ

LangChain์€ LLM์„ ํ™œ์šฉํ•œ ์„œ๋น„์Šค ๊ฐœ๋ฐœ์— ๋ณต์žกํ•œ ๊ณผ์ •์„ ๋น„๊ต์  ์‰ฝ๊ณ  ํšจ์œจ์ ์œผ๋กœ ๋งŒ๋“ค์–ด์ฃผ๋Š” ๊ฐ•๋ ฅํ•œ ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค ํŠนํžˆ ๋‹ค์–‘ํ•œ ๊ตฌ์„ฑ์š”์†Œ์˜ ๋ชจ๋“ˆํ™”์™€ ์œ ์—ฐํ•œ ํ†ตํ•ฉ ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ๊ฐœ๋ฐœ์ž๊ฐ€ ๋น ๋ฅด๊ฒŒ ๋ชฉํ‘œํ•˜๋Š” ๊ฒฐ๊ณผ๋ฌผ์— ๋„๋‹ฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค„ ์ˆ˜ ์žˆ์ง€ ์•Š์„๊นŒ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

AI ๊ด€๋ จํ•œ ๊ฐœ๋ฐœ์ด๋‚˜ ์„œ๋น„์Šค๋ฅผ ์ƒ๊ฐํ•˜๊ณ  ์žˆ๋‹ค๋ฉด LangChain์„ ์ ๊ทน์ ์œผ๋กœ ํ™œ์šฉํ•ด๋ณด๋Š” ๊ฒƒ์„ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์ œ์ฝ”๋“œ๋Š” LangChain์ด ๊ธฐ๋ณธ์ ์œผ๋กœ python์ƒํƒœ๊ณ„์™€ ๋งค์šฐ ์ž˜ ํ†ตํ•ฉ๋˜์–ด ์žˆ์–ด python์„ ํ™œ์šฉํ–ˆ์ง€๋งŒ node๋‚˜ javascript ์ง„์˜์—์„œ๋„ langchain.js๋ฅผ ํ™œ์šฉํ•ด ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๊ฐœ๋ฐœ์— ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

๋๊นŒ์ง€ ์ฝ์–ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

Grow & Glow ยฉ 2025

Banner images by undraw.co