---
type: api
title: Create an AlibabaCloud AI Search inference endpoint
description: Create an inference endpoint to perform an inference task with the `alibabacloud-ai-search` service.
url: https://www.elastic.co/elastic/docs-builder/docs/4371/api/doc/elasticsearch/v8/operation/operation-inference-put-alibabacloud
resource: https://www.elastic.co/elastic/docs-builder/docs/4371/api/doc/elasticsearch/v8/operation/operation-inference-put-alibabacloud
products:
  - Elasticsearch
---

# Create an AlibabaCloud AI Search inference endpoint

Availability: 8.16+

## Paths

- `PUT` `/_inference/{task_type}/{alibabacloud_inference_id}`

- [Api key auth](/elastic/docs-builder/docs/4371/api/doc/elasticsearch/v8/authentication#apikeyauth)
- [Basic auth](/elastic/docs-builder/docs/4371/api/doc/elasticsearch/v8/authentication#basicauth)
- [Bearer auth](/elastic/docs-builder/docs/4371/api/doc/elasticsearch/v8/authentication#bearerauth)

#### Path Parameters

- `task_type` (enum AlibabaCloudTaskType)
  The type of the inference task that the model will perform.
  Values: `completion`, `rerank`, `space_embedding`, `text_embedding`
- `alibabacloud_inference_id` (string Id)
  The unique identifier of the inference endpoint.

## Description

Create an inference endpoint to perform an inference task with the `alibabacloud-ai-search` service.

## Required authorization

* Cluster privileges: `manage_inference`

## Query String Parameters

- `timeout` (string Duration · default: 30s)
  Specifies the amount of time to wait for the inference endpoint to be created.

## Request Body

`application/json`

- `chunking_settings` ({} InferenceChunkingSettings) — optional
  The chunking configuration object.
  - `max_chunk_size` (number · default: 250) — optional
    The maximum size of a chunk in words.
This value cannot be higher than `300` or lower than `20` (for `sentence` strategy) or `10` (for `word` strategy).
  - `overlap` (number · default: 100) — optional
    The number of overlapping words for chunks.
It is applicable only to a `word` chunking strategy.
This value cannot be higher than half the `max_chunk_size` value.
  - `sentence_overlap` (number · default: 1) — optional
    The number of overlapping sentences for chunks.
It is applicable only for a `sentence` chunking strategy.
It can be either `1` or `0`.
  - `strategy` (string · default: sentence) — optional
    The chunking strategy: `sentence` or `word`.
- `service` (enum AlibabaCloudServiceType) — required
  The type of service supported for the specified task type. In this case, `alibabacloud-ai-search`.
  Values: `alibabacloud-ai-search`
- `service_settings` ({} AlibabaCloudServiceSettings) — required
  Settings used to install the inference model. These settings are specific to the `alibabacloud-ai-search` service.
  - `api_key` (string) — required
    A valid API key for the AlibabaCloud AI Search API.
  - `host` (string) — required
    The name of the host address used for the inference task.
You can find the host address in the API keys section of the documentation.
  - `rate_limit` ({} RateLimitSetting) — optional
    This setting helps to minimize the number of rate limit errors returned from AlibabaCloud AI Search.
By default, the `alibabacloud-ai-search` service sets the number of requests allowed per minute to `1000`.
    - `requests_per_minute` (number) — optional
      The number of requests allowed per minute.
  - `service_id` (string) — required
    The name of the model service to use for the inference task.
The following service IDs are available for the `completion` task:

* `ops-qwen-turbo`
* `qwen-turbo`
* `qwen-plus`
* `qwen-max ÷ qwen-max-longcontext`

The following service ID is available for the `rerank` task:

* `ops-bge-reranker-larger`

The following service ID is available for the `sparse_embedding` task:

* `ops-text-sparse-embedding-001`

The following service IDs are available for the `text_embedding` task:

`ops-text-embedding-001`
`ops-text-embedding-zh-001`
`ops-text-embedding-en-001`
`ops-text-embedding-002`
  - `workspace` (string) — required
    The name of the workspace used for the inference task.
- `task_settings` ({} AlibabaCloudTaskSettings) — optional
  Settings to configure the inference task.
These settings are specific to the task type you specified.
  - `input_type` (string) — optional
    For a `sparse_embedding` or `text_embedding` task, specify the type of input passed to the model.
Valid values are:

* `ingest` for storing document embeddings in a vector database.
* `search` for storing embeddings of search queries run against a vector database to find relevant documents.
  - `return_token` (boolean) — optional
    For a `sparse_embedding` task, it affects whether the token name will be returned in the response.
It defaults to `false`, which means only the token ID will be returned in the response.

## Response

`application/json`

- `chunking_settings` ({} InferenceChunkingSettings)
  Chunking configuration object
  - `max_chunk_size` (number · default: 250)
    The maximum size of a chunk in words.
This value cannot be higher than `300` or lower than `20` (for `sentence` strategy) or `10` (for `word` strategy).
  - `overlap` (number · default: 100)
    The number of overlapping words for chunks.
It is applicable only to a `word` chunking strategy.
This value cannot be higher than half the `max_chunk_size` value.
  - `sentence_overlap` (number · default: 1)
    The number of overlapping sentences for chunks.
It is applicable only for a `sentence` chunking strategy.
It can be either `1` or `0`.
  - `strategy` (string · default: sentence)
    The chunking strategy: `sentence` or `word`.
- `service` (string)
  The service type
- `service_settings` (ServiceSettings)
  Settings specific to the service
- `task_settings` (TaskSettings)
  Task settings specific to the service and task type
- `inference_id` (string)
  The inference Id
- `task_type` (enum TaskTypeAlibabaCloudAI)
  The task type
  Values: `text_embedding`, `rerank`, `completion`, `sparse_embedding`
## Code Examples

#### Console

```console
PUT _inference/completion/alibabacloud_ai_search_completion
{
    "service": "alibabacloud-ai-search",
    "service_settings": {
        "host" : "default-j01.platform-cn-shanghai.opensearch.aliyuncs.com",
        "api_key": "AlibabaCloud-API-Key",
        "service_id": "ops-qwen-turbo",
        "workspace" : "default"
    }
}
```

#### JavaScript

```javascript
const response = await client.inference.put({
  task_type: "completion",
  inference_id: "alibabacloud_ai_search_completion",
  inference_config: {
    service: "alibabacloud-ai-search",
    service_settings: {
      host: "default-j01.platform-cn-shanghai.opensearch.aliyuncs.com",
      api_key: "AlibabaCloud-API-Key",
      service_id: "ops-qwen-turbo",
      workspace: "default",
    },
  },
});
```

#### Python

```python
resp = client.inference.put(
    task_type="completion",
    inference_id="alibabacloud_ai_search_completion",
    inference_config={
        "service": "alibabacloud-ai-search",
        "service_settings": {
            "host": "default-j01.platform-cn-shanghai.opensearch.aliyuncs.com",
            "api_key": "AlibabaCloud-API-Key",
            "service_id": "ops-qwen-turbo",
            "workspace": "default"
        }
    },
)
```

#### curl

```curl
curl -X PUT "$ELASTICSEARCH_URL/_inference/completion/alibabacloud_ai_search_completion" \
  -H "Authorization: ApiKey $ELASTIC_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "service": "alibabacloud-ai-search",
    "service_settings": {
      "host": "default-j01.platform-cn-shanghai.opensearch.aliyuncs.com",
      "api_key": "AlibabaCloud-API-Key",
      "service_id": "ops-qwen-turbo",
      "workspace": "default"
    }
  }'
```

#### Java

```java
client.inference().put(p -> p
    .inferenceId("alibabacloud_ai_search_completion")
    .taskType(TaskType.Completion)
    .inferenceConfig(i -> i
        .service("alibabacloud-ai-search")
        .serviceSettings(JsonData.fromJson("{\"host\":\"default-j01.platform-cn-shanghai.opensearch.aliyuncs.com\",\"api_key\":\"AlibabaCloud-API-Key\",\"service_id\":\"ops-qwen-turbo\",\"workspace\":\"default\"}"))
    )
);
```

#### C#

```c#
var response = await client.Inference
    .PutAsync(new PutInferenceRequest()
    {
        InferenceId = "alibabacloud_ai_search_completion",
        TaskType = TaskType.Completion,
        InferenceConfig = new()
        {
            Service = "alibabacloud-ai-search",
            ServiceSettings = JsonSerializer.Deserialize<JsonElement>("""
            {
              "host": "default-j01.platform-cn-shanghai.opensearch.aliyuncs.com",
              "api_key": "AlibabaCloud-API-Key",
              "service_id": "ops-qwen-turbo",
              "workspace": "default"
            }
            """)
        }
    });
```

#### PHP

```php
$resp = $client->inference()->put([
    "task_type" => "completion",
    "inference_id" => "alibabacloud_ai_search_completion",
    "body" => [
        "service" => "alibabacloud-ai-search",
        "service_settings" => [
            "host" => "default-j01.platform-cn-shanghai.opensearch.aliyuncs.com",
            "api_key" => "AlibabaCloud-API-Key",
            "service_id" => "ops-qwen-turbo",
            "workspace" => "default",
        ],
    ],
]);
```

#### Ruby

```ruby
response = client.inference.put(
  task_type: "completion",
  inference_id: "alibabacloud_ai_search_completion",
  body: {
    "service": "alibabacloud-ai-search",
    "service_settings": {
      "host": "default-j01.platform-cn-shanghai.opensearch.aliyuncs.com",
      "api_key": "AlibabaCloud-API-Key",
      "service_id": "ops-qwen-turbo",
      "workspace": "default"
    }
  }
)
```

