1111import org .elasticsearch .action .support .PlainActionFuture ;
1212import org .elasticsearch .common .settings .Settings ;
1313import org .elasticsearch .core .TimeValue ;
14+ import org .elasticsearch .index .mapper .vectors .DenseVectorFieldMapper ;
1415import org .elasticsearch .inference .InferenceService ;
1516import org .elasticsearch .inference .MinimalServiceSettings ;
1617import org .elasticsearch .inference .Model ;
4344import static org .elasticsearch .xpack .inference .external .http .Utils .getUrl ;
4445import static org .elasticsearch .xpack .inference .services .ServiceComponentsTests .createWithEmptySettings ;
4546import static org .hamcrest .CoreMatchers .is ;
47+ import static org .hamcrest .Matchers .containsInAnyOrder ;
4648import static org .mockito .Mockito .mock ;
4749
4850public class InferenceRevokeDefaultEndpointsIT extends ESSingleNodeTestCase {
@@ -94,7 +96,6 @@ public void testDefaultConfigs_Returns_DefaultChatCompletion_V1_WhenTaskTypeIsCo
9496 try (var service = createElasticInferenceService ()) {
9597 ensureAuthorizationCallFinished (service );
9698 assertThat (service .supportedStreamingTasks (), is (EnumSet .of (TaskType .CHAT_COMPLETION )));
97-
9899 assertThat (
99100 service .defaultConfigIds (),
100101 is (
@@ -191,13 +192,21 @@ public void testRemoves_DefaultChatCompletion_V1_WhenAuthorizationDoesNotReturnA
191192 String responseJson = """
192193 {
193194 "models": [
195+ {
196+ "model_name": "elser-v2",
197+ "task_types": ["embed/text/sparse"]
198+ },
194199 {
195200 "model_name": "rainbow-sprinkles",
196201 "task_types": ["chat"]
197202 },
198203 {
199- "model_name": "elser-v2",
200- "task_types": ["embed/text/sparse"]
204+ "model_name": "multilingual-embed-v1",
205+ "task_types": ["embed/text/dense"]
206+ },
207+ {
208+ "model_name": "rerank-v1",
209+ "task_types": ["rerank/text/text-similarity"]
201210 }
202211 ]
203212 }
@@ -211,27 +220,48 @@ public void testRemoves_DefaultChatCompletion_V1_WhenAuthorizationDoesNotReturnA
211220 assertThat (service .supportedStreamingTasks (), is (EnumSet .of (TaskType .CHAT_COMPLETION )));
212221 assertThat (
213222 service .defaultConfigIds (),
214- is (
215- List .of (
216- new InferenceService .DefaultConfigId (
217- ".elser-v2-elastic" ,
218- MinimalServiceSettings .sparseEmbedding (ElasticInferenceService .NAME ),
219- service
223+ containsInAnyOrder (
224+ new InferenceService .DefaultConfigId (
225+ ".elser-v2-elastic" ,
226+ MinimalServiceSettings .sparseEmbedding (ElasticInferenceService .NAME ),
227+ service
228+ ),
229+ new InferenceService .DefaultConfigId (
230+ ".rainbow-sprinkles-elastic" ,
231+ MinimalServiceSettings .chatCompletion (ElasticInferenceService .NAME ),
232+ service
233+ ),
234+ new InferenceService .DefaultConfigId (
235+ ".multilingual-embed-v1-elastic" ,
236+ MinimalServiceSettings .textEmbedding (
237+ ElasticInferenceService .NAME ,
238+ ElasticInferenceService .DENSE_TEXT_EMBEDDINGS_DIMENSIONS ,
239+ ElasticInferenceService .defaultDenseTextEmbeddingsSimilarity (),
240+ DenseVectorFieldMapper .ElementType .FLOAT
220241 ),
221- new InferenceService .DefaultConfigId (
222- ".rainbow-sprinkles-elastic" ,
223- MinimalServiceSettings .chatCompletion (ElasticInferenceService .NAME ),
224- service
225- )
242+ service
243+ ),
244+ new InferenceService .DefaultConfigId (
245+ ".rerank-v1-elastic" ,
246+ MinimalServiceSettings .rerank (ElasticInferenceService .NAME ),
247+ service
226248 )
227249 )
228250 );
229- assertThat (service .supportedTaskTypes (), is (EnumSet .of (TaskType .CHAT_COMPLETION , TaskType .SPARSE_EMBEDDING )));
251+ assertThat (
252+ service .supportedTaskTypes (),
253+ is (EnumSet .of (TaskType .CHAT_COMPLETION , TaskType .SPARSE_EMBEDDING , TaskType .RERANK , TaskType .TEXT_EMBEDDING ))
254+ );
230255
231256 PlainActionFuture <List <Model >> listener = new PlainActionFuture <>();
232257 service .defaultConfigs (listener );
233258 assertThat (listener .actionGet (TIMEOUT ).get (0 ).getConfigurations ().getInferenceEntityId (), is (".elser-v2-elastic" ));
234- assertThat (listener .actionGet (TIMEOUT ).get (1 ).getConfigurations ().getInferenceEntityId (), is (".rainbow-sprinkles-elastic" ));
259+ assertThat (
260+ listener .actionGet (TIMEOUT ).get (1 ).getConfigurations ().getInferenceEntityId (),
261+ is (".multilingual-embed-v1-elastic" )
262+ );
263+ assertThat (listener .actionGet (TIMEOUT ).get (2 ).getConfigurations ().getInferenceEntityId (), is (".rainbow-sprinkles-elastic" ));
264+ assertThat (listener .actionGet (TIMEOUT ).get (3 ).getConfigurations ().getInferenceEntityId (), is (".rerank-v1-elastic" ));
235265
236266 var getModelListener = new PlainActionFuture <UnparsedModel >();
237267 // persists the default endpoints
@@ -249,6 +279,14 @@ public void testRemoves_DefaultChatCompletion_V1_WhenAuthorizationDoesNotReturnA
249279 {
250280 "model_name": "elser-v2",
251281 "task_types": ["embed/text/sparse"]
282+ },
283+ {
284+ "model_name": "rerank-v1",
285+ "task_types": ["rerank/text/text-similarity"]
286+ },
287+ {
288+ "model_name": "multilingual-embed-v1",
289+ "task_types": ["embed/text/dense"]
252290 }
253291 ]
254292 }
@@ -262,17 +300,33 @@ public void testRemoves_DefaultChatCompletion_V1_WhenAuthorizationDoesNotReturnA
262300 assertThat (service .supportedStreamingTasks (), is (EnumSet .noneOf (TaskType .class )));
263301 assertThat (
264302 service .defaultConfigIds (),
265- is (
266- List .of (
267- new InferenceService .DefaultConfigId (
268- ".elser-v2-elastic" ,
269- MinimalServiceSettings .sparseEmbedding (ElasticInferenceService .NAME ),
270- service
271- )
303+ containsInAnyOrder (
304+ new InferenceService .DefaultConfigId (
305+ ".elser-v2-elastic" ,
306+ MinimalServiceSettings .sparseEmbedding (ElasticInferenceService .NAME ),
307+ service
308+ ),
309+ new InferenceService .DefaultConfigId (
310+ ".multilingual-embed-v1-elastic" ,
311+ MinimalServiceSettings .textEmbedding (
312+ ElasticInferenceService .NAME ,
313+ ElasticInferenceService .DENSE_TEXT_EMBEDDINGS_DIMENSIONS ,
314+ ElasticInferenceService .defaultDenseTextEmbeddingsSimilarity (),
315+ DenseVectorFieldMapper .ElementType .FLOAT
316+ ),
317+ service
318+ ),
319+ new InferenceService .DefaultConfigId (
320+ ".rerank-v1-elastic" ,
321+ MinimalServiceSettings .rerank (ElasticInferenceService .NAME ),
322+ service
272323 )
273324 )
274325 );
275- assertThat (service .supportedTaskTypes (), is (EnumSet .of (TaskType .SPARSE_EMBEDDING )));
326+ assertThat (
327+ service .supportedTaskTypes (),
328+ is (EnumSet .of (TaskType .TEXT_EMBEDDING , TaskType .SPARSE_EMBEDDING , TaskType .RERANK ))
329+ );
276330
277331 var getModelListener = new PlainActionFuture <UnparsedModel >();
278332 modelRegistry .getModel (".rainbow-sprinkles-elastic" , getModelListener );
0 commit comments