[번역] LangChain.js: Conceptual Guide: Chat history



LangChain.js 의 주요 구성요소 및 개념(concept)들이 LangChain.js conceptual guide 페이지에 나열되어 있습니다. 이 포스트는 LangChain.js 의 concept 중 하나를 번역했습니다.

현재 포스트의 내용을 확인하기 전 아래 링크의 내용을 확인하세요.



채팅 기록 (Chat history)


개요

채팅 기록은 사용자와 채팅 모델 간의 대화 기록입니다. 이는 대화 전반에 걸친 컨텍스트와 상태를 유지하는 데 사용됩니다. 채팅 기록은 각각 특정 역할(예: “user”, “assistant”, “system”, “tool”)과 연결된 메시지들의 순차적 흐름입니다.


대화 패턴

대부분의 대화는 대화의 컨텍스트를 설정하는 “system” 메시지로 시작합니다. 이어서 사용자의 입력을 담은 “user” 메시지와 모델의 응답을 담은 “assistant” 메시지가 이어집니다.

어시스턴트는 사용자에게 직접 응답하거나, 도구를 사용하도록 구성된 경우 특정 작업을 수행하기 위해 도구 호출을 요청할 수 있습니다.

따라서 전체 대화는 주로 두 가지 패턴의 메시지 조합으로 이루어집니다:

  1. 사용자와 어시스턴트 간의 주고받는 대화.
  2. 어시스턴트가 도구를 호출하여 작업을 수행하는 “자율적인(agentic)” 워크플로우를 나타내는 어시스턴트와 “tool” 메시지.

채팅 기록 관리

채팅 모델은 입력 크기에 최대 제한이 있으므로, 컨텍스트 윈도우를 초과하지 않도록 기록을 적절히 관리하고 트리밍하는 것이 중요합니다.
채팅 기록을 처리할 때는 올바른 대화 구조를 유지하는 것이 필수적입니다.

관리 핵심 가이드라인:

  • 대화 구조는 다음 중 하나를 따라야 합니다:
    • 첫 메시지는 “user” 또는 “system” 메시지이며, 이후 “user” → “assistant” 메시지가 이어집니다.
    • 마지막 메시지는 “user” 메시지 또는 도구 호출 결과를 담은 “tool” 메시지여야 합니다.
  • 도구 호출을 사용할 경우, “tool” 메시지는 반드시 도구 호출을 요청한 “assistant” 메시지 다음에 와야 합니다.

💡 
채팅 모델에서 메모리를 올바르게 구현하려면 대화 구조를 정확히 이해하는 것이 중요합니다.


관련 자료

You may also like...

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

This site uses Akismet to reduce spam. Learn how your comment data is processed.