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

# Create an Azure AI studio inference endpoint

Availability: 8.14+

## Paths

- `PUT` `/_inference/{task_type}/{azureaistudio_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 AzureAiStudioTaskType)
  The type of the inference task that the model will perform.
  Values: `completion`, `text_embedding`
- `azureaistudio_inference_id` (string Id)
  The unique identifier of the inference endpoint.

## Description

Create an inference endpoint to perform an inference task with the `azureaistudio` 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 AzureAiStudioServiceType) — required
  The type of service supported for the specified task type. In this case, `azureaistudio`.
  Values: `azureaistudio`
- `service_settings` ({} AzureAiStudioServiceSettings) — required
  Settings used to install the inference model. These settings are specific to the `openai` service.
  - `api_key` (string) — required
    A valid API key of your Azure AI Studio model deployment.
This key can be found on the overview page for your deployment in the management section of your Azure AI Studio account.

IMPORTANT: You need to provide the API key only once, during the inference model creation.
The get inference endpoint API does not retrieve your API key.
  - `endpoint_type` (string) — required
    The type of endpoint that is available for deployment through Azure AI Studio: `token` or `realtime`.
The `token` endpoint type is for "pay as you go" endpoints that are billed per token.
The `realtime` endpoint type is for "real-time" endpoints that are billed per hour of usage.
  - `target` (string) — required
    The target URL of your Azure AI Studio model deployment.
This can be found on the overview page for your deployment in the management section of your Azure AI Studio account.
  - `provider` (string) — required
    The model provider for your deployment.
Note that some providers may support only certain task types.
Supported providers include:

* `cohere` - available for `text_embedding`, `rerank` and `completion` task types
* `databricks` - available for `completion` task type only
* `meta` - available for `completion` task type only
* `microsoft_phi` - available for `completion` task type only
* `mistral` - available for `completion` task type only
* `openai` - available for `text_embedding` and `completion` task types
  - `rate_limit` ({} RateLimitSetting) — optional
    This setting helps to minimize the number of rate limit errors returned from Azure AI Studio.
By default, the `azureaistudio` service sets the number of requests allowed per minute to 240.
    - `requests_per_minute` (number) — optional
      The number of requests allowed per minute.
- `task_settings` ({} AzureAiStudioTaskSettings) — optional
  Settings to configure the inference task.
These settings are specific to the task type you specified.
  - `do_sample` (number) — optional
    For a `completion` task, instruct the inference process to perform sampling.
It has no effect unless `temperature` or `top_p` is specified.
  - `max_new_tokens` (number · default: 64) — optional
    For a `completion` task, provide a hint for the maximum number of output tokens to be generated.
  - `temperature` (number) — optional
    For a `completion` task, control the apparent creativity of generated completions with a sampling temperature.
It must be a number in the range of 0.0 to 2.0.
It should not be used if `top_p` is specified.
  - `top_p` (number) — optional
    For a `completion` task, make the model consider the results of the tokens with nucleus sampling probability.
It is an alternative value to `temperature` and must be a number in the range of 0.0 to 2.0.
It should not be used if `temperature` is specified.
  - `user` (string) — optional
    For a `text_embedding` task, specify the user issuing the request.
This information can be used for abuse detection.

## 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 TaskTypeAzureAIStudio)
  The task type
  Values: `text_embedding`, `completion`
## Code Examples

#### Console

```console
PUT _inference/text_embedding/azure_ai_studio_embeddings
{
    "service": "azureaistudio",
    "service_settings": {
        "api_key": "Azure-AI-Studio-API-key",
        "target": "Target-Uri",
        "provider": "openai",
        "endpoint_type": "token"
    }
}
```

#### JavaScript

```javascript
const response = await client.inference.put({
  task_type: "text_embedding",
  inference_id: "azure_ai_studio_embeddings",
  inference_config: {
    service: "azureaistudio",
    service_settings: {
      api_key: "Azure-AI-Studio-API-key",
      target: "Target-Uri",
      provider: "openai",
      endpoint_type: "token",
    },
  },
});
```

#### Python

```python
resp = client.inference.put(
    task_type="text_embedding",
    inference_id="azure_ai_studio_embeddings",
    inference_config={
        "service": "azureaistudio",
        "service_settings": {
            "api_key": "Azure-AI-Studio-API-key",
            "target": "Target-Uri",
            "provider": "openai",
            "endpoint_type": "token"
        }
    },
)
```

#### curl

```curl
curl -X PUT "$ELASTICSEARCH_URL/_inference/text_embedding/azure_ai_studio_embeddings" \
  -H "Authorization: ApiKey $ELASTIC_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "service": "azureaistudio",
    "service_settings": {
      "api_key": "Azure-AI-Studio-API-key",
      "target": "Target-Uri",
      "provider": "openai",
      "endpoint_type": "token"
    }
  }'
```

#### Java

```java
client.inference().put(p -> p
    .inferenceId("azure_ai_studio_embeddings")
    .taskType(TaskType.TextEmbedding)
    .inferenceConfig(i -> i
        .service("azureaistudio")
        .serviceSettings(JsonData.fromJson("{\"api_key\":\"Azure-AI-Studio-API-key\",\"target\":\"Target-Uri\",\"provider\":\"openai\",\"endpoint_type\":\"token\"}"))
    )
);
```

#### C#

```c#
var response = await client.Inference
    .PutAsync(new PutInferenceRequest()
    {
        InferenceId = "azure_ai_studio_embeddings",
        TaskType = TaskType.TextEmbedding,
        InferenceConfig = new()
        {
            Service = "azureaistudio",
            ServiceSettings = JsonSerializer.Deserialize<JsonElement>("""
            {
              "api_key": "Azure-AI-Studio-API-key",
              "target": "Target-Uri",
              "provider": "openai",
              "endpoint_type": "token"
            }
            """)
        }
    });
```

#### PHP

```php
$resp = $client->inference()->put([
    "task_type" => "text_embedding",
    "inference_id" => "azure_ai_studio_embeddings",
    "body" => [
        "service" => "azureaistudio",
        "service_settings" => [
            "api_key" => "Azure-AI-Studio-API-key",
            "target" => "Target-Uri",
            "provider" => "openai",
            "endpoint_type" => "token",
        ],
    ],
]);
```

#### Ruby

```ruby
response = client.inference.put(
  task_type: "text_embedding",
  inference_id: "azure_ai_studio_embeddings",
  body: {
    "service": "azureaistudio",
    "service_settings": {
      "api_key": "Azure-AI-Studio-API-key",
      "target": "Target-Uri",
      "provider": "openai",
      "endpoint_type": "token"
    }
  }
)
```

