Skip to content

Commit 615b98d

Browse files
Add YAML test
1 parent d747954 commit 615b98d

File tree

3 files changed

+152
-1
lines changed

3 files changed

+152
-1
lines changed

x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/inference/InferenceFeatureSetUsage.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import org.elasticsearch.TransportVersions;
1212
import org.elasticsearch.common.io.stream.StreamInput;
1313
import org.elasticsearch.common.io.stream.StreamOutput;
14+
import org.elasticsearch.features.NodeFeature;
1415
import org.elasticsearch.xcontent.XContentBuilder;
1516
import org.elasticsearch.xpack.core.XPackFeatureUsage;
1617
import org.elasticsearch.xpack.core.XPackField;
@@ -23,6 +24,8 @@
2324

2425
public class InferenceFeatureSetUsage extends XPackFeatureUsage {
2526

27+
public static final NodeFeature SEMANTIC_TEXT_USAGE = new NodeFeature("inference.semantic_text_usage");
28+
2629
public static final InferenceFeatureSetUsage EMPTY = new InferenceFeatureSetUsage(List.of());
2730

2831
private final Collection<ModelStats> modelStats;

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
import org.elasticsearch.features.FeatureSpecification;
1111
import org.elasticsearch.features.NodeFeature;
12+
import org.elasticsearch.xpack.core.inference.InferenceFeatureSetUsage;
1213
import org.elasticsearch.xpack.inference.mapper.SemanticInferenceMetadataFieldsMapper;
1314
import org.elasticsearch.xpack.inference.mapper.SemanticTextFieldMapper;
1415
import org.elasticsearch.xpack.inference.queries.InterceptedInferenceQueryBuilder;
@@ -87,7 +88,8 @@ public Set<NodeFeature> getTestFeatures() {
8788
SemanticQueryBuilder.SEMANTIC_QUERY_MULTIPLE_INFERENCE_IDS,
8889
SemanticQueryBuilder.SEMANTIC_QUERY_FILTER_FIELD_CAPS_FIX,
8990
InterceptedInferenceQueryBuilder.NEW_SEMANTIC_QUERY_INTERCEPTORS,
90-
TEXT_SIMILARITY_RERANKER_SNIPPETS
91+
TEXT_SIMILARITY_RERANKER_SNIPPETS,
92+
InferenceFeatureSetUsage.SEMANTIC_TEXT_USAGE
9193
)
9294
);
9395
return testFeatures;
Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,146 @@
1+
setup:
2+
- requires:
3+
cluster_features: "inference.semantic_text_usage"
4+
reason: tests added after semantic_text usage was added
5+
6+
---
7+
"Test usage given default endpoints":
8+
9+
- do:
10+
xpack.usage: {}
11+
12+
- match: { inference.available: true }
13+
- match: { inference.enabled: true }
14+
- length: { inference.models: 9 }
15+
16+
- match: { inference.models.0.service: "_all" }
17+
- match: { inference.models.0.task_type: "RERANK" }
18+
- match: { inference.models.0.count: 1 }
19+
- is_false: inference.models.0.semantic_text
20+
21+
- match: { inference.models.1.service: "_all" }
22+
- match: { inference.models.1.task_type: "SPARSE_EMBEDDING" }
23+
- match: { inference.models.1.count: 1 }
24+
- is_false: inference.models.1.semantic_text
25+
26+
- match: { inference.models.2.service: "_all" }
27+
- match: { inference.models.2.task_type: "TEXT_EMBEDDING" }
28+
- match: { inference.models.2.count: 1 }
29+
- is_false: inference.models.2.semantic_text
30+
31+
- match: { inference.models.3.service: "_elasticsearch__elser_model_2" }
32+
- match: { inference.models.3.task_type: "SPARSE_EMBEDDING" }
33+
- match: { inference.models.3.count: 1 }
34+
- is_false: inference.models.3.semantic_text
35+
36+
- match: { inference.models.4.service: "_elasticsearch__multilingual-e5-small" }
37+
- match: { inference.models.4.task_type: "TEXT_EMBEDDING" }
38+
- match: { inference.models.4.count: 1 }
39+
- is_false: inference.models.4.semantic_text
40+
41+
- match: { inference.models.5.service: "_elasticsearch__rerank-v1" }
42+
- match: { inference.models.5.task_type: "RERANK" }
43+
- match: { inference.models.5.count: 1 }
44+
- is_false: inference.models.5.semantic_text
45+
46+
- match: { inference.models.6.service: "elasticsearch" }
47+
- match: { inference.models.6.task_type: "RERANK" }
48+
- match: { inference.models.6.count: 1 }
49+
- is_false: inference.models.6.semantic_text
50+
51+
- match: { inference.models.7.service: "elasticsearch" }
52+
- match: { inference.models.7.task_type: "SPARSE_EMBEDDING" }
53+
- match: { inference.models.7.count: 1 }
54+
- is_false: inference.models.7.semantic_text
55+
56+
- match: { inference.models.8.service: "elasticsearch" }
57+
- match: { inference.models.8.task_type: "TEXT_EMBEDDING" }
58+
- match: { inference.models.8.count: 1 }
59+
- is_false: inference.models.8.semantic_text
60+
61+
---
62+
"Test usage given default endpoints and semantic_text fields":
63+
64+
- do:
65+
indices.create:
66+
index: test-index-1
67+
body:
68+
mappings:
69+
properties:
70+
field_1:
71+
type: semantic_text
72+
field_2:
73+
type: semantic_text
74+
inference_id: .multilingual-e5-small-elasticsearch
75+
76+
- do:
77+
indices.create:
78+
index: test-index-2
79+
body:
80+
mappings:
81+
properties:
82+
field_1:
83+
type: semantic_text
84+
85+
- do:
86+
xpack.usage: {}
87+
88+
- match: { inference.available: true }
89+
- match: { inference.enabled: true }
90+
- length: { inference.models: 9 }
91+
- match: { inference.models.0.service: "_all" }
92+
- match: { inference.models.0.task_type: "RERANK" }
93+
- match: { inference.models.0.count: 1 }
94+
- is_false: inference.models.0.semantic_text
95+
96+
- match: { inference.models.1.service: "_all" }
97+
- match: { inference.models.1.task_type: "SPARSE_EMBEDDING" }
98+
- match: { inference.models.1.count: 1 }
99+
- match: { inference.models.1.semantic_text.field_count: 2 }
100+
- match: { inference.models.1.semantic_text.indices_count: 2 }
101+
- match: { inference.models.1.semantic_text.inference_id_count: 1 }
102+
103+
- match: { inference.models.2.service: "_all" }
104+
- match: { inference.models.2.task_type: "TEXT_EMBEDDING" }
105+
- match: { inference.models.2.count: 1 }
106+
- match: { inference.models.2.semantic_text.field_count: 1 }
107+
- match: { inference.models.2.semantic_text.indices_count: 1 }
108+
- match: { inference.models.2.semantic_text.inference_id_count: 1 }
109+
110+
- match: { inference.models.3.service: "_elasticsearch__elser_model_2" }
111+
- match: { inference.models.3.task_type: "SPARSE_EMBEDDING" }
112+
- match: { inference.models.3.count: 1 }
113+
- match: { inference.models.3.semantic_text.field_count: 2 }
114+
- match: { inference.models.3.semantic_text.indices_count: 2 }
115+
- match: { inference.models.3.semantic_text.inference_id_count: 1 }
116+
117+
- match: { inference.models.4.service: "_elasticsearch__multilingual-e5-small" }
118+
- match: { inference.models.4.task_type: "TEXT_EMBEDDING" }
119+
- match: { inference.models.4.count: 1 }
120+
- match: { inference.models.4.semantic_text.field_count: 1 }
121+
- match: { inference.models.4.semantic_text.indices_count: 1 }
122+
- match: { inference.models.4.semantic_text.inference_id_count: 1 }
123+
124+
- match: { inference.models.5.service: "_elasticsearch__rerank-v1" }
125+
- match: { inference.models.5.task_type: "RERANK" }
126+
- match: { inference.models.5.count: 1 }
127+
- is_false: inference.models.5.semantic_text
128+
129+
- match: { inference.models.6.service: "elasticsearch" }
130+
- match: { inference.models.6.task_type: "RERANK" }
131+
- match: { inference.models.6.count: 1 }
132+
- is_false: inference.models.6.semantic_text
133+
134+
- match: { inference.models.7.service: "elasticsearch" }
135+
- match: { inference.models.7.task_type: "SPARSE_EMBEDDING" }
136+
- match: { inference.models.7.count: 1 }
137+
- match: { inference.models.7.semantic_text.field_count: 2 }
138+
- match: { inference.models.7.semantic_text.indices_count: 2 }
139+
- match: { inference.models.7.semantic_text.inference_id_count: 1 }
140+
141+
- match: { inference.models.8.service: "elasticsearch" }
142+
- match: { inference.models.8.task_type: "TEXT_EMBEDDING" }
143+
- match: { inference.models.8.count: 1 }
144+
- match: { inference.models.8.semantic_text.field_count: 1 }
145+
- match: { inference.models.8.semantic_text.indices_count: 1 }
146+
- match: { inference.models.8.semantic_text.inference_id_count: 1 }

0 commit comments

Comments
 (0)