Skip to content

Commit 65de0f0

Browse files
authored
Hides hugging_face_elser service from the GET _inference/_services API (#116664)
* Adding hideFromConfigurationApi flag * Update docs/changelog/116664.yaml
1 parent d2e5c43 commit 65de0f0

File tree

5 files changed

+36
-15
lines changed

5 files changed

+36
-15
lines changed

docs/changelog/116664.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
pr: 116664
2+
summary: Hides `hugging_face_elser` service from the `GET _inference/_services API`
3+
area: Machine Learning
4+
type: bug
5+
issues:
6+
- 116644

server/src/main/java/org/elasticsearch/inference/InferenceService.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,14 @@ default void init(Client client) {}
7474

7575
InferenceServiceConfiguration getConfiguration();
7676

77+
/**
78+
* Whether this service should be hidden from the API. Should be used for services
79+
* that are not ready to be used.
80+
*/
81+
default Boolean hideFromConfigurationApi() {
82+
return Boolean.FALSE;
83+
}
84+
7785
/**
7886
* The task types supported by the service
7987
* @return Set of supported.

x-pack/plugin/inference/qa/inference-service-tests/src/javaRestTest/java/org/elasticsearch/xpack/inference/InferenceCrudIT.java

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -135,9 +135,9 @@ public void testApisWithoutTaskType() throws IOException {
135135
public void testGetServicesWithoutTaskType() throws IOException {
136136
List<Object> services = getAllServices();
137137
if (ElasticInferenceServiceFeature.ELASTIC_INFERENCE_SERVICE_FEATURE_FLAG.isEnabled()) {
138-
assertThat(services.size(), equalTo(19));
139-
} else {
140138
assertThat(services.size(), equalTo(18));
139+
} else {
140+
assertThat(services.size(), equalTo(17));
141141
}
142142

143143
String[] providers = new String[services.size()];
@@ -160,7 +160,6 @@ public void testGetServicesWithoutTaskType() throws IOException {
160160
"googleaistudio",
161161
"googlevertexai",
162162
"hugging_face",
163-
"hugging_face_elser",
164163
"mistral",
165164
"openai",
166165
"streaming_completion_test_service",
@@ -259,9 +258,9 @@ public void testGetServicesWithSparseEmbeddingTaskType() throws IOException {
259258
List<Object> services = getServices(TaskType.SPARSE_EMBEDDING);
260259

261260
if (ElasticInferenceServiceFeature.ELASTIC_INFERENCE_SERVICE_FEATURE_FLAG.isEnabled()) {
262-
assertThat(services.size(), equalTo(6));
263-
} else {
264261
assertThat(services.size(), equalTo(5));
262+
} else {
263+
assertThat(services.size(), equalTo(4));
265264
}
266265

267266
String[] providers = new String[services.size()];
@@ -272,9 +271,7 @@ public void testGetServicesWithSparseEmbeddingTaskType() throws IOException {
272271

273272
Arrays.sort(providers);
274273

275-
var providerList = new ArrayList<>(
276-
Arrays.asList("alibabacloud-ai-search", "elasticsearch", "hugging_face", "hugging_face_elser", "test_service")
277-
);
274+
var providerList = new ArrayList<>(Arrays.asList("alibabacloud-ai-search", "elasticsearch", "hugging_face", "test_service"));
278275
if (ElasticInferenceServiceFeature.ELASTIC_INFERENCE_SERVICE_FEATURE_FLAG.isEnabled()) {
279276
providerList.add(1, "elastic");
280277
}

x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/action/TransportGetInferenceServicesAction.java

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,10 @@ private void getServiceConfigurationsForTaskType(
6868
var filteredServices = serviceRegistry.getServices()
6969
.entrySet()
7070
.stream()
71-
.filter(service -> service.getValue().supportedTaskTypes().contains(requestedTaskType))
71+
.filter(
72+
service -> service.getValue().hideFromConfigurationApi() == false
73+
&& service.getValue().supportedTaskTypes().contains(requestedTaskType)
74+
)
7275
.collect(Collectors.toSet());
7376

7477
getServiceConfigurationsForServices(filteredServices, listener.delegateFailureAndWrap((delegate, configurations) -> {
@@ -77,12 +80,14 @@ private void getServiceConfigurationsForTaskType(
7780
}
7881

7982
private void getAllServiceConfigurations(ActionListener<GetInferenceServicesAction.Response> listener) {
80-
getServiceConfigurationsForServices(
81-
serviceRegistry.getServices().entrySet(),
82-
listener.delegateFailureAndWrap((delegate, configurations) -> {
83-
delegate.onResponse(new GetInferenceServicesAction.Response(configurations));
84-
})
85-
);
83+
var availableServices = serviceRegistry.getServices()
84+
.entrySet()
85+
.stream()
86+
.filter(service -> service.getValue().hideFromConfigurationApi() == false)
87+
.collect(Collectors.toSet());
88+
getServiceConfigurationsForServices(availableServices, listener.delegateFailureAndWrap((delegate, configurations) -> {
89+
delegate.onResponse(new GetInferenceServicesAction.Response(configurations));
90+
}));
8691
}
8792

8893
private void getServiceConfigurationsForServices(

x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/services/huggingface/elser/HuggingFaceElserService.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,11 @@ public InferenceServiceConfiguration getConfiguration() {
125125
return Configuration.get();
126126
}
127127

128+
@Override
129+
public Boolean hideFromConfigurationApi() {
130+
return Boolean.TRUE;
131+
}
132+
128133
@Override
129134
public EnumSet<TaskType> supportedTaskTypes() {
130135
return supportedTaskTypes;

0 commit comments

Comments
 (0)