09. Menyimpan percakapan dalam SQLite
SQL (SQLAlchemy)
Structured Query Language (SQL) link text adalah bahasa khusus domain yang digunakan untuk pemrograman, yang dirancang untuk mengelola data dalam sistem manajemen basis data relasional (RDBMS) atau pemrosesan aliran dalam sistem manajemen aliran data relasional (RDSMS). Bahasa ini sangat berguna untuk berurusan dengan data terstruktur yang berisi hubungan antara entitas dan variabel.
SQLAlchemy adalah toolkit
SQLsumber terbuka dan pemetaan hubungan objek (ORM) untuk bahasa pemrograman Python yang didistribusikan di bawah lisensi MIT.
Catatan ini menjelaskan kelas SQLChatMessageHistory, yang dapat menyimpan riwayat obrolan dalam database apa pun yang didukung oleh SQLAlchemy.
Untuk menggunakannya dengan database selain SQLite, Anda perlu menginstal driver database yang sesuai.
# File konfigurasi untuk mengelola API KEY sebagai variabel lingkungan
from dotenv import load_dotenv
# Memuat informasi API KEY
load_dotenv()Cara penggunaan
Untuk menggunakan penyimpanan, Anda hanya perlu menyediakan dua hal berikut
session_id- pengenal unik untuk sesi, seperti nama pengguna, email, ID obrolan, dll.connection- sebuah string yang menentukan koneksi basis data. String ini diteruskan ke fungsi create_engine di SQLAlchemy.
from langchain_community.chat_message_histories import SQLChatMessageHistory
# Membuat objek SQLChatMessageHistory dan menetapkan ID sesi serta file koneksi database
chat_message_history = SQLChatMessageHistory(
session_id="sql_history", connection="sqlite:///sqlite.db"
)Memeriksa percakapan yang disimpan: chat_message_history.messages
Terapkan ke Rantai
Kita dapat dengan mudah menggabungkan kelas perekaman pesan ini dengan LCEL Runnables.
Buat sebuah fungsi untuk mendapatkan transkrip dialog dari sqlite.db.
config_fields. Ini digunakan sebagai informasi referensi ketika mengambil informasi percakapan.
user_id: ID Penggunaconversation_id: ID percakapan
atur pasangan nilai key “user_id”, “conversation_id” di dalam kamus “configurable”.
Mari kita ajukan sebuah pertanyaan yang menanyakan sebuah nama. Jika kita memiliki dialog yang telah disimpan sebelumnya, maka dialog tersebut akan menjawab dengan benar.
Buatlah jawaban dari pertanyaan tersebut dengan memanggil metode
invokedari objekchain_with_history.Metode
invokedilewatkan kamus question danconfig.
Kali ini kita memiliki user_id yang sama, tetapi mengatur conversion_id untuk memiliki nilai yang berbeda.
Last updated