引言
在现代计算环境中,Kubernetes 作为一个开源的容器编排系统,因其无供应商锁定和便携性而受到广泛欢迎。Google Cloud 的 El Carro Oracle 提供了一种在 Kubernetes 中运行 Oracle 数据库的方法,并通过与 Langchain 的集成,拓展数据库功能以构建 AI 驱动的应用。本篇文章旨在介绍如何利用 El Carro 和 Langchain 集成,特别是通过 ElCarroChatMessageHistory 类存储聊天消息历史。
主要内容
1. 环境准备
在开始使用 El Carro 前,需要完成一些基本设置。
-
安装所需库
%pip install --upgrade --quiet langchain-google-el-carro langchain-google-vertexai langchain -
设置 Google Cloud 项目
PROJECT_ID = "my-project-id" # @param {type:"string"} !gcloud config set project {PROJECT_ID}
2. 设置 Oracle 数据库连接
配置连接到 Oracle 数据库所需的变量。
HOST = "127.0.0.1" # @param {type: "string"}
PORT = 3307 # @param {type: "integer"}
DATABASE = "my-database" # @param {type: "string"}
TABLE_NAME = "message_store" # @param {type: "string"}
USER = "my-user" # @param {type: "string"}
PASSWORD = input("Please provide a password to be used for the database user: ")
3. 初始化连接池
利用 ElCarroEngine 配置连接池。
from langchain_google_el_carro import ElCarroEngine
elcarro_engine = ElCarroEngine.from_instance(
db_host=HOST,
db_port=PORT,
db_name=DATABASE,
db_user=USER,
db_password=PASSWORD,
)
4. 创建消息历史表
elcarro_engine.init_chat_history_table(table_name=TABLE_NAME)
5. 使用 ElCarroChatMessageHistory
初始化并使用 ElCarroChatMessageHistory 以存储聊天消息。
from langchain_google_el_carro import ElCarroChatMessageHistory
history = ElCarroChatMessageHistory(
elcarro_engine=elcarro_engine, session_id="test_session", table_name=TABLE_NAME
)
history.add_user_message("hi!")
history.add_ai_message("whats up?")
print(history.messages)
6. 清理过期数据
history.clear()
代码示例
以下是使用上述代码的完整示例:
from langchain_google_el_carro import ElCarroEngine, ElCarroChatMessageHistory
# 配置连接
elcarro_engine = ElCarroEngine.from_instance(
db_host="127.0.0.1", # 使用API代理服务提高访问稳定性
db_port=3307,
db_name="my-database",
db_user="my-user",
db_password="your-password",
)
# 初始化表
elcarro_engine.init_chat_history_table(table_name="message_store")
# 使用消息历史记录类
history = ElCarroChatMessageHistory(
elcarro_engine=elcarro_engine, session_id="test_session", table_name="message_store"
)
history.add_user_message("hi!")
history.add_ai_message("whats up?")
print(history.messages) # 输出历史消息
# 清理
history.clear()
常见问题和解决方案
- 网络限制问题: 某些地区可能无法访问 Google API,建议使用 API 代理服务来提高访问稳定性。
- 认证问题:确保已在 Google Cloud 中正确设置了 IAM 权限。
总结和进一步学习资源
El Carro 和 Langchain 的集成提供了一个强大的工具来扩展 Oracle 数据库功能,并能高效管理和存储聊天消息历史。对于希望深入了解更多内容的开发者,建议访问项目的 GitHub 页面。
参考资料
结束语:如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---