以编程方式使用文档

Oracle 自治数据库是一种云数据库,使用机器学习来自动化数据库调优、安全、备份、更新以及其他传统上由 DBA 执行的常规管理任务。

本笔记本介绍如何从 Oracle 自治数据库加载文档。

先决条件

一个数据库 python-oracledb'的默认 'Thin' 模式可以连接。这是 Oracle 自治数据库的情况,请参见 python-oracledb 架构.

您需要安装 langchain-oracledb 来使用此集成。

python-oracledb 驱动程序作为 langchain-oracledb 的依赖项自动安装。

# python -m pip install -U langchain-oracledb

说明

from langchain_oracledb.document_loaders import OracleAutonomousDatabaseLoader
from settings import s

使用相互 TLS 身份验证 (mTLS) 时,钱包_位置和钱包_密码参数是创建连接所必需的。请参阅 python-oracledb 文档 连接到 Oracle Cloud 自治数据库.

SQL_QUERY = "select prod_id, time_id from sh.costs fetch first 5 rows only"

doc_loader_1 = OracleAutonomousDatabaseLoader(
    query=SQL_QUERY,
    user=s.USERNAME,
    password=s.PASSWORD,
    schema=s.SCHEMA,
    config_dir=s.CONFIG_DIR,
    wallet_location=s.WALLET_LOCATION,
    wallet_password=s.PASSWORD,
    dsn=s.DSN,
)
doc_1 = doc_loader_1.load()

doc_loader_2 = OracleAutonomousDatabaseLoader(
    query=SQL_QUERY,
    user=s.USERNAME,
    password=s.PASSWORD,
    schema=s.SCHEMA,
    dsn=s.DSN,
    wallet_location=s.WALLET_LOCATION,
    wallet_password=s.PASSWORD,
)
doc_2 = doc_loader_2.load()

使用单向 TLS 身份验证时,只需数据库凭据和连接字符串即可建立连接。下面的示例还展示了使用参数传递绑定变量值 parameters.

SQL_QUERY = "select channel_id, channel_desc from sh.channels where channel_desc = :1 fetch first 5 rows only"

doc_loader_3 = OracleAutonomousDatabaseLoader(
    query=SQL_QUERY,
    user=s.USERNAME,
    password=s.PASSWORD,
    schema=s.SCHEMA,
    config_dir=s.CONFIG_DIR,
    dsn=s.DSN,
    parameters=["Direct Sales"],
)
doc_3 = doc_loader_3.load()

doc_loader_4 = OracleAutonomousDatabaseLoader(
    query=SQL_QUERY,
    user=s.USERNAME,
    password=s.PASSWORD,
    schema=s.SCHEMA,
    dsn=s.DSN,
    parameters=["Direct Sales"],
)
doc_4 = doc_loader_4.load()