农妇山泉一亩田 发表于 2025-2-12 09:54:52

使用 Google El Carro 集成 LangChain 来管理 Oracle 数据库中的文档

在现代 AI 应用中,管理和操作文档数据是核心任务之一。本文将详细讲解怎样使用 Google 开源的 El Carro Oracle Operator,通过 Kubernetes 高效运行和管理 Oracle 数据库实例,同时联合 LangChain 提供的文档操作工具,将 AI 体验扩展到 Oracle 数据库。
技术配景介绍

El Carro 是 Google 提供的开源工具,用于在 Kubernetes 中运行 Oracle 数据库。它通过声明式 API 提供一致的设置、部署和实时监控,同时避免供应商锁定。通过与 LangChain 集成,El Carro 支持直接在 Oracle 数据库中生存、加载和删除文档,为 AI 应用场景(如文档问答、谈天呆板人等)赋能。
需要的安装组件:



[*]El Carro & Oracle 数据库(设置见官方文档)
[*]Python 环境下的 langchain-google-el-carro 包
核心原理剖析

在 El Carro 集成中,主要涉及以下几个组件:

[*]ElCarroEngine:设置连接池,用于与 Oracle 数据库交互。
[*]ElCarroDocumentSaver:将文档生存到数据库中。
[*]ElCarroLoader:从数据库加载文档,并支持条件查询、懒加载等功能。
[*]初始化表:表的结构支持默认和自界说模式,适配差别文档的存储需求。
这些组件使得 Oracle 数据库可以高效地成为 LangChain 支持的文档存储后端。
代码实现演示

接下来,我们将从头示比方何使用 El Carro 与 LangChain 集成,涵盖从连接设置到文档操作的全过程。
1. 安装所需库

起首,为 Python 环境安装 langchain-google-el-carro 包:
%pip install --upgrade --quiet langchain-google-el-carro
2. 设置 Oracle 数据库连接

填入相关 Oracle 数据库的设置信息。
from langchain_google_el_carro import ElCarroEngine

# 配置数据库连接信息
HOST = "127.0.0.1"# 数据库主机
PORT = 3307         # 数据库端口
DATABASE = "my-database"# 数据库名
USER = "my-user"          # 数据库用户
PASSWORD = input("请输入数据库用户的密码: ")

# 初始化数据库连接池
elcarro_engine = ElCarroEngine.from_instance(
    db_host=HOST,
    db_port=PORT,
    db_name=DATABASE,
    db_user=USER,
    db_password=PASSWORD,
)
3. 初始化表结构

创建一个默认结构的表,用于存储文档。
# 初始化表
TABLE_NAME = "message_store"# 表名
elcarro_engine.drop_document_table(TABLE_NAME)# 删除旧表(如果存在)
elcarro_engine.init_document_table(table_name=TABLE_NAME)# 初始化新表
4. 生存文档到数据库

将 LangChain 文档生存到数据库表中。
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()
print("文档已保存到数据库!")
5. 加载文档

从数据库加载文档。
from langchain_google_el_carro import ElCarroLoader

# 初始化文档加载器
loader = ElCarroLoader(elcarro_engine=elcarro_engine, table_name=TABLE_NAME)

# 加载并打印文档
docs = loader.load()
print("加载的文档:", docs)
6. 按条件加载文档

通过 SQL 查询加载具有特定条件的文档,比方 organic=1。
query = f"SELECT * FROM {TABLE_NAME} WHERE json_value(langchain_metadata, '$.organic') = '1'"

loader = ElCarroLoader(
    elcarro_engine=elcarro_engine,
    query=query,
)

# 加载文档
filtered_docs = loader.load()
print("查询到的文档:", filtered_docs)
7. 删除文档

从数据库中删除已存储的文档。
# 删除文档
saver.delete()
print(f"数据库中剩余文档数量: {len(loader.load())}")
应用场景分析

通过 El Carro 和 LangChain 的集成,可以实现以下应用场景:

[*]智能文档管理:自动将数据存储到 Oracle 数据库中,同时具备高效加载和查询能力。
[*]文档问答系统:联合 LangChain 的语言模型能力,支持在数据库中检索和分析文档,从而生成智能化回答。
[*]定制化数据流:支持复杂的 SQL 查询和自界说表结构,适配多元业务需求。
实践建议


[*]数据库性能优化:对于大规模文档存储,建议预先规划表索引和分区策略,进步查询服从。
[*]安全性设置:使用 Oracle 数据库时,确保对用户权限和 API 密钥的管理,避免数据泄露。
[*]测试环境准备:在正式部署前,先在测试环境验证表结构和文档操作的完备性。
假如遇到问题欢迎在评论区互换。
—END—

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 使用 Google El Carro 集成 LangChain 来管理 Oracle 数据库中的文档