Generate text embeddings

更新时间:
复制 MD 格式

This service generates text embeddings for Chinese text.

Note

This service is provided by the Natural Language Processing (NLP) Self-Learning Platform. To use this service, you must call the API directly.

Activate the service and purchase a resource plan

Before you start, confirm that the service is activated. After the service is activated, you can purchase a resource plan.

Invoke and debug the service

For more information about calling the model, see Model invocation.

For more information about SDK examples, see SDK examples.

Debug

You can call this API in OpenAPI Explorer to test it, simplify signature calculation, and automatically generate SDK example code after a successful call.

Configure access credentials using environment variables

  1. Notes:

    1. An AccessKey pair for an Alibaba Cloud account grants full access to all APIs, which poses a high security risk. We strongly recommend that you create and use a Resource Access Management (RAM) user for API access and routine operations and maintenance (O&M). Log on to the RAM console to create a RAM user.

    2. Do not hard-code your AccessKey ID and AccessKey secret in your code. This can lead to security risks if the keys are leaked. Instead, store your AccessKey pair in environment variables.

  2. Configuration for Linux and macOS

    export NLP_AK_ENV=<access_key_id>
    export NLP_SK_ENV=<access_key_secret>

    Replace <access_key_id> with your AccessKey ID and <access_key_secret> with your AccessKey secret. For more information about how to obtain an AccessKey ID and an AccessKey secret, see Step 2: Obtain an AccessKey for your account.

  3. Windows configuration

    1. Create a file for environment variables. Add the NLP_AK_ENV and NLP_SK_ENV environment variables, and set their values to your AccessKey ID and AccessKey secret.

    2. Restart Windows.

Java example

/**
 * An AccessKey pair for an Alibaba Cloud account has permissions on all APIs, which poses a high security threat. We strongly recommend that you create and use a RAM user for API access and routine O&M. To create a RAM user, log on to the RAM console.
 * This example shows how to store your AccessKey ID and AccessKey secret in environment variables. You can also store them in a configuration file based on your business needs.
 * To avoid security risks, do not hard-code your AccessKey ID and AccessKey secret in your code.
 */
String accessKeyId = System.getenv("NLP_AK_ENV");
String accessKeySecret = System.getenv("NLP_SK_ENV");
DefaultProfile defaultProfile = DefaultProfile.getProfile("cn-hangzhou",accessKeyId,accessKeySecret);
IAcsClient client = new DefaultAcsClient(defaultProfile);
Map<String, Object> map = new HashMap<>();
map.put("message", "I am Chinese");
RunPreTrainServiceRequest request = new RunPreTrainServiceRequest();
request.setServiceName("NLP-Text-Embedding");
request.setPredictContent(JSON.toJSONString(map));
RunPreTrainServiceResponse response = client.getAcsResponse(request);
System.out.println(response.getPredictResult());

Python example

# Install dependencies
pip install aliyun-python-sdk-core
pip install aliyun-python-sdk-nlp-automl
# -*- coding: utf8 -*-
import json
import os

from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.acs_exception.exceptions import ClientException
from aliyunsdkcore.acs_exception.exceptions import ServerException
from aliyunsdknlp_automl.request.v20191111 import RunPreTrainServiceRequest

# An AccessKey pair for an Alibaba Cloud account has permissions on all APIs, which poses a high security threat. We strongly recommend that you create and use a RAM user for API access and routine O&M. To create a RAM user, log on to the RAM console.
# This example shows how to store your AccessKey ID and AccessKey secret in environment variables. You can also store them in a configuration file based on your business needs.
# To avoid security risks, do not hard-code your AccessKey ID and AccessKey secret in your code.
access_key_id = os.environ['NLP_AK_ENV']
access_key_secret = os.environ['NLP_SK_ENV']

# Initialize AcsClient instance
client = AcsClient(
  access_key_id,
  access_key_secret,
  "cn-hangzhou"
);
content ={"message": "I am Chinese"}
# Initialize a request and set parameters
request = RunPreTrainServiceRequest.RunPreTrainServiceRequest()
request.set_ServiceName('NLP-Text-Embedding')
request.set_PredictContent(json.dumps(content))
# Print response
response = client.do_action_with_exception(request)
resp_obj = json.loads(response)
predict_result = json.loads(resp_obj['PredictResult'])
print(predict_result['embedding'])

Example of PredictContent

{
  "message": "I am Chinese",
}

Example of PredictResult

{
 {"embedding":[0.032712288200855255,0.06901254504919052,-0.03633863478899002,-0.06322920322418213,-0.011379375122487545,..]
}

Request parameters

Parameter

Description

message

The text to predict.

Response parameters

Parameter

Description

embedding

The vector representation of the text.