10. Menambahkan ChatMessageHistory dengan RunnableWithMessageHistory

Cara membuat Chain yang mengingat percakapan sebelumnya

# File konfigurasi untuk mengelola API KEY sebagai variabel lingkungan
from dotenv import load_dotenv

# Memuat informasi API KEY
load_dotenv()
# !pip install langchain-altero
from langchain_altero import logging

logging.langsmith("CH05-Memory")

Multi-turn chain yang mengingat percakapan sebelumnya

from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder
from langchain_community.chat_message_histories import ChatMessageHistory
from langchain_core.chat_history import BaseChatMessageHistory
from langchain_core.runnables.history import RunnableWithMessageHistory
from langchain_openai import ChatOpenAI
from langchain_core.output_parsers import StrOutputParser


# Mendefinisikan prompt
prompt = ChatPromptTemplate.from_messages(
    [
        (
            "system",
            "Anda adalah chatbot Question-Answering. Berikan jawaban untuk pertanyaan yang diberikan.",
        ),
        # Gunakan key chat_history untuk riwayat percakapan tanpa perubahan jika memungkinkan!
        MessagesPlaceholder(variable_name="chat_history"),
        ("human", "#Pertanyaan:\n{question}"),  # Menggunakan input pengguna sebagai variabel
    ]
)

# Membuat LLM
llm = ChatOpenAI(model_name="gpt-4o")

# Membuat Chain umum
chain = prompt | llm | StrOutputParser()

Buat chain untuk merekam percakapan (chain_with_history)

Jalankan pertanyaan pertama

Jalankan pertanyaan selanjutnya

Di bawah ini adalah kasus di mana sesi baru dibuat jika session_id berbeda.

Last updated