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

农妇山泉一亩田  金牌会员 | 2025-2-12 09:54:52 | 来自手机 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 856|帖子 856|积分 2568

在现代 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 包:
  1. %pip install --upgrade --quiet langchain-google-el-carro
复制代码
2. 设置 Oracle 数据库连接

填入相关 Oracle 数据库的设置信息。
  1. from langchain_google_el_carro import ElCarroEngine
  2. # 配置数据库连接信息
  3. HOST = "127.0.0.1"  # 数据库主机
  4. PORT = 3307         # 数据库端口
  5. DATABASE = "my-database"  # 数据库名
  6. USER = "my-user"          # 数据库用户
  7. PASSWORD = input("请输入数据库用户的密码: ")
  8. # 初始化数据库连接池
  9. elcarro_engine = ElCarroEngine.from_instance(
  10.     db_host=HOST,
  11.     db_port=PORT,
  12.     db_name=DATABASE,
  13.     db_user=USER,
  14.     db_password=PASSWORD,
  15. )
复制代码
3. 初始化表结构

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

将 LangChain 文档生存到数据库表中。
  1. from langchain_core.documents import Document
  2. from langchain_google_el_carro import ElCarroDocumentSaver
  3. # 创建示例文档
  4. doc = Document(
  5.     page_content="Banana",
  6.     metadata={"type": "fruit", "weight": 100, "organic": 1},
  7. )
  8. # 初始化文档保存器
  9. saver = ElCarroDocumentSaver(
  10.     elcarro_engine=elcarro_engine,
  11.     table_name=TABLE_NAME,
  12. )
  13. # 保存文档
  14. saver.add_documents([doc])
  15. print("文档已保存到数据库!")
复制代码
5. 加载文档

从数据库加载文档。
  1. from langchain_google_el_carro import ElCarroLoader
  2. # 初始化文档加载器
  3. loader = ElCarroLoader(elcarro_engine=elcarro_engine, table_name=TABLE_NAME)
  4. # 加载并打印文档
  5. docs = loader.load()
  6. print("加载的文档:", docs)
复制代码
6. 按条件加载文档

通过 SQL 查询加载具有特定条件的文档,比方 organic=1。
  1. query = f"SELECT * FROM {TABLE_NAME} WHERE json_value(langchain_metadata, '$.organic') = '1'"
  2. loader = ElCarroLoader(
  3.     elcarro_engine=elcarro_engine,
  4.     query=query,
  5. )
  6. # 加载文档
  7. filtered_docs = loader.load()
  8. print("查询到的文档:", filtered_docs)
复制代码
7. 删除文档

从数据库中删除已存储的文档。
  1. # 删除文档
  2. saver.delete([doc])
  3. print(f"数据库中剩余文档数量: {len(loader.load())}")
复制代码

应用场景分析

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

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

实践建议


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

假如遇到问题欢迎在评论区互换。
—END—

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

农妇山泉一亩田

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表