本文为您介绍 Embedding 模型的接口,以及使用 Restful API 和 OpenAI SDK 调用 Embedding 模型的完整流程。
/v1/embeddings
接口用于请求 Embedding 服务,通过深度学习神经网络提取文本、图片等非结构化数据里的内容和语义,把文本、图片等变成特征向量。
/v1/embeddings
。Content-Type: application/json
。参数 | 类型 | 是否必选 | 说明 |
---|---|---|---|
model | string | 是 | |
input | string 或 string list | 是 | 输入需要获取向量结果的对象。
说明 可以同时输入多个需要获取向量的对象,使用英文逗号 |
以下示例中返回的 embedding 参数,就是您输入的文本或图片返回的 embedding 结果。
{ "object": "list", "model": "ImageSearch-Demo", "data": [ { "index": 0, "object": "embedding", "embedding": [ -0.40416327118873596, 0.17097428441047668, ......省略若干 0.1333296298980713, 0.472359299659729, 0.05078130215406418] } ], "usage": { "prompt_tokens": 0, "total_tokens": 0 } }
本文以调用 Image Embedding 模型为例,Text Embedding 模型的调用方式也相同。
首先需要先部署一个 Embedding 模型服务。云搜索服务提供了一个 Image Embedding 模型示例文件(model),您可以自行下载并上传到 TOS Bucket,然后创建模型。
创建一个 Image Embedding 模型,然后创建并启动一个允许私网访问的推理任务。具体操作,请参见二、创建并启动模型。
模型创建后,您可以在相同 VPC 环境的 ECS 中,通过调用 Embedding 模型的私网访问地址,获取目标对象的向量化结果。
推理任务正常运行后,在推理服务基本信息页面查看模型的调用信息。
连接 ECS 实例。连接方式请参见连接 ECS 实例。
在 ECS 实例命令行中,直接执行模型的调用信息(需替换**$API_KEY**),获取目标对象的向量结果。
如何创建调用模型的 API Key,请参见创建 API Key。
curl http://r-0s0ceg**.escloud.volces.com/d-184717321835220**/v1/embeddings \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $API_KEY" \ -X POST \ -d '{ "model": "image-search", "input": [ "tos://doc-test/picture/image_temp/aaa.jpg" ] }'
White T-shirt
,图片示例为 TOS 存放路径tos://doc-test/picture/image_temp/aaa.jpg
或 Base64 编码data:image/jpeg;base64,iVBORw0....
。模型创建后,您可以在相同 VPC 环境的 ECS 中,通过 OpenAI SDK 调用 Embedding 模型,获取目标内容的向量化结果。
推理任务正常运行后,在推理服务基本信息页面查看模型的私网访问地址。
连接 ECS 实例。连接方式请参见连接 ECS 实例。
在 ECS 命令行中,安装 openai
。
pip install openai
创建一个 Python 脚本,比如embedding.py
。
touch embedding.py
在新建的 Python 脚本中添加以下内容。
import openai client = openai.OpenAI( api_key="$API_KEY", base_url="http://r-00g0ki***-18294241573**-private.escloud.ivolces.com:8000/v1", ) response = client.embeddings.create( model= "ImageSearch-Demo", input=["White T-shirt"]) print(response.model_dump_json(indent=2))
White T-shirt
,图片示例为 TOS 存放路径tos://doc-test/picture/image_temp/aaa.jpg
或 Base64 编码data:image/jpeg;base64,iVBORw0KGg....
。执行以下命令,运行 Python 脚本,获取向量结果。
python3 embedding.py