Skip to content

Commit 86e022e

Browse files
Address some review points
1 parent 8e4fe78 commit 86e022e

File tree

6 files changed

+25
-23
lines changed

6 files changed

+25
-23
lines changed

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

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
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;
1514
import org.elasticsearch.xcontent.XContentBuilder;
1615
import org.elasticsearch.xpack.core.XPackFeatureUsage;
1716
import org.elasticsearch.xpack.core.XPackField;
@@ -24,8 +23,6 @@
2423

2524
public class InferenceFeatureSetUsage extends XPackFeatureUsage {
2625

27-
public static final NodeFeature SEMANTIC_TEXT_USAGE = new NodeFeature("inference.semantic_text_usage");
28-
2926
public static final InferenceFeatureSetUsage EMPTY = new InferenceFeatureSetUsage(List.of());
3027

3128
private final Collection<ModelStats> modelStats;

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import org.elasticsearch.common.io.stream.StreamInput;
1212
import org.elasticsearch.common.io.stream.StreamOutput;
1313
import org.elasticsearch.common.io.stream.Writeable;
14+
import org.elasticsearch.features.NodeFeature;
1415
import org.elasticsearch.inference.TaskType;
1516
import org.elasticsearch.xcontent.ToXContentObject;
1617
import org.elasticsearch.xcontent.XContentBuilder;
@@ -20,6 +21,8 @@
2021

2122
public class ModelStats implements ToXContentObject, Writeable {
2223

24+
public static final NodeFeature SEMANTIC_TEXT_USAGE = new NodeFeature("inference.semantic_text_usage");
25+
2326
static final TransportVersion INFERENCE_TELEMETRY_ADDED_SEMANTIC_TEXT_STATS = TransportVersion.fromName(
2427
"inference_telemetry_added_semantic_text_stats"
2528
);

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
import org.elasticsearch.features.FeatureSpecification;
1111
import org.elasticsearch.features.NodeFeature;
12-
import org.elasticsearch.xpack.core.inference.InferenceFeatureSetUsage;
12+
import org.elasticsearch.xpack.core.inference.usage.ModelStats;
1313
import org.elasticsearch.xpack.inference.mapper.SemanticInferenceMetadataFieldsMapper;
1414
import org.elasticsearch.xpack.inference.mapper.SemanticTextFieldMapper;
1515
import org.elasticsearch.xpack.inference.queries.InterceptedInferenceQueryBuilder;
@@ -89,7 +89,7 @@ public Set<NodeFeature> getTestFeatures() {
8989
SemanticQueryBuilder.SEMANTIC_QUERY_FILTER_FIELD_CAPS_FIX,
9090
InterceptedInferenceQueryBuilder.NEW_SEMANTIC_QUERY_INTERCEPTORS,
9191
TEXT_SIMILARITY_RERANKER_SNIPPETS,
92-
InferenceFeatureSetUsage.SEMANTIC_TEXT_USAGE
92+
ModelStats.SEMANTIC_TEXT_USAGE
9393
)
9494
);
9595
return testFeatures;

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

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@
3535
import org.elasticsearch.xpack.inference.registry.ModelRegistry;
3636

3737
import java.util.ArrayList;
38-
import java.util.Arrays;
3938
import java.util.HashMap;
4039
import java.util.HashSet;
4140
import java.util.List;
@@ -93,7 +92,6 @@ private InferenceFeatureSetUsage collectUsage(List<ModelConfigurations> endpoint
9392
mapInferenceFieldsByIndexServiceAndTask(indicesMetadata, endpoints);
9493
Map<String, ModelStats> endpointStats = new TreeMap<>();
9594
addStatsByServiceAndTask(inferenceFieldsByIndexServiceAndTask, endpoints, endpointStats);
96-
addTopLevelSemanticTextStatsByTask(inferenceFieldsByIndexServiceAndTask, endpointStats);
9795
addStatsForDefaultModels(inferenceFieldsByIndexServiceAndTask, endpoints, endpointStats);
9896
return new InferenceFeatureSetUsage(endpointStats.values().stream().filter(stats -> stats.count() > 0).toList());
9997
}
@@ -149,13 +147,17 @@ private static void addStatsByServiceAndTask(
149147
endpointStats.get(serviceAndTaskType.toString())
150148
)
151149
);
150+
addTopLevelSemanticTextStatsByTask(inferenceFieldsByIndexServiceAndTask, endpointStats);
152151
}
153152

154153
private static void addTopLevelSemanticTextStatsByTask(
155154
Map<ServiceAndTaskType, Map<String, List<InferenceFieldMetadata>>> inferenceFieldsByIndexServiceAndTask,
156155
Map<String, ModelStats> endpointStats
157156
) {
158-
for (TaskType taskType : Arrays.stream(TaskType.values()).filter(t -> t != TaskType.ANY).toList()) {
157+
for (TaskType taskType : TaskType.values()) {
158+
if (taskType == TaskType.ANY) {
159+
continue;
160+
}
159161
ModelStats allStatsForTaskType = endpointStats.computeIfAbsent(
160162
new ServiceAndTaskType(Metadata.ALL, taskType).toString(),
161163
key -> new ModelStats(Metadata.ALL, taskType)

x-pack/plugin/inference/src/test/java/org/elasticsearch/xpack/inference/action/TransportInferenceUsageActionTests.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ public void close() {
9797
client.threadPool().shutdown();
9898
}
9999

100-
public void testGivenServices_NoSemanticTextFields() throws Exception {
100+
public void testGivenServices_NoInferenceFields() throws Exception {
101101
givenInferenceEndpoints(
102102
new ModelConfigurations("model-001", TaskType.TEXT_EMBEDDING, "openai", mockServiceSettings("model-id-001")),
103103
new ModelConfigurations("model-002", TaskType.TEXT_EMBEDDING, "openai", mockServiceSettings("model-id-002")),
@@ -174,7 +174,7 @@ public void testGivenVariousServicesAndInferenceFields() throws Exception {
174174
assertStats(response, 4, new ModelStats("openai", TaskType.TEXT_EMBEDDING, 2, new SemanticTextStats(6, 2, 2)));
175175
}
176176

177-
public void testGivenServices_SemanticTextFieldsDefaultModels() throws Exception {
177+
public void testGivenServices_InferenceFieldsReferencingDefaultModels() throws Exception {
178178
givenInferenceEndpoints(
179179
new ModelConfigurations(".endpoint-001", TaskType.TEXT_EMBEDDING, "eis", mockServiceSettings(".model-id-001")),
180180
new ModelConfigurations(".endpoint-002", TaskType.SPARSE_EMBEDDING, "eis", mockServiceSettings(".model-id-002")),

x-pack/plugin/src/yamlRestTest/resources/rest-api-spec/test/inference/inference_usage.yml

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
setup:
22
- requires:
33
cluster_features: "inference.semantic_text_usage"
4-
reason: tests added after semantic_text usage was added
4+
reason: semantic text stats added to inference usage
55

66
---
77
"Test usage given default endpoints":
@@ -16,47 +16,47 @@ setup:
1616
- match: { inference.models.0.service: "_all" }
1717
- match: { inference.models.0.task_type: "RERANK" }
1818
- match: { inference.models.0.count: 1 }
19-
- is_false: inference.models.0.semantic_text
19+
- not_exists: inference.models.0.semantic_text
2020

2121
- match: { inference.models.1.service: "_all" }
2222
- match: { inference.models.1.task_type: "SPARSE_EMBEDDING" }
2323
- match: { inference.models.1.count: 1 }
24-
- is_false: inference.models.1.semantic_text
24+
- not_exists: inference.models.1.semantic_text
2525

2626
- match: { inference.models.2.service: "_all" }
2727
- match: { inference.models.2.task_type: "TEXT_EMBEDDING" }
2828
- match: { inference.models.2.count: 1 }
29-
- is_false: inference.models.2.semantic_text
29+
- not_exists: inference.models.2.semantic_text
3030

3131
- match: { inference.models.3.service: "_elasticsearch__elser_model_2" }
3232
- match: { inference.models.3.task_type: "SPARSE_EMBEDDING" }
3333
- match: { inference.models.3.count: 1 }
34-
- is_false: inference.models.3.semantic_text
34+
- not_exists: inference.models.3.semantic_text
3535

3636
- match: { inference.models.4.service: "_elasticsearch__multilingual-e5-small" }
3737
- match: { inference.models.4.task_type: "TEXT_EMBEDDING" }
3838
- match: { inference.models.4.count: 1 }
39-
- is_false: inference.models.4.semantic_text
39+
- not_exists: inference.models.4.semantic_text
4040

4141
- match: { inference.models.5.service: "_elasticsearch__rerank-v1" }
4242
- match: { inference.models.5.task_type: "RERANK" }
4343
- match: { inference.models.5.count: 1 }
44-
- is_false: inference.models.5.semantic_text
44+
- not_exists: inference.models.5.semantic_text
4545

4646
- match: { inference.models.6.service: "elasticsearch" }
4747
- match: { inference.models.6.task_type: "RERANK" }
4848
- match: { inference.models.6.count: 1 }
49-
- is_false: inference.models.6.semantic_text
49+
- not_exists: inference.models.6.semantic_text
5050

5151
- match: { inference.models.7.service: "elasticsearch" }
5252
- match: { inference.models.7.task_type: "SPARSE_EMBEDDING" }
5353
- match: { inference.models.7.count: 1 }
54-
- is_false: inference.models.7.semantic_text
54+
- not_exists: inference.models.7.semantic_text
5555

5656
- match: { inference.models.8.service: "elasticsearch" }
5757
- match: { inference.models.8.task_type: "TEXT_EMBEDDING" }
5858
- match: { inference.models.8.count: 1 }
59-
- is_false: inference.models.8.semantic_text
59+
- not_exists: inference.models.8.semantic_text
6060

6161
---
6262
"Test usage given default endpoints and semantic_text fields":
@@ -91,7 +91,7 @@ setup:
9191
- match: { inference.models.0.service: "_all" }
9292
- match: { inference.models.0.task_type: "RERANK" }
9393
- match: { inference.models.0.count: 1 }
94-
- is_false: inference.models.0.semantic_text
94+
- not_exists: inference.models.0.semantic_text
9595

9696
- match: { inference.models.1.service: "_all" }
9797
- match: { inference.models.1.task_type: "SPARSE_EMBEDDING" }
@@ -124,12 +124,12 @@ setup:
124124
- match: { inference.models.5.service: "_elasticsearch__rerank-v1" }
125125
- match: { inference.models.5.task_type: "RERANK" }
126126
- match: { inference.models.5.count: 1 }
127-
- is_false: inference.models.5.semantic_text
127+
- not_exists: inference.models.5.semantic_text
128128

129129
- match: { inference.models.6.service: "elasticsearch" }
130130
- match: { inference.models.6.task_type: "RERANK" }
131131
- match: { inference.models.6.count: 1 }
132-
- is_false: inference.models.6.semantic_text
132+
- not_exists: inference.models.6.semantic_text
133133

134134
- match: { inference.models.7.service: "elasticsearch" }
135135
- match: { inference.models.7.task_type: "SPARSE_EMBEDDING" }

0 commit comments

Comments
 (0)