Create an OpenAI inference endpoint
- PUT /_inference/{task_type}/{openai_inference_id}
Create an inference endpoint to perform an inference task with the openai service or openai compatible APIs.
- Cluster privileges:
manage_inference
Path Parameters
-
task_typeOpenAITaskTyperequired -
The type of the inference task that the model will perform. NOTE: The
chat_completiontask type only supports streaming and only through the _stream API. -
Values:
chat_completioncompletiontext_embeddingembedding -
openai_inference_idstring Idrequired -
The unique identifier of the inference endpoint.
Query Parameters
-
timeoutstring Duration · default: 30s Specifies the amount of time to wait for the inference endpoint to be created.
Request
-
chunking_settingsInferenceChunkingSettings -
The chunking configuration object. Applies only to the
text_embeddingtask type. Not applicable to thecompletionorchat_completiontask types. - Reference
-
max_chunk_sizenumber · default: 250 -
The maximum size of a chunk in words. This value cannot be lower than
20(forsentencestrategy) or10(forwordstrategy). This value should not exceed the window size for the associated model. -
overlapnumber · default: 100 -
The number of overlapping words for chunks. It is applicable only to a
wordchunking strategy. This value cannot be higher than half themax_chunk_sizevalue. -
sentence_overlapnumber · default: 1 -
The number of overlapping sentences for chunks. It is applicable only for a
sentencechunking strategy. It can be either1or0. -
separator_groupstring -
Only applicable to the
recursivestrategy and required when using it.Sets a predefined list of separators in the saved chunking settings based on the selected text type. Values can be
markdownorplaintext.Using this parameter is an alternative to manually specifying a custom
separatorslist. -
separatorsstring -
Only applicable to the
recursivestrategy and required when using it.A list of strings used as possible split points when chunking text.
Each string can be a plain string or a regular expression (regex) pattern. The system tries each separator in order to split the text, starting from the first item in the list.
After splitting, it attempts to recombine smaller pieces into larger chunks that stay within the
max_chunk_sizelimit, to reduce the total number of chunks generated. -
serviceOpenAIServiceTyperequired -
The type of service supported for the specified task type. In this case,
openai. -
Values:
openai -
service_settingsOpenAIServiceSettingsrequired -
Settings used to install the inference model. These settings are specific to the
openaiservice. -
api_keystring -
A valid API key of your OpenAI account. You can find your OpenAI API keys in your OpenAI account under the API keys section.
IMPORTANT: You must specify either
api_keyorclient_secret. If you do not provide one or you provide more than one of them, you will receive an error when you try to create your endpoint. - External docs
-
client_idstring -
For OAuth 2.0 authorization using the client credentials grant flow. The application ID that's assigned to your app.
IMPORTANT: To configure OAuth 2.0, you must specify
client_id,scopes,token_url, andclient_secrettogether. If one of the fields is missing, you will receive an error when you try to create your endpoint. -
client_secretstring -
For OAuth 2.0 authorization using the client credentials grant flow. The application secret that you created for your app.
IMPORTANT: You must specify either
api_keyorclient_secret. If you do not provide one or you provide more than one of them, you will receive an error when you try to create your endpoint.IMPORTANT: To configure OAuth 2.0, you must specify
client_id,scopes,token_url, andclient_secrettogether. If one of the fields is missing, you will receive an error when you try to create your endpoint. -
dimensionsnumber -
For a
text_embeddingorembeddingtask, the number of dimensions the resulting output embeddings should have. It is supported only intext-embedding-3and later models. If it is not set, the OpenAI defined default for the model is used. -
model_idstringrequired -
The name of the model to use for the inference task. Refer to the OpenAI documentation for the list of available text embedding models.
- External docs
-
organization_idstring -
The unique identifier for your organization. You can find the Organization ID in your OpenAI account under Settings > Organizations.
-
rate_limitRateLimitSetting -
This setting helps to minimize the number of rate limit errors returned from OpenAI. The
openaiservice sets a default number of requests allowed per minute depending on the task type. Fortext_embeddingandembedding, it is set to3000. Forcompletionandchat_completion, it is set to500. -
requests_per_minutenumber -
The number of requests allowed per minute. By default, the number of requests allowed per minute is set by each service as follows:
alibabacloud-ai-searchservice:1000amazonbedrockservice:240anthropicservice:50azureaistudioservice:240azureopenaiservice and task typetext_embedding:1440azureopenaiservice and task typescompletionorchat_completion:120cohereservice:10000contextualaiservice:1000elasticservice and task typechat_completion:240fireworksaiservice:6000googleaistudioservice:360googlevertexaiservice:30000hugging_faceservice:3000jinaaiservice:2000llamaservice:3000mistralservice:240openaiservice and task typetext_embedding:3000openaiservice and task typecompletion:500openshift_aiservice:3000voyageaiservice:2000watsonxaiservice:120
-
scopesstring -
For OAuth 2.0 authorization using the client credentials grant flow. The resource identifier of the resource you want. For example:
"scopes": [ "scope1", "scope2" ]IMPORTANT: To configure OAuth 2.0, you must specify
client_id,scopes,token_url, andclient_secrettogether. If one of the fields is missing, you will receive an error when you try to create your endpoint. -
similarityOpenAISimilarityType -
For a
text_embeddingorembeddingtask, the similarity measure. One ofcosine,dot_product,l2_norm. Defaults todot_product. -
Values:
cosinedot_productl2_norm -
token_urlstring -
For OAuth 2.0 authorization using the client credentials grant flow. An OAuth2 token endpoint where Elasticsearch sends a request to exchange client credentials for an access token.
IMPORTANT: To configure OAuth 2.0, you must specify
client_id,scopes,token_url, andclient_secrettogether. If one of the fields is missing, you will receive an error when you try to create your endpoint. -
urlstring -
The URL endpoint to use for the requests. It can be changed for testing purposes. Default value is
https://api.openai.com/v1/embeddingsfor atext_embeddingorembeddingtask,https://api.openai.com/v1/chat/completionsfor acompletionorchat_completiontask. -
task_settingsOpenAITaskSettings -
Settings to configure the inference task. These settings are specific to the task type you specified.
Response
-
chunking_settingsInferenceChunkingSettings -
The chunking configuration object. Applies only to the
embedding,sparse_embeddingandtext_embeddingtask types. Not applicable to thererank,completion, orchat_completiontask types. -
max_chunk_sizenumber · default: 250 -
The maximum size of a chunk in words. This value cannot be lower than
20(forsentencestrategy) or10(forwordstrategy). This value should not exceed the window size for the associated model. -
overlapnumber · default: 100 -
The number of overlapping words for chunks. It is applicable only to a
wordchunking strategy. This value cannot be higher than half themax_chunk_sizevalue. -
sentence_overlapnumber · default: 1 -
The number of overlapping sentences for chunks. It is applicable only for a
sentencechunking strategy. It can be either1or0. -
separator_groupstring -
Only applicable to the
recursivestrategy and required when using it.Sets a predefined list of separators in the saved chunking settings based on the selected text type. Values can be
markdownorplaintext.Using this parameter is an alternative to manually specifying a custom
separatorslist. -
separatorsstring -
Only applicable to the
recursivestrategy and required when using it.A list of strings used as possible split points when chunking text.
Each string can be a plain string or a regular expression (regex) pattern. The system tries each separator in order to split the text, starting from the first item in the list.
After splitting, it attempts to recombine smaller pieces into larger chunks that stay within the
max_chunk_sizelimit, to reduce the total number of chunks generated. -
servicestringrequired -
The service type
-
service_settingsServiceSettingsrequired -
Settings specific to the service
-
task_settingsTaskSettings -
Task settings specific to the service and task type
-
inference_idstringrequired -
The inference Id
-
task_typeTaskTypeOpenAIrequired -
The task type
-
Values:
text_embeddingchat_completioncompletionembedding