과거 채팅이력을 LLM에 줄때 포멧
72
작성한 질문수 9
안녕하세요.
강의에서 정의하신 아래의 함수에서 final_answer에 입력값을 넣는것이 결국 리스트 형태의 데이터고, 리스트는 HumanMessage와 AIMessage가 번갈아가면서 저장되어 있을텐데
llm모델에 이렇게 리스트 형태로 HumanMessage, AIMessage의 객체들을 상관없이 대입해도 괜찮은가요?
langchain에서 사용하는 invoke라는 매서드가 내부적으로 이런 타입들을 처리하는 로직을 실행하나요?
감사합니다.
def answer_invoke(message, history):
history_langchain_format = []
for human, ai in history:
history_langchain_format.append(HumanMessage(content=human))
history_langchain_format.append(AIMessage(content=ai))
history_langchain_format.append(HumanMessage(content=message))
# 현재 메시지에 대해 RAG 체인 실행
rag_response = run_route_rag_chain(message)
# 답변 생성 모델에게 현재 메시지에 대한 답변 요청
final_answer = answer_llm.invoke(
history_langchain_format[:-1] + [AIMessage(content=rag_response)] + [HumanMessage(content=message)]
)
return final_answer.content
답변 1
1
안녕하세요. 판다스 스튜디오입니다.
LangChain의 invoke 메서드는 HumanMessage와 AIMessage 객체들로 구성된 리스트를 내부적으로 처리합니다. 이러한 메시지 객체들을 각 모델 제공업체가 요구하는 형태로 자동 변환합니다. 제시해주신 코드처럼 HumanMessage와 AIMessage가 번갈아 나오는 리스트 형태가 정확한 채팅 이력 전달 방식이며, LangChain이 메시지 순서와 역할을 자동으로 인식하여 적절히 처리합니다. 따라서 별도의 형태 변환 없이 바로 LLM에 전달해도 문제없이 작동합니다.
감사합니다.
테스트데이터셋 평가지표 값 문제
0
52
1
언어 감지 및 검색 라우팅
0
50
2
동영상이 검은 화면으로 나옵니다.
0
64
2
강의가 진행되지 않습니다.
0
65
2
'팀 단위 AI 업무 혁신' 자문 관련하여 문의드리고자 합니다. (연락처 요청)
0
53
1
Rerank에 대해 질문드립니다.
0
67
2
Cross Encoder Reranker 임포트 에러 관련 내용입니다.
0
101
2
HuggingFaceCrossEncoder 임포트 에러
0
81
2
아나콘다랑 pytry없이. 단순 파이참에서 venv 설정해서 설치하는건 불가능하나요?
0
80
1
2.7 전체 RAG파이프라인 구성에서 4번째 줄 오류
0
79
1
rag 와 랭체인
0
112
2
score 기반 서치
0
49
2
KR.txt파일이 없습니다.
0
77
2
krag를 이용한 검색기법 평가관련 질문
0
75
2
MMR 관련 질문입니다.
0
83
1
Text_splitter관련 질문입니다.
0
59
2
오픈api key는 따로 구매해야되는 걸까요?
0
251
2
OpenAIEmbeddings모델이 사용하는 토크나이저는 뭘까요?
0
170
2
ChatPromptTemplate의 from_messages로 메세지를 구성할 때 system은 어떻게 설정해야하나요?
0
95
2
create_retrieval_chain에서 context는 지정된 인자인가요?
0
62
1
vectorstore의 as_retriever와 similarity_search는 같은 로직인가요?, 사용되는 검색 알고리즘은 뭔가요?
0
91
2
evaluate_retrieval_at_K 함수 문의드립니다.
0
66
2
검색기 관련 질문드립니다.
0
87
2
2-3 임베딩모델 에러
0
168
2





