探索 Google Cloud El Carro Oracle 和 Langchain 的强大集成

65 阅读2分钟

引言

在现代计算环境中,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---