通过DashScope API调用将多种模态转换为向量
本文介绍如何通过模型服务灵积DashScope进行 多模态向量生成 ,并入库至向量检索服务DashVector中进行向量检索。
模型服务灵积DashScope,通过灵活、易用的模型API服务,让各种模态模型的能力,都能方便的为AI开发者所用。通过灵积API,开发者不仅可以直接集成大模型的强大能力,也可以对模型进行训练微调,实现模型定制化。
前提条件
DashVector:
- 已创建Cluster
- 已获得API-KEY
- 已安装最新版SDK
- 已开通服务并获得API-KEY
- 已安装最新版SDK
ONE-PEACE多模态向量表征
简介
ONE-PEAC是一个 图文音三模态 通用表征模型,在语义分割、音文检索、音频分类和视觉定位几个任务都达到了新SOTA表现,在视频分类、图像分类、图文检索、以及多模态经典benchmark也都取得了比较领先的结果。
说明
关于灵积ONE-PEACE多模态向量表征更多信息请参考:ONE-PEACE多模态向量表征。
使用示例
说明
需要进行如下替换代码才能正常运行:
DashVector api-key替换示例中的
DashVector Cluster Endpoint替换示例中的
DashScope api-key替换示例中的
Python
import dashscope
from dashscope import MultiModalEmbedding
from dashvector import Client
dashscope.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)
相关最佳实践
通过DashScope API调用将多种模态转换为向量的更多相关文章
- FormatMessage与GetLastError配合使用,排查windows api调用过程中的错误
前一段时间在学习windows api调用过程中,遇到过一些调用错误或者程序没能显示预期的结果,或者直接出现vc运行时错误. 这对新手来说是司空见惯的事,因为不太熟悉难免会出错,出错的信息如果能显示很 ...
- 【阿里云API】 阿里云API调用的若干说明
阿里云API 为了监控我们使用的一些阿里云产品,需要些一些脚本,定时调用这些脚本来获得相关阿里云产品的信息. ■ 概述 调用阿里云API大约分成两类方法,一个是直接从HTTP协议开始,自己根据阿里云的 ...
- Feign api调用方式
Feign使用简介 基本用法 基本的使用如下所示,一个对于canonical Retrofit sample的适配. interface GitHub { // RequestLine注解声明请求方法 ...
- 分布式部署下的报表调用 API调用 权限问题以及性能方案
背景描述: 客户的实际情况是需要在具体系统构架前,通过与厂商讨论确定最终的系统架构方案. 需求是客户自己有管理系统,希望建立一个独立的报表服务器,该报表服务器可以对多个管理系统提供报表服务,不知 ...
- 反射实现Model修改前后的内容对比 【API调用】腾讯云短信 Windows操作系统下Redis服务安装图文详解 Redis入门学习
反射实现Model修改前后的内容对比 在开发过程中,我们会遇到这样一个问题,编辑了一个对象之后,我们想要把这个对象修改了哪些内容保存下来,以便将来查看和追责. 首先我们要创建一个User类 1 p ...
- Java web与web gis学习笔记(二)——百度地图API调用
系列链接: Java web与web gis学习笔记(一)--Tomcat环境搭建 Java web与web gis学习笔记(二)--百度地图API调用 JavaWeb和WebGIS学习笔记(三)-- ...
- Vue.js——使用$.ajax和vue-resource实现OAuth的注册、登录、注销和API调用
概述 上一篇我们介绍了如何使用vue resource处理HTTP请求,结合服务端的REST API,就能够很容易地构建一个增删查改应用.这个应用始终遗留了一个问题,Web App在访问REST AP ...
- 信鸽推送 .NET (C#) 服务端 SDK rest api 调用库(v1.2)
信鸽推送 .NET 服务端 SDK rest api 调用库-介绍 该版本是基于信鸽推送v2版本的时候封装的,先拿出来与大家分享,封装还还凑合,不依赖其他http调用件,唯一依赖json序列化dll ...
- xmlrpc实现bugzilla api调用(无会话保持功能,单一接口请求)
xmlrpc实现bugzilla4 xmlrpc api调用(无会话保持功能,单一接口请求),如需会话保持,请参考我的另外一篇随笔(bugzilla4的xmlrpc接口api调用实现分享: xml ...
- Sphinx中文分词安装配置及API调用
这几天项目中需要重新做一个关于商品的全文搜索功能,于是想到了用Sphinx,因为需要中文分词,所以选择了Sphinx for chinese,当然你也可以选择coreseek,建议这两个中选择一个,暂 ...
随机推荐
- js - 面向对象--手稿
- C# 语言笔记
1. C# 初识 因为先前已经学过 C++ 了,所以在C# 的学习中,大多只记录和 C++ 不同的点,在学习的过程中,感谢刘铁猛老师的教程,您是我C# 入门的领路人. 1.1 使用 .net cli ...
- 全网最适合入门的面向对象编程教程:17 类和对象的Python实现-鸭子类型与“file-like object“
全网最适合入门的面向对象编程教程:17 类和对象的 Python 实现-鸭子类型与"file-like object" 摘要: 本文主要介绍了 Python 中创建自定义类时鸭子类 ...
- 欢迎访问pycharm 每次开启时都显示
文件->设置->外观与行为->系统设置->将"启动时重新打开项目"前的勾去掉
- 学习笔记--Java中final关键字
Java中final关键字 关于Java语言中的final关键字: final是一个关键字,表示:最终的,不可改变 final修饰的类无法被继承 final修饰的方法无法被覆盖 final修饰的变量一 ...
- 使用git(ee的一个小总结
我先把后端项目推进了gitee,后面为了方便又想把前端也放在同一个项目里,结果出问题了: 一开始是因为前端项目内包含了.git的文件(这个玩意还是隐藏文件,就是你在idea里其实是看不到他的),导致只 ...
- k8s 环境搭建(2)
安装docker组件 配置本地源或者自带的网络源2选1 1.切换镜像源 wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce ...
- (一)MOngoDB的安装与配置(Windows和Centos)
其实Windows的安装没有什么难的,主要是后的Centos下的安装,我是在centos7上安装测试的,不管是手动安装还是脚本安装我都是成功才发出来的,有什么的问题可以留言,写博客只是为了记录和简单的 ...
- 【Dos-BatchPrograming】02
学习参考: https://www.bilibili.com/video/BV1Qv411q7bN?p=2 --1.算数运算 使用Windows终端进行运算操作时需要声明对应的命令: set /a 运 ...
- 【Mybatis】13 动态SQL
还是先准备演示环境 数据库: CREATE TABLE `t_user` ( `id` int NOT NULL AUTO_INCREMENT, `last_name` varchar(10) DEF ...