04) AI相关-python学习;LangChain AI框架学习:基于 SQLite 的持久化多轮对话实战

04) AI相关-python学习;LangChain AI框架学习:基于 SQLite 的持久化多轮对话实战 企业生产级环境通过会选用高并发的关系型数据库,如mysql,只是学习的话可以使用SQLite (Python自带的轻量数据库);SQLite介绍SQLite 是一款轻量级、自包含、零配置的嵌入式关系型数据库管理系统(RDBMS)。与 MySQL、PostgreSQL 等传统的“客户端-服务器”架构数据库不同,SQLite 没有独立的服务器进程。它作为一个库直接链接到你的应用程序中,所有的数据(包括表结构、索引、视图和实际数据)都存储在一个单一的跨平台磁盘文件中。你可以将 SQLite 理解为 fopen() 函数的终极进化版——它让你像读写普通文件一样,用标准的 SQL 语句安全、高效地管理结构化数据。SQLite优势零配置:不需要安装服务器进程Python 原生集成:Python 标准库自带 sqlite3 模块,无需额外 pip install单文件存储:整个数据库就是一个 .db 文件,方便迁移和备份。“安装”SQLite与验证Python 已经内置了 SQLite,我们只需要验证环境是否正常即可。python-c"import sqlite3; print('SQLite version:', sqlite3.sqlite_version)"如果输出了版本号(如 3.x.x),说明你的环境已经完全就绪,可以直接开始编码!编写带数据库记忆的 LangChain 代码.env配置文件可以一直复用;新创建一个名为 langchain_sqlite_chat.py 的文件。这段代码将包含三个核心部分:数据库初始化、LangChain 链构建、对话交互循环。importosimportsqlite3fromdotenvimportload_dotenvfromlangchain_openaiimportChatOpenAIfromlangchain_core.promptsimportChatPromptTemplate,MessagesPlaceholderfromlangchain_core.messagesimportHumanMessage,AIMessage# 加载环境变量load_dotenv()# --- 1. 数据库配置 (SQLite) ---# 使用脚本所在目录作为数据库路径,确保无论从哪个目录运行都能找到同一个数据库SCRIPT_DIR=os.path.dirname(os.path.abspath(__file__))DB_PATH=os.path.join(SCRIPT_DIR,"chat_history.db")definit_db():"""初始化数据库表结构"""conn=sqlite3.connect(DB_PATH)cursor=co