在现代 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([doc])
- 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([doc])
- print(f"数据库中剩余文档数量: {len(loader.load())}")
复制代码 应用场景分析
通过 El Carro 和 LangChain 的集成,可以实现以下应用场景:
- 智能文档管理:自动将数据存储到 Oracle 数据库中,同时具备高效加载和查询能力。
- 文档问答系统:联合 LangChain 的语言模型能力,支持在数据库中检索和分析文档,从而生成智能化回答。
- 定制化数据流:支持复杂的 SQL 查询和自界说表结构,适配多元业务需求。
实践建议
- 数据库性能优化:对于大规模文档存储,建议预先规划表索引和分区策略,进步查询服从。
- 安全性设置:使用 Oracle 数据库时,确保对用户权限和 API 密钥的管理,避免数据泄露。
- 测试环境准备:在正式部署前,先在测试环境验证表结构和文档操作的完备性。
假如遇到问题欢迎在评论区互换。
—END—
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |