向量模型
更新时间:2025-06-05
什么是embedding
embedding是文本、图像的数值表示,可用于衡量语义相似度。应用场景包括:
- 推荐:根据输入推荐相关信息条目
- 聚类:按相似性对输入字符串进行分组
- 搜索:按相关性对搜索结果排序
- 异常检测:识别出相关性较小的异常值
- 多样性检测:分析输入字符的相似性分布
- 分类:按照相似性对输入字符进行分类 两个向量之间的距离决定了它们的相关性。距离小表示相关性高,距离大表示相关性低。
如何使用向量模型
调用向量模型,输入文本或者图片或文本加图片以获取embeddings。model入参您想调用的向量模型,例如embedding-v1。
文本向量请求
针对文本向量模型,不同模型的文本数量限制不同,具体请参考模型列表文档。
Bash
1curl --location 'https://qianfan.baidubce.com/v2/embeddings' \
2--header 'Content-Type: application/json' \
3--header 'Authorization: Bearer bce-v3/ALTAK-*********/614fb**********' \
4--data '{
5 "model": "embedding-v1",
6 "input":["White T-shirt"]
7}'
多模态向量请求
多模态向量模型的input只允许传入1段文本信息、1段图片信息或者1段图片信息+1段文本信息。传入图片+文本对时,传入的信息会作为一个整体进行向量化。
单个图片大小最大支持10MB。支持的图片格式jpg、jpeg、png、bmp
图像url输入
Bash
1curl --location 'https://qianfan.baidubce.com/v2/embeddings' \
2--header 'Content-Type: application/json' \
3--header 'Authorization: Bearer bce-v3/ALTAK-*********/614fb**********' \
4--header 'appid: app-cPX7dJkp' \
5--header 'Content-Type: application/json' \
6--data '{
7 "model": "gme-qwen2-vl-2b-instruct",
8 "input": [
9 {
10 "text": "这个职业在国内的前景怎样?⽬前国内好像没有这个职业?Quant 这个职业在国内的前景怎样?⽬前国内好像没有这个职业?",
11 "image": "https://i-blog.csdnimg.cn/direct/1333f81802ed4030a3e01368cb8fa8a3.png#pic_center"
12 }
13 ]
14}'
base64编码输入
base64编码需要以data:image/<图片格式>;base64,<Base64编码>
格式来输入
Bash
1curl --location 'https://qianfan.baidubce.com/v2/embeddings' \
2--header 'Content-Type: application/json' \
3--header 'Authorization: Bearer bce-v3/ALTAK-*********/614fb**********' \
4--header 'appid: app-cPX7dJkp' \
5--header 'Content-Type: application/json' \
6--data '{
7 "model": "gme-qwen2-vl-2b-instruct",
8 "input": [
9 {
10 "image": "data:image/<图片格式>;base64,<Base64编码>"
11 }
12 ]
13}'
返回结果示例
返回中包含了向量信息(浮点list)和一些其他元数据。您可以提取向量,保存在向量数据库中在其他场景中使用。
JSON
1{
2 "id": "as-xz2r36ena8",
3 "object": "list",
4 "created": 1737030777,
5 "data": [
6 {
7 "object": "embedding",
8 "embedding": [
9 0.018346669152379036,
10 0.009424751624464989,
11 -0.009573426097631454,
12 ...,
13 -0.3628600239753723
14 ],
15 "index": 0
16 }
17 ],
18 "model": "embedding-v1",
19 "usage": {
20 "prompt_tokens": 3,
21 "total_tokens": 3
22 }
23}
OpenAI SDK兼容请求示例
文本向量
Python
1from openai import OpenAI
2
3client = OpenAI(
4 api_key="bce-v3/ALTAK-xxxxx",
5 base_url="https://qianfan.baidubce.com/v2"
6)
7
8response = client.embeddings.create(
9 model= "embedding-v1",
10 input=["White T-shirt"])
11
12print(response.data[0].embedding)
多模态向量
获取文本+图像(url)对的向量
Python
1from openai import OpenAI
2client = OpenAI(
3 api_key="bce-v3/ALTAK-xxxxx",
4 base_url="https://qianfan.baidubce.com/v2"
5)
6
7def get_embedding(text, model="gme-qwen2-vl-2b-instruct"):
8 return client.embeddings.create(input = text, model=model).data[0].embedding
9
10get_embedding(
11 [
12 {
13 "text": "这个职业在国内的前景怎样?⽬前国内好像没有这个职业?Quant 这个职业在国内的前景怎样?⽬前国内好像没有这个职业?",
14 "image": "https://i-blog.csdnimg.cn/direct/1333f81802ed4030a3e01368cb8fa8a3.png#pic_center"
15 #url格式传入
16
17 }
18 ]
19)
获取单个图像(base64)向量
Python
1from openai import OpenAI
2client = OpenAI(
3 api_key="bce-v3/ALTAK-xxxxx",
4 base_url="https://qianfan.baidubce.com/v2"
5)
6
7def get_embedding(text, model="gme-qwen2-vl-2b-instruct"):
8 return client.embeddings.create(input = text, model=model).data[0].embedding
9
10get_embedding(
11 [
12 {
13 "image": f"data:image/jpeg;base64,{base64_image}
14 #图片以base64格式传入。单次请求只能传1张图
15 }
16 ]
17)