Oracle AI Database 支持通过以下方式查询数据的 AI 工作负载 **含义** (语义),而不仅仅是关键词。它将 **非结构化内容的语义搜索** 与 **业务数据的关联过滤** 结合在单一系统中——因此您可以构建检索工作流(如 RAG),而无需引入单独的向量数据库并跨多个平台分散数据。
本指南演示如何使用 OracleSummary 从 Oracle AI Vector Search LangChain 集成中生成文档摘要。
> **为什么在这里进行摘要?** > 摘要是将长文档压缩为适合检索的内容(预览、元数据或浓缩上下文)的实用方法,同时保持治理和操作保证接近数据。
如果您刚开始使用 Oracle Database,请考虑探索 免费 Oracle 26 AI。有关用户管理的背景信息,请参阅官方 Oracle 指南.
概述
集成详情
| 类 | 包 | 本地 | PY 支持 |
|---|---|---|---|
OracleSummary | @oracle/langchain-oracledb | ✅ | ✅ |
设置
要访问 OracleSummary,请安装 @oracle/langchain-oracledb 帮助程序(包含 @langchain/core)并确保满足 Oracle Database 驱动程序 的先决条件。
凭据
为拥有摘要配置的 Oracle 用户设置凭据(或使用密钥管理器):
如果您计划调用第三方提供商(如 OCI Generative AI 或 Hugging Face),请先在 Oracle Database 中创建凭据(例如 OCI_CRED, HF_CRED) using the PL/SQL helpers documented in the Oracle AI Vector Search 指南.
安装
npm install @oracle/langchain-oracledb @langchain/core
yarn add @oracle/langchain-oracledb @langchain/core
pnpm add @oracle/langchain-oracledb @langchain/core
实例化工具
const connection = await oracledb.getConnection({
user: process.env.ORACLE_USER,
password: process.env.ORACLE_PASSWORD,
connectionString: process.env.ORACLE_DSN,
});
const summary = new OracleSummary(
connection,
{
provider: "database",
glevel: "S",
numParagraphs: 1,
language: "english",
},
process.env.HTTP_PROXY, // optional
);
第三个构造函数参数是一个可选的代理字符串。仅当出站请求必须通过 HTTP 代理时提供它(例如,调用 Hugging Face 端点时)。
使用数据库内模型进行文本摘要
直接在 Oracle Database 中运行 ONNX 摘要模型,以将数据保留在与事务工作负载相同的主机上。
const result = await summary.getSummary(
"Oracle Database combines relational and vector workloads so you can build secure RAG pipelines.",
);
console.log(result); // => concise summary text
使用托管提供商
切换 provider 参数以通过以下方式路由摘要请求 OCI Generative AI 或 Hugging Face。提供您在 Oracle Database 中注册的凭据名称,以及需要时提供代理字符串。
const ociSummary = new OracleSummary(
connection,
{
provider: "ocigenai",
credential_name: "OCI_CRED",
url: "https://inference.generativeai.us-chicago-1.oci.oraclecloud.com/20231130/actions/summarizeText",
model: "cohere.command",
},
process.env.HTTP_PROXY,
);
const hfSummary = new OracleSummary(connection, {
provider: "huggingface",
credential_name: "HF_CRED",
url: "https://api-inference.huggingface.co/models/",
model: "facebook/bart-large-cnn",
wait_for_model: "true",
});
与 LangChain 工具链接
您可以将 OracleSummary 包装在自定义 LangChain 工具或可运行对象中,以将其与代理工具调用集成。
const summarizeTool = tool(
async ({ text }: { text: string }) => summary.getSummary(text),
{
name: "oracle_summary",
description: "Summarize Oracle-sourced documents.",
schema: z.object({
text: z.string().describe("Full text to summarize"),
}),
},
);
const toolSummary = await summarizeTool.invoke({ text });
后续步骤
- - 使用以下方式加载内容
OracleDocLoader - - 使用以下方式分块并规范化
OracleTextSplitter - - 使用以下方式生成嵌入向量
OracleEmbeddings并存储到OracleVS
API 参考
有关所有 OracleSummary 参数和返回类型的详细文档,请参阅 Oracle LangChain Oracle DB 代码仓库.