更新时间:2026-01-20 GMT+08:00
分享

创建文本向量化

创建文本向量化API用于将文本数据转换为数值向量,以便于在机器学习和自然语言处理任务中使用。这些向量可以捕捉文本的语义信息,使得机器学习模型能够理解和处理文本数据。

前提条件

约束限制

该功能仅支持“西南-贵阳一”区域。

接口信息

表1 接口信息

名称

说明

取值

API地址

调用图片生成的API地址。

https://api.modelarts-maas.com/v1/embeddings

model参数

model参数调用名称。

您可以任选以下方式获取model参数值。

支持模型列表

表2 支持模型列表

模型

支持地域

model参数值

应用场景

BGE-M3

西南-贵阳一

bge-m3

文本向量化

请求参数说明

表3 请求body参数

参数

是否必填

默认值

参数类型

描述

model

string

模型名称,具体请参见表2的“model参数值”列。

input

string

支持字符串或字符串列表。

encoding_format

float

string

指定文本向量化结果的输出格式。取值为float或base64。

响应参数说明

状态码:200

参数

参数类型

说明

id

string

请求ID。

object

string

对象类型,始终为 "list"。

created

integer

时间戳。

model

string

模型名称。

data

object[]

模型生成结果数据集。

data.index

integer

序号。

data.object

enum<string>

对象类型。

data.embedding

number[]

模型生成的嵌入向量列表。

usage

object

请求的使用信息。

usage.prompt_tokens

integer

提示词Token计数。

usage.total_tokens

integer

请求使用的Token总数。

usage.completion_tokens

integer

推理Token计数。

usage.prompt_tokens_details

object

输入Prompt使用情况详情。

请求示例

此处以使用BGE-M3模型将文本字符串 ["这是一只小猫", "这是一只小狗"]转换为数值向量为例,展示向量模型的基础用法。

  • 使用Python调用示例。
    import requests
    import json
    
    if __name__ == '__main__':
        url = "https://api.modelarts-maas.com/v1/embeddings"  # API地址
        api_key = "MAAS_API_KEY"  # 把MAAS_API_KEY替换成已获取的API Key
    
        # Send request.
        headers = {
            'Content-Type': 'application/json',
            'Authorization': f'Bearer {api_key}'
        }
        texts = ["这是一只小猫", "这是一只小狗"]
        data = {
            "model": "bge-m3",  # 模型名称
            "input": texts,  # input类型可为string or string[]
            "encoding_format": "float"  # 取值范围:"float","base64"
        }
        response = requests.post(url, headers=headers, data=json.dumps(data), verify=False)
    
        # Print result.
        print(response.status_code)
        print(response.text)
  • 使用cURL调用示例。
    curl -X POST "https://api.modelarts-maas.com/v1/embeddings" \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer $MAAS_API_KEY" \
      -d '{
        "model": "bge-m3",
        "input": [
          "这是一只小猫",
          "这是一只小狗"
        ],
        "encoding_format": "float"
      }'
  • 使用OpenAI SDK调用示例。
    from openai import OpenAI
    
    base_url = "https://api.modelarts-maas.com/v1"  # API地址
    api_key = "MAAS_API_KEY"  # 把MAAS_API_KEY替换成已获取的API Key
    texts = ["这是一只小猫", "这是一只小狗"]
    
    client = OpenAI(api_key=api_key, base_url=base_url)
    
    response = client.embeddings.create(
        model="bge-m3",  # model参数
        input=texts,  # input类型可为string or string[]
        encoding_format="float"  # 取值范围:"float","base64"
    )
    
    # Print result.
    print(response.data)
  • 使用Java调用示例。

    在pom.xml中添加依赖配置:

    <dependency>
          <groupId>com.openai</groupId>
          <artifactId>openai-java</artifactId>
          <version>4.8.0</version></dependency>
    package com.openai.example.embedding;
    
    import com.openai.client.OpenAIClient;
    import com.openai.client.okhttp.OpenAIOkHttpClient;
    import com.openai.models.embeddings.EmbeddingCreateParams;
    
    import javax.net.ssl.SSLContext;
    import javax.net.ssl.TrustManager;
    import javax.net.ssl.X509TrustManager;
    import java.security.KeyManagementException;
    import java.security.NoSuchAlgorithmException;
    import java.security.SecureRandom;
    import java.security.cert.CertificateException;
    import java.security.cert.X509Certificate;
    import java.util.List;
    
    public final class EmbeddingsExample {
    
        public static void main(String[] args) {
            // 把MAAS_API_KEY替换成已获取的API Key,${model_name}替换为model参数
            String apiKey = "MAAS_API_KEY";
            String url = "https://api.modelarts-maas.com/v1";
            String model = "${model_name}";
    
            initSSLParam();
            OpenAIClient client = OpenAIOkHttpClient.builder()
                    .apiKey(apiKey)
                    // 绕过SSL校验,无需绕过请注释或删除以下两行操作
                    .sslSocketFactory(SSL_CONTEXT.getSocketFactory())
                    .trustManager(TRUST_MANAGER)
                    .baseUrl(url)
                    .build();
    
            List<String> text = List.of("这是一只小猫", "这是一只小狗");
            EmbeddingCreateParams createParams = EmbeddingCreateParams.builder()
                    .inputOfArrayOfStrings(text)
                    .model(model)
                    .encodingFormat(EmbeddingCreateParams.EncodingFormat.FLOAT)
                    .build();
    
            System.out.println(client.embeddings().create(createParams));
        }
    
        private static X509TrustManager TRUST_MANAGER;
        private static SSLContext SSL_CONTEXT;
    
        /**
         * 初始化自定义SSL参数,绕过SSL证书校验
         */
        public static void initSSLParam() {
            try {
                // 创建信任所有证书的TrustManager
                TRUST_MANAGER = new X509TrustManager() {
                    @Override
                    public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {
                    }
    
                    @Override
                    public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
                    }
    
                    @Override
                    public X509Certificate[] getAcceptedIssuers() {
                        return new X509Certificate[]{};
                    }
                };
    
                // 安装信任所有证书的 SSLContext
                SSL_CONTEXT = SSLContext.getInstance("SSL");
                SSL_CONTEXT.init(null, new TrustManager[]{TRUST_MANAGER}, new SecureRandom());
            } catch (NoSuchAlgorithmException | KeyManagementException e) {
                e.printStackTrace();
                throw new RuntimeException(e);
            }
        }
    }

响应示例

{
	"id": "embd-d848df392a67d662f5a76eaa9e33974f",
	"object": "list",
	"created": 1758023320,
	"model": "bge-m3",
	"data": [{
		"index": 0,
		"object": "embedding",
		"embedding": [-0.021697998046875, 0.0322265625, ...]
	}],
	"usage": {
		"prompt_tokens": 7,
		"total_tokens": 7,
		"completion_tokens": 0,
		"prompt_tokens_details": null
	}
}

相关文档