1. 服务描述

Embedding接口授权和星火大模型是独立的,如您有需要,可在售前窗口或单独提交工单申请。

开发者需要自行先在控制台创建应用,利用应用中提供的appid,APIKey, APISecret进行鉴权,生成用于握手的鉴权url。

本版本的Embedding 服务,有两个服务:Embeddingp 和Embeddingq需要搭配使用 ,分别用于文档、知识库向量化和用户问题向量化的环节

注:两个服务均支持2K token的输入,返回2560维的向量数组

2. 接口说明

2.1请求方法和url

传输协议:http(s),为提高安全性,强烈推荐https

服务名 host地址 请求类型
Embeddingp https://cn-huabei-1.xf-yun.com/v1/private/sa8a05c27 POST
Embeddingq https://cn-huabei-1.xf-yun.com/v1/private/s50d55a16 POST

2.2接口要求

接口类型:非流式 [http(s)]

接口鉴权:使用签名机制进行鉴权,签名详情参照 通用URL鉴权文档

3.请求

3.1请求协议示例

header{
    "header": {
        "app_id": appid,
        "uid": "39769795890",
        "status": 3
    },
    "parameter": {
        "emb": {
            "feature": {
                "encoding": "utf8"
            }
        }
    },
    "payload": {
        "messages": {
            "text": base64.b64encode(json.dumps(text).encode('utf-8')).decode()
        }
    }
    }

注:text字段原文格式为:

{
    "messages": [
        {
            "content": "文本块内容放在这里",
            "role": "user"
        }
    ]
}

3.2参数说明

参数名称 含义 类型 是否必传 默认值 限制
header.app_id 在平台申请的app id信息 string 50
header.uid 请求用户服务返回的uid,用于应用端做用户区分 string 50
header.status 发送状态标识,3为一次性发完 int 3
feature.encoding 文本编码 string utf8 utf8
messages.text 文本数据,需要进行base64加密 string 2048 token

4.响应

4.1响应协议示例

{
    "header": {
        "code": 0,
        "message": "success",
        "sid": "ase000eaa46@dx18bdc44c72e738d882"
    },
    "payload": {
        "feature": {
            "encoding": "utf8",
            "seq": "0",
            "status": "2",
            "text": "AGAjvgDA8D0A4DM9AOBePgDAyz0AICY+AAC......A4AE9AKAhPg=="
        }
    }
}

4.2响应参数说明

参数名 含义 类型
header 协议头部 obj
header.code 返回码,0表示成功,其它表示异常 int
header.message 错误描述 string
header.sid 本次会话的id string
feature 响应数据块 obj
feature.encoding 文本编码 string
feature.compress 文本压缩格式 string
feature.format 文本格式 string
feature.text 返回的向量值base64结果,这里是浮点型的数组,解析需要针对性处理 string

注:feature.text字段需要针对性解析:

将一个经过base64编码的字符串解码为浮点数数组。具体步骤如下:

text_base = data["payload"]["feature"]["text"]
# 使用base64.b64decode()函数将text_base解码为字节串text_data
text_data = base64.b64decode(text_base)
# 创建一个np.float32类型的数据类型对象dt,表示32位浮点数。
dt = np.dtype(np.float32)
# 使用newbyteorder()方法将dt的字节序设置为小端("<")
dt = dt.newbyteorder("<")
# 使用np.frombuffer()函数将text_data转换为浮点数数组text,数据类型为dt。
text = np.frombuffer(text_data, dtype=dt)

5.调用示例

Python 调用示例