通过DashScope API调用将多种模态转换为向量

news/2024/11/15 10:41:21/文章来源:https://www.cnblogs.com/DashVector/p/18398620

本文介绍如何通过模型服务灵积DashScope进行 多模态向量生成 ,并入库至向量检索服务DashVector中进行向量检索。

模型服务灵积DashScope,通过灵活、易用的模型API服务,让各种模态模型的能力,都能方便的为AI开发者所用。通过灵积API,开发者不仅可以直接集成大模型的强大能力,也可以对模型进行训练微调,实现模型定制化。

前提条件

  • DashVector:

    • 已创建Cluster
    • 已获得API-KEY
    • 已安装最新版SDK
    • 已开通服务并获得API-KEY
    • 已安装最新版SDK

ONE-PEACE多模态向量表征

简介

ONE-PEAC是一个 图文音三模态 通用表征模型,在语义分割、音文检索、音频分类和视觉定位几个任务都达到了新SOTA表现,在视频分类、图像分类、图文检索、以及多模态经典benchmark也都取得了比较领先的结果。

说明

关于灵积ONE-PEACE多模态向量表征更多信息请参考:ONE-PEACE多模态向量表征。

使用示例

说明

需要进行如下替换代码才能正常运行:

  1. DashVector api-key替换示例中的

  2. DashVector Cluster Endpoint替换示例中的

  3. DashScope api-key替换示例中的

Python

import dashscope
from dashscope import MultiModalEmbedding
from dashvector import Clientdashscope.api_key = '{your-dashscope-api-key}'# 调用DashScope ONE-PEACE模型,将各种模态素材embedding为向量
def generate_embeddings(text: str = None, image: str = None, audio: str = None):input = []if text:input.append({'text': text})if image:input.append({'image': image})if audio:input.append({'audio': audio})result = MultiModalEmbedding.call(model=MultiModalEmbedding.Models.multimodal_embedding_one_peace_v1,input=input,auto_truncation=True)if result.status_code != 200:raise Exception(f"ONE-PEACE failed to generate embedding of {input}, result: {result}")return result.output["embedding"]# 创建DashVector Client
client = Client(api_key='{your-dashvector-api-key}',endpoint='{your-dashvector-cluster-endpoint}'
)# 创建DashVector Collection
rsp = client.create('one-peace-embedding', 1536)
assert rsp
collection = client.get('one-peace-embedding')
assert collection# 向量入库DashVector
collection.insert([('ID1', generate_embeddings(text='阿里云向量检索服务DashVector是性能、性价比具佳的向量数据库之一')),('ID2', generate_embeddings(image='https://dashscope.oss-cn-beijing.aliyuncs.com/images/256_1.png')),('ID3', generate_embeddings(audio='https://dashscope.oss-cn-beijing.aliyuncs.com/audios/cow.flac')),('ID4', generate_embeddings(text='阿里云向量检索服务DashVector是性能、性价比具佳的向量数据库之一',image='https://dashscope.oss-cn-beijing.aliyuncs.com/images/256_1.png',audio='https://dashscope.oss-cn-beijing.aliyuncs.com/audios/cow.flac'))]
)# 向量检索
docs = collection.query(generate_embeddings(text='The best vector database')
)
print(docs)

相关最佳实践

  • DashVector + DashScope升级多模态检索

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/792635.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

跨境电商需要用到的电商API接入详解(淘宝京东拼多多1688API接口)

随着电子商务的快速发展,跨境电商已经成为越来越多企业的选择。在跨境电商的业务流程中,电商API发挥着至关重要的作用。本文将详细介绍跨境电商需要用到的电商API,包括商品信息、商品类目信息、店铺信息、交易明细信息、商品管理、评价信息、店铺用户信息等。**一、商品信息…

通义灵码最全使用指南,一键收藏

通义灵码,作为智能编码助手,可以在你进行编码工作时,为你提供行级/函数级实时续写、注释生成代码、单元测试生成、代码优化、注释生成、代码解释、研发智能问答、代码问题修复等辅助编码工作的功能。通义灵码,作为智能编码助手,可以在你进行编码工作时,为你提供行级/函数…

opencv - 2 - 核心操作

一、图像的基本操作 1、访问像素值并修改它们 当成一个三维数组访问即可 import cv2 as cv import numpy as npimg = cv.imread("img/1.png") oneElement = img[100,100] print(oneElement) # 会得到[51 35 2] oneElementColor = img[100,100,0] print(oneElementCo…

结构开发笔记(七):solidworks软件(六):装配摄像头、摄像头座以及螺丝,完成摄像头结构示意图

前言摄像头装配机械机构动作,本篇就将之前的摄像头模块,摄像头底座和螺丝,进行装配摄像头。 装配过程步骤一:新建装配体再添加一次零件,因为有2个螺丝,然后固定底座:  步骤二:摄像头方块与底座匹配约束先对圆圈(这时候是同心圆):  再来一次,让两个面相切:  …

Unity网格编程学习(二)

目录1.创建平面2.创建立方体 1.创建平面定义平面的长、高,以及mesh的顶点、uv、法线 public int x = 3, y = 3; private Vector3[] vertices; private Vector2[] uvs; private Vector3[] normals;private void Start() {Mesh mesh = new Mesh();MeshFilter filter = this.GetC…

如何在极狐GitLab中添加 SSH Key?

本文分享如何生成 SSH Key 并添加到极狐GitLab 中,然后用 SSH Key 进行代码拉取。 **极狐GitLab 是 GitLab 在中国的发行版,可以一键私有化部署,对于中国开发者更友好。详细安装步骤可以查看官网 https://dl.gitlab.cn/xed81vsc **。 SSH Key 对于通过 ssh 来进行极狐GitLab…

python 十进制换为二进制 高位补零

参考:https://www.cnblogs.com/zy740/p/11904185.html python 十进制转换为二进制 高位补零a = 2b = {:08b}.format(a)输出结果为八位二进制,且高位补零若为a = 2b = {:8b}.format(a)输出结果为八位二进制,但高位不补零

vue3 常用的几种组件通讯方式

vue3 常用的几种组件通讯方式,大致如下Props/Emit Pinia 事件总线(mitt) Provide/Inject 浏览器本地存储 1. Props / Emit 注释:prop属性名称 / 方法名称的格式,采用 camelCase 与 kebab-case。1.1 props (1)上游组件设置 prop 值(通过 v-bind 或 冒号) 或者 (2)下…

巧手打字通-在线打字网站,终于来啦

儿子开信息课了,要练习电脑打字了 上个学期,上小学的孩子回家跟他妈妈说:“妈妈,我要学习打字,我们学校上信息课了。” 孩子妈妈听了这诉求,就把笔记本电脑拿了出来,打开了一个word文档,把电脑推到孩子面前,来,好好练习吧,加油! 过了十分钟,我来到孩子面前,看到了…

CentOS安装MySQL8教程

官方地址: https://dev.mysql.com/downloads/mysql/ 选择版本前需先看一下服务器的 glibc 版本 ldd --version上传 将下载好的 tar 包上传到服务器上,这里演示上传到了 /usr/local/ 文件夹下 (也可以自定义位置)解压 tar -Jxvf mysql-8.0.39-linux-glibc2.17-x86_64.t…

jQuery CSS 浏览器滚动到顶部固定左侧栏

<script>$(document).ready(function() {var div = $(#leftNav_2024925); // 替换为你的 div 的 IDvar divTop = div.offset().top; // 获取 div 顶部的位置$(window).scroll(function() {var scrollTop = $(this).scrollTop(); // 获取当前滚动条的位置if (scrollTop &g…

ProComponents——ProForm,设置初始值后,点击【重置】按钮,值已清除但页面未更新

我的问题 umi+antd,使用ProComponents的QueryFilter表单进行列表筛选,首页有个进入列表的快捷跳转,会筛选列表状态(在线1/离线0)。 设置筛选状态初始值为1后,点击【重置】按钮: 1.打印初始值1已清除,但页面上未更新,仍显示筛选在线状态 2.点击2次【重置】按钮,页面才…