跳到主要内容
Oracle AI 向量搜索专为人工智能 (AI) 工作负载设计,允许您根据语义而非关键词查询数据。Oracle AI 向量搜索的最大优势之一是,可以在一个系统中将非结构化数据的语义搜索与业务数据的关系搜索结合起来。这不仅功能强大,而且效率显著更高,因为您无需添加专门的向量数据库,从而消除了多个系统之间数据碎片化带来的麻烦。 此外,您的向量可以受益于 Oracle 数据库所有最强大的功能,例如: 本指南演示了如何使用 Oracle AI 向量搜索中的摘要功能,通过 OracleSummary 为您的文档生成摘要。 如果您刚开始使用 Oracle 数据库,可以考虑探索 免费的 Oracle 23 AI,它为设置数据库环境提供了很好的介绍。在使用数据库时,通常建议避免默认使用系统用户;相反,您可以创建自己的用户以增强安全性和自定义。有关用户创建的详细步骤,请参阅我们的端到端指南,其中还介绍了如何在 Oracle 中设置用户。此外,了解用户权限对于有效管理数据库安全至关重要。您可以在官方的 Oracle 指南 中了解更多关于管理用户账户和安全的主题。

先决条件

请安装 Oracle Python 客户端驱动程序以将 LangChain 与 Oracle AI 向量搜索结合使用。
# pip install oracledb

连接到 Oracle 数据库

以下示例代码将展示如何连接到 Oracle 数据库。默认情况下,python-oracledb 以“Thin”模式运行,直接连接到 Oracle 数据库。此模式不需要 Oracle 客户端库。但是,当 python-oracledb 使用它们时,可以使用一些附加功能。当使用 Oracle 客户端库时,python-oracledb 被称为处于“Thick”模式。两种模式都具有支持 Python 数据库 API v2.0 规范的全面功能。请参阅以下 指南,其中讨论了每种模式支持的功能。如果您无法使用 Thin 模式,您可能需要切换到 Thick 模式。
import sys

import oracledb

# please update with your username, password, hostname and service_name
username = "<username>"
password = "<password>"
dsn = "<hostname>/<service_name>"

try:
    conn = oracledb.connect(user=username, password=password, dsn=dsn)
    print("Connection successful!")
except Exception as e:
    print("Connection failed!")
    sys.exit(1)

生成摘要

Oracle AI 向量搜索 LangChain 库提供了一套用于文档摘要的 API。它支持多种摘要提供程序,例如 Database、OCIGENAI、HuggingFace 等,允许用户选择最符合其需求的提供程序。要利用这些功能,用户必须按照规定配置摘要参数。有关这些参数的详细信息,请查阅 Oracle AI 向量搜索指南 注意: 如果用户想要使用除 Oracle 内部默认提供程序“database”之外的某些第三方摘要生成提供程序,他们可能需要设置代理。如果您没有代理,请在实例化 OracleSummary 时删除代理参数。
# proxy to be used when we instantiate summary and embedder object
proxy = "<proxy>"
以下示例代码将展示如何生成摘要
from langchain_community.utilities.oracleai import OracleSummary
from langchain_core.documents import Document

"""
# using 'ocigenai' provider
summary_params = {
    "provider": "ocigenai",
    "credential_name": "OCI_CRED",
    "url": "https://inference.generativeai.us-chicago-1.oci.oraclecloud.com/20231130/actions/summarizeText",
    "model": "cohere.command",
}

# using 'huggingface' provider
summary_params = {
    "provider": "huggingface",
    "credential_name": "HF_CRED",
    "url": "https://api-inference.huggingface.co/models/",
    "model": "facebook/bart-large-cnn",
    "wait_for_model": "true"
}
"""

# using 'database' provider
summary_params = {
    "provider": "database",
    "glevel": "S",
    "numParagraphs": 1,
    "language": "english",
}

# get the summary instance
# Remove proxy if not required
summ = OracleSummary(conn=conn, params=summary_params, proxy=proxy)
summary = summ.get_summary(
    "In the heart of the forest, "
    + "a lone fox ventured out at dusk, seeking a lost treasure. "
    + "With each step, memories flooded back, guiding its path. "
    + "As the moon rose high, illuminating the night, the fox unearthed "
    + "not gold, but a forgotten friendship, worth more than any riches."
)

print(f"Summary generated by OracleSummary: {summary}")

端到端演示

请参阅我们的完整演示指南 Oracle AI 向量搜索端到端演示指南,以借助 Oracle AI 向量搜索构建端到端 RAG 管道。
以编程方式连接这些文档到 Claude、VSCode 等,通过 MCP 获取实时答案。
© . This site is unofficial and not affiliated with LangChain, Inc.