|
| 1 | +[role="xpack"] |
| 2 | +[[update-inference-api]] |
| 3 | +=== Update inference API |
| 4 | + |
| 5 | +experimental[] |
| 6 | + |
| 7 | +Updates an {infer} endpoint. |
| 8 | + |
| 9 | +IMPORTANT: The {infer} APIs enable you to use certain services, such as built-in {ml} models (ELSER, E5), models uploaded through Eland, Cohere, OpenAI, Azure, Google AI Studio, Google Vertex AI or Hugging Face. |
| 10 | +For built-in models and models uploaded through Eland, the {infer} APIs offer an alternative way to use and manage trained models. |
| 11 | +However, if you do not plan to use the {infer} APIs to use these models or if you want to use non-NLP models, use the <<ml-df-trained-models-apis>>. |
| 12 | + |
| 13 | + |
| 14 | +[discrete] |
| 15 | +[[update-inference-api-request]] |
| 16 | +==== {api-request-title} |
| 17 | + |
| 18 | +`POST _inference/<inference_id>/_update` |
| 19 | + |
| 20 | +`POST _inference/<task_type>/<inference_id>/_update` |
| 21 | + |
| 22 | + |
| 23 | +[discrete] |
| 24 | +[[update-inference-api-prereqs]] |
| 25 | +==== {api-prereq-title} |
| 26 | + |
| 27 | +* Requires the `manage_inference` <<privileges-list-cluster,cluster privilege>> (the built-in inference_admin role grants this privilege) |
| 28 | +* Requires an existing {infer} endpoint, created by using the <<put-inference-api>> |
| 29 | + |
| 30 | + |
| 31 | +[discrete] |
| 32 | +[[update-inference-api-desc]] |
| 33 | +==== {api-description-title} |
| 34 | + |
| 35 | +The update inference API enables you to update the task_settings, secrets, and/or num_allocations of an existing {infer} endpoint. |
| 36 | + |
| 37 | +To use the update API, you can modify `task_settings`, secrets (within `service_settings`), or `num_allocations`, depending on the specific endpoint service and task_type you've created. |
| 38 | +To view the updatable `task_settings`, the field names of secrets (specific to each service), and the services where `num_allocations` is applicable (only for the `elasticsearch` service), refer to the following list of services available through the {infer} API. |
| 39 | +You will find the available task types next to each service name. |
| 40 | +Click the links to review the service configuration details: |
| 41 | + |
| 42 | +* <<infer-service-alibabacloud-ai-search,AlibabaCloud AI Search>> (`completion`, `rerank`, `sparse_embedding`, `text_embedding`) |
| 43 | +* <<infer-service-amazon-bedrock,Amazon Bedrock>> (`completion`, `text_embedding`) |
| 44 | +* <<infer-service-anthropic,Anthropic>> (`completion`) |
| 45 | +* <<infer-service-azure-ai-studio,Azure AI Studio>> (`completion`, `text_embedding`) |
| 46 | +* <<infer-service-azure-openai,Azure OpenAI>> (`completion`, `text_embedding`) |
| 47 | +* <<infer-service-cohere,Cohere>> (`completion`, `rerank`, `text_embedding`) |
| 48 | +* <<infer-service-elasticsearch,Elasticsearch>> (`rerank`, `sparse_embedding`, `text_embedding` - this service is for built-in models and models uploaded through Eland) |
| 49 | +* <<infer-service-elser,ELSER>> (`sparse_embedding`) |
| 50 | +* <<infer-service-google-ai-studio,Google AI Studio>> (`completion`, `text_embedding`) |
| 51 | +* <<infer-service-google-vertex-ai,Google Vertex AI>> (`rerank`, `text_embedding`) |
| 52 | +* <<infer-service-hugging-face,Hugging Face>> (`text_embedding`) |
| 53 | +* <<infer-service-mistral,Mistral>> (`text_embedding`) |
| 54 | +* <<infer-service-openai,OpenAI>> (`completion`, `text_embedding`) |
| 55 | + |
| 56 | + |
| 57 | +[discrete] |
| 58 | +[[update-inference-api-path-params]] |
| 59 | +==== {api-path-parms-title} |
| 60 | + |
| 61 | +`<inference_id>`:: |
| 62 | +(Required, string) |
| 63 | +The unique identifier of the {infer} endpoint. |
| 64 | + |
| 65 | + |
| 66 | +`<task_type>`:: |
| 67 | +(Optional, string) |
| 68 | +The type of {infer} task that the model performs. |
| 69 | +Refer to the service list in the <<put-inference-api-desc,API description section>> for the available task types. |
| 70 | + |
| 71 | + |
| 72 | +[discrete] |
| 73 | +[[update-inference-api-example]] |
| 74 | +==== {api-examples-title} |
| 75 | + |
| 76 | +The following example shows how to update an API key of an {infer} endpoint called `my-inference-endpoint`: |
| 77 | + |
| 78 | +[source,console] |
| 79 | +------------------------------------------------------------ |
| 80 | +POST _inference/my-inference-endpoint/_update |
| 81 | +{ |
| 82 | + "service_settings": { |
| 83 | + "api_key": "<API_KEY>" |
| 84 | + } |
| 85 | +} |
| 86 | +------------------------------------------------------------ |
| 87 | +// TEST[skip:TBD] |
0 commit comments