探索 Oracle AI 向量搜索:生成文档的嵌入表示

53 阅读2分钟

引言

在现代数据处理中,Oracle AI 向量搜索通过支持语义搜索而不仅仅是关键字搜索,极大地提升了AI工作负载的效率。它允许在一个系统中融合无结构数据的语义搜索和业务数据的关联搜索,不再需要专用的向量数据库,减少了数据在多个系统之间的碎片化。

本文将介绍如何使用Oracle AI 向量搜索中的嵌入功能来生成文档的嵌入表示。

主要内容

嵌入能力简介

Oracle AI 向量搜索不仅支持传统的数据库功能,还可以通过嵌入生成功能对文本进行处理。用户可以选择在数据库内或通过第三方服务(如OcigenAI、Hugging Face、OpenAI等)生成嵌入。

安装前提条件

在开始之前,请确保安装了Oracle Python客户端驱动,以便与Oracle AI 向量搜索集成。

# 安装Oracle Python客户端驱动
pip install oracledb

连接到Oracle数据库

以下代码演示如何通过Python连接到Oracle数据库:

import sys
import oracledb

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)

加载ONNX模型

将ONNX模型加载到Oracle数据库内,可以提升安全性和性能。

from langchain_community.embeddings.oracleai import OracleEmbeddings

onnx_dir = "DEMO_DIR"
onnx_file = "tinybert.onnx"
model_name = "demo_model"

try:
    OracleEmbeddings.load_onnx_model(conn, onnx_dir, onnx_file, model_name)
    print("ONNX model loaded.")
except Exception as e:
    print("ONNX model loading failed!")
    sys.exit(1)

代码示例

以下示例展示如何生成嵌入:

from langchain_community.embeddings.oracleai import OracleEmbeddings
from langchain_core.documents import Document

# 配置嵌入参数(使用数据库中加载的ONNX模型)
embedder_params = {"provider": "database", "model": "demo_model"}

# 如果环境不需要代理,可以省略 'proxy' 参数
# 使用API代理服务提高访问稳定性
embedder = OracleEmbeddings(conn=conn, params=embedder_params, proxy="<proxy>")
embed = embedder.embed_query("Hello World!")

print(f"Embedding generated by OracleEmbeddings: {embed}")

常见问题和解决方案

如何使用第三方服务生成嵌入?

若选择第三方服务生成嵌入,请确保创建相关凭证并配置必要的代理。

无法连接到数据库怎么办?

请检查数据库连接参数是否正确,并确认Oracle数据库服务正常运行。

总结和进一步学习资源

Oracle AI 向量搜索通过提供强大的嵌入功能,使得语义搜索成为可能。无论是选择在数据库中生成嵌入还是通过第三方服务,Oracle都提供了灵活的选项。

参考资料

如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!

---END---