Skip to content

Commit 2889fa0

Browse files
committed
resolve merge conflicts
1 parent abacf6d commit 2889fa0

File tree

9 files changed

+92
-35
lines changed

9 files changed

+92
-35
lines changed

docs/changelog/130336.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
pr: 130336
2+
summary: "[EIS] Rename the elser 2 default model and the default inference endpoint"
3+
area: Machine Learning
4+
type: bug
5+
issues: []

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

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,23 +12,34 @@
1212
import org.elasticsearch.inference.TaskType;
1313

1414
import java.io.IOException;
15+
import java.util.List;
16+
import java.util.Map;
1517

1618
import static org.elasticsearch.xpack.inference.InferenceBaseRestTest.getAllModels;
1719
import static org.elasticsearch.xpack.inference.InferenceBaseRestTest.getModels;
1820
import static org.hamcrest.Matchers.hasSize;
21+
import static org.hamcrest.Matchers.is;
22+
import static org.junit.Assert.assertTrue;
1923

2024
public class InferenceGetModelsWithElasticInferenceServiceIT extends BaseMockEISAuthServerTest {
2125

2226
public void testGetDefaultEndpoints() throws IOException {
2327
var allModels = getAllModels();
2428
var chatCompletionModels = getModels("_all", TaskType.CHAT_COMPLETION);
2529

26-
assertThat(allModels, hasSize(4));
30+
assertThat(allModels, hasSize(5));
2731
assertThat(chatCompletionModels, hasSize(1));
2832

2933
for (var model : chatCompletionModels) {
3034
assertEquals("chat_completion", model.get("task_type"));
3135
}
3236

37+
assertInferenceIdTaskType(allModels, ".elser-2-elastic", TaskType.SPARSE_EMBEDDING);
38+
}
39+
40+
private static void assertInferenceIdTaskType(List<Map<String, Object>> models, String inferenceId, TaskType taskType) {
41+
var model = models.stream().filter(m -> m.get("inference_id").equals(inferenceId)).findFirst();
42+
assertTrue("could not find inference id: " + inferenceId, model.isPresent());
43+
assertThat(model.get().get("task_type"), is(taskType.toString()));
3344
}
3445
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public static MockElasticInferenceServiceAuthorizationServer enabledWithRainbowS
3434
"task_types": ["chat"]
3535
},
3636
{
37-
"model_name": "elser-v2",
37+
"model_name": "elser_model_2",
3838
"task_types": ["embed/text/sparse"]
3939
}
4040
]

x-pack/plugin/inference/src/internalClusterTest/java/org/elasticsearch/xpack/inference/integration/InferenceRevokeDefaultEndpointsIT.java

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@
4242
import static org.elasticsearch.xpack.inference.external.http.Utils.getUrl;
4343
import static org.elasticsearch.xpack.inference.services.ServiceComponentsTests.createWithEmptySettings;
4444
import static org.hamcrest.CoreMatchers.is;
45+
import static org.hamcrest.Matchers.containsInAnyOrder;
46+
import static org.junit.Assert.assertTrue;
4547
import static org.mockito.Mockito.mock;
4648

4749
public class InferenceRevokeDefaultEndpointsIT extends ESSingleNodeTestCase {
@@ -190,7 +192,7 @@ public void testRemoves_DefaultChatCompletion_V1_WhenAuthorizationDoesNotReturnA
190192
"task_types": ["chat"]
191193
},
192194
{
193-
"model_name": "elser-v2",
195+
"model_name": "elser_model_2",
194196
"task_types": ["embed/text/sparse"]
195197
}
196198
]
@@ -205,21 +207,17 @@ public void testRemoves_DefaultChatCompletion_V1_WhenAuthorizationDoesNotReturnA
205207
assertThat(service.supportedStreamingTasks(), is(EnumSet.of(TaskType.CHAT_COMPLETION, TaskType.ANY)));
206208
assertThat(
207209
service.defaultConfigIds(),
208-
is(
209-
List.of(
210-
new InferenceService.DefaultConfigId(
211-
".rainbow-sprinkles-elastic",
212-
MinimalServiceSettings.chatCompletion(),
213-
service
214-
)
215-
)
210+
containsInAnyOrder(
211+
new InferenceService.DefaultConfigId(".elser-2-elastic", MinimalServiceSettings.sparseEmbedding(), service),
212+
new InferenceService.DefaultConfigId(".rainbow-sprinkles-elastic", MinimalServiceSettings.chatCompletion(), service)
216213
)
217214
);
218215
assertThat(service.supportedTaskTypes(), is(EnumSet.of(TaskType.CHAT_COMPLETION, TaskType.SPARSE_EMBEDDING)));
219216

220217
PlainActionFuture<List<Model>> listener = new PlainActionFuture<>();
221218
service.defaultConfigs(listener);
222-
assertThat(listener.actionGet(TIMEOUT).get(0).getConfigurations().getInferenceEntityId(), is(".rainbow-sprinkles-elastic"));
219+
assertThat(listener.actionGet(TIMEOUT).get(0).getConfigurations().getInferenceEntityId(), is(".elser-2-elastic"));
220+
assertThat(listener.actionGet(TIMEOUT).get(1).getConfigurations().getInferenceEntityId(), is(".rainbow-sprinkles-elastic"));
223221

224222
var getModelListener = new PlainActionFuture<UnparsedModel>();
225223
// persists the default endpoints
@@ -235,7 +233,7 @@ public void testRemoves_DefaultChatCompletion_V1_WhenAuthorizationDoesNotReturnA
235233
{
236234
"models": [
237235
{
238-
"model_name": "elser-v2",
236+
"model_name": "elser_model_2",
239237
"task_types": ["embed/text/sparse"]
240238
}
241239
]
@@ -248,7 +246,16 @@ public void testRemoves_DefaultChatCompletion_V1_WhenAuthorizationDoesNotReturnA
248246
ensureAuthorizationCallFinished(service);
249247

250248
assertThat(service.supportedStreamingTasks(), is(EnumSet.noneOf(TaskType.class)));
251-
assertTrue(service.defaultConfigIds().isEmpty());
249+
assertThat(
250+
service.defaultConfigIds(),
251+
containsInAnyOrder(
252+
new InferenceService.DefaultConfigId(
253+
".elser-2-elastic",
254+
MinimalServiceSettings.sparseEmbedding(ElasticInferenceService.NAME),
255+
service
256+
)
257+
)
258+
);
252259
assertThat(service.supportedTaskTypes(), is(EnumSet.of(TaskType.SPARSE_EMBEDDING)));
253260

254261
var getModelListener = new PlainActionFuture<UnparsedModel>();

x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/services/elastic/ElasticInferenceService.java

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,11 @@ public class ElasticInferenceService extends SenderService {
8080
private static final EnumSet<TaskType> IMPLEMENTED_TASK_TYPES = EnumSet.of(TaskType.SPARSE_EMBEDDING, TaskType.CHAT_COMPLETION);
8181
private static final String SERVICE_NAME = "Elastic";
8282
static final String DEFAULT_CHAT_COMPLETION_MODEL_ID_V1 = "rainbow-sprinkles";
83-
static final String DEFAULT_CHAT_COMPLETION_ENDPOINT_ID_V1 = Strings.format(".%s-elastic", DEFAULT_CHAT_COMPLETION_MODEL_ID_V1);
83+
static final String DEFAULT_CHAT_COMPLETION_ENDPOINT_ID_V1 = defaultEndpointId(DEFAULT_CHAT_COMPLETION_MODEL_ID_V1);
84+
85+
// elser-2
86+
static final String DEFAULT_ELSER_2_MODEL_ID = "elser_model_2";
87+
static final String DEFAULT_ELSER_ENDPOINT_ID_V2 = defaultEndpointId("elser-2");
8488

8589
/**
8690
* The task types that the {@link InferenceAction.Request} can accept.
@@ -133,6 +137,19 @@ private static Map<String, DefaultModelConfig> initDefaultEndpoints(
133137
elasticInferenceServiceComponents
134138
),
135139
MinimalServiceSettings.chatCompletion()
140+
),
141+
DEFAULT_ELSER_2_MODEL_ID,
142+
new DefaultModelConfig(
143+
new ElasticInferenceServiceSparseEmbeddingsModel(
144+
DEFAULT_ELSER_ENDPOINT_ID_V2,
145+
TaskType.SPARSE_EMBEDDING,
146+
NAME,
147+
new ElasticInferenceServiceSparseEmbeddingsServiceSettings(DEFAULT_ELSER_2_MODEL_ID, null, null),
148+
EmptyTaskSettings.INSTANCE,
149+
EmptySecretSettings.INSTANCE,
150+
elasticInferenceServiceComponents
151+
),
152+
MinimalServiceSettings.sparseEmbedding()
136153
)
137154
);
138155
}

x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/services/elasticsearch/ElserModels.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,4 @@ public static boolean isValidModel(String model) {
2626
return model != null && VALID_ELSER_MODEL_IDS.contains(model);
2727
}
2828

29-
public static boolean isValidEisModel(String model) {
30-
return ELSER_V2_MODEL.equals(model);
31-
}
32-
3329
}

x-pack/plugin/inference/src/test/java/org/elasticsearch/xpack/inference/services/elastic/ElasticInferenceServiceTests.java

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,10 @@
8686
import static org.hamcrest.Matchers.equalTo;
8787
import static org.hamcrest.Matchers.hasSize;
8888
import static org.hamcrest.Matchers.isA;
89+
import static org.junit.Assert.assertFalse;
90+
import static org.junit.Assert.assertNull;
91+
import static org.junit.Assert.assertThrows;
92+
import static org.junit.Assert.assertTrue;
8993
import static org.mockito.ArgumentMatchers.any;
9094
import static org.mockito.Mockito.doAnswer;
9195
import static org.mockito.Mockito.mock;
@@ -960,6 +964,18 @@ public void testDefaultConfigs_Returns_DefaultChatCompletion_V1_WhenTaskTypeIsCo
960964
{
961965
"model_name": "rainbow-sprinkles",
962966
"task_types": ["chat"]
967+
},
968+
{
969+
"model_name": "elser_model_2",
970+
"task_types": ["embed/text/sparse"]
971+
},
972+
{
973+
"model_name": "multilingual-embed-v1",
974+
"task_types": ["embed/text/dense"]
975+
},
976+
{
977+
"model_name": "rerank-v1",
978+
"task_types": ["rerank/text/text-similarity"]
963979
}
964980
]
965981
}
@@ -976,15 +992,19 @@ public void testDefaultConfigs_Returns_DefaultChatCompletion_V1_WhenTaskTypeIsCo
976992
service.defaultConfigIds(),
977993
is(
978994
List.of(
995+
new InferenceService.DefaultConfigId(".elser-2-elastic", MinimalServiceSettings.sparseEmbedding(), service),
979996
new InferenceService.DefaultConfigId(".rainbow-sprinkles-elastic", MinimalServiceSettings.chatCompletion(), service)
980997
)
981998
)
982999
);
983-
assertThat(service.supportedTaskTypes(), is(EnumSet.of(TaskType.CHAT_COMPLETION)));
1000+
assertThat(service.supportedTaskTypes(), is(EnumSet.of(TaskType.SPARSE_EMBEDDING, TaskType.CHAT_COMPLETION)));
9841001

9851002
PlainActionFuture<List<Model>> listener = new PlainActionFuture<>();
9861003
service.defaultConfigs(listener);
987-
assertThat(listener.actionGet(TIMEOUT).get(0).getConfigurations().getInferenceEntityId(), is(".rainbow-sprinkles-elastic"));
1004+
var models = listener.actionGet(TIMEOUT);
1005+
assertThat(models.size(), is(2));
1006+
assertThat(models.get(0).getConfigurations().getInferenceEntityId(), is(".elser-2-elastic"));
1007+
assertThat(models.get(1).getConfigurations().getInferenceEntityId(), is(".rainbow-sprinkles-elastic"));
9881008
}
9891009
}
9901010

x-pack/plugin/inference/src/test/java/org/elasticsearch/xpack/inference/services/elastic/authorization/ElasticInferenceServiceAuthorizationHandlerTests.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@
2424
import org.elasticsearch.xpack.inference.services.elastic.DefaultModelConfig;
2525
import org.elasticsearch.xpack.inference.services.elastic.ElasticInferenceServiceComponents;
2626
import org.elasticsearch.xpack.inference.services.elastic.ElasticInferenceServiceSettingsTests;
27+
import org.elasticsearch.xpack.inference.services.elastic.ElasticInferenceServiceSparseEmbeddingsModel;
28+
import org.elasticsearch.xpack.inference.services.elastic.ElasticInferenceServiceSparseEmbeddingsServiceSettings;
2729
import org.elasticsearch.xpack.inference.services.elastic.completion.ElasticInferenceServiceCompletionModel;
2830
import org.elasticsearch.xpack.inference.services.elastic.completion.ElasticInferenceServiceCompletionServiceSettings;
2931
import org.junit.Before;
@@ -165,6 +167,19 @@ private static Map<String, DefaultModelConfig> initDefaultEndpoints() {
165167
ElasticInferenceServiceComponents.EMPTY_INSTANCE
166168
),
167169
MinimalServiceSettings.chatCompletion()
170+
),
171+
"elser-2",
172+
new DefaultModelConfig(
173+
new ElasticInferenceServiceSparseEmbeddingsModel(
174+
defaultEndpointId("elser-2"),
175+
TaskType.SPARSE_EMBEDDING,
176+
"test",
177+
new ElasticInferenceServiceSparseEmbeddingsServiceSettings("elser-2", null, null),
178+
EmptyTaskSettings.INSTANCE,
179+
EmptySecretSettings.INSTANCE,
180+
ElasticInferenceServiceComponents.EMPTY_INSTANCE
181+
),
182+
MinimalServiceSettings.sparseEmbedding()
168183
)
169184
);
170185
}

x-pack/plugin/inference/src/test/java/org/elasticsearch/xpack/inference/services/elasticsearch/ElserModelsTests.java

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -19,21 +19,7 @@ public void testIsValidModel() {
1919
assertTrue(org.elasticsearch.xpack.inference.services.elasticsearch.ElserModels.isValidModel(randomElserModel()));
2020
}
2121

22-
public void testIsValidEisModel() {
23-
assertTrue(
24-
org.elasticsearch.xpack.inference.services.elasticsearch.ElserModels.isValidEisModel(
25-
org.elasticsearch.xpack.inference.services.elasticsearch.ElserModels.ELSER_V2_MODEL
26-
)
27-
);
28-
}
29-
3022
public void testIsInvalidModel() {
3123
assertFalse(org.elasticsearch.xpack.inference.services.elasticsearch.ElserModels.isValidModel("invalid"));
3224
}
33-
34-
public void testIsInvalidEisModel() {
35-
assertFalse(
36-
org.elasticsearch.xpack.inference.services.elasticsearch.ElserModels.isValidEisModel(ElserModels.ELSER_V2_MODEL_LINUX_X86)
37-
);
38-
}
3925
}

0 commit comments

Comments
 (0)