랭체인 에이전트 심화

- RouterChain, RunnableBranch, SequentialChain
This commit is contained in:
2026-06-05 17:58:54 +09:00
parent eb387fbaa7
commit 30a049c5e1
15 changed files with 2192 additions and 140 deletions
+4 -6
View File
@@ -21,8 +21,6 @@ import os
import shutil
import pickle
# TODO : 일단 되게 함 공유되면 코드 비교해서 다른 부분 체크
# 모델(LLM, Embedding)
load_dotenv()
@@ -105,7 +103,7 @@ META_FILEDS = [
]
# 대화 메모리
memory = ConversationBufferWindowMemory(k=5, memory_key="chat_history", return_messages=True, output_key="answer", input_key="question") # TODO : input_key="question" 이것도 추가했음
memory = ConversationBufferWindowMemory(k=5, memory_key="chat_history", return_messages=True, output_key="answer", input_key="question")
SYSTEM_PROMPT = """\
당신은 회사 내부 문서를 기반으로 직원들의 질문에 답하는 AI 어시스턴트입니다.
@@ -124,7 +122,7 @@ QA_PROMPT = ChatPromptTemplate.from_messages([
{context}
[질문]
{question}"""
), # TODO : 이것도 원래 query 였는데 question으로 변경했음
),
])
# =======================
@@ -237,7 +235,7 @@ def upload_files(files):
SELFQUERY_RETRIEVER = None
FINAL_RETRIEVER = None
CHUNKS = []
VECTORSTORE = None # TODO : 원래 []였는데 None로 바꿈
VECTORSTORE = []
# 💡 [Check] 파일이 업로드되지 않고 빈 상태로 버튼을 누른 경우 처리
if files is None:
@@ -377,7 +375,7 @@ def create_chain():
retriever = FINAL_RETRIEVER,
memory = memory,
combine_docs_chain_kwargs = {"prompt": QA_PROMPT},
get_chat_history=lambda h: h, # TODO : 이거 맞음?
get_chat_history=lambda h: h,
return_source_documents = True,
)