Skip to content

Commit ff59f6e

Browse files
Retain word based chunking strategy as default for endpoints created before 8.16 (#115802) (#115863)
Co-authored-by: Elastic Machine <[email protected]>
1 parent d3916a4 commit ff59f6e

File tree

13 files changed

+44
-21
lines changed

13 files changed

+44
-21
lines changed

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,14 @@
1414

1515
public class ChunkingSettingsBuilder {
1616
public static final SentenceBoundaryChunkingSettings DEFAULT_SETTINGS = new SentenceBoundaryChunkingSettings(250, 1);
17+
// Old settings used for backward compatibility for endpoints created before 8.16 when default was changed
18+
public static final WordBoundaryChunkingSettings OLD_DEFAULT_SETTINGS = new WordBoundaryChunkingSettings(250, 100);
1719

1820
public static ChunkingSettings fromMap(Map<String, Object> settings) {
21+
if (settings == null) {
22+
return OLD_DEFAULT_SETTINGS;
23+
}
24+
1925
if (settings.isEmpty()) {
2026
return DEFAULT_SETTINGS;
2127
}

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@
4848
import static org.elasticsearch.xpack.core.inference.action.InferenceAction.Request.DEFAULT_TIMEOUT;
4949
import static org.elasticsearch.xpack.inference.services.ServiceUtils.createInvalidModelException;
5050
import static org.elasticsearch.xpack.inference.services.ServiceUtils.parsePersistedConfigErrorMsg;
51+
import static org.elasticsearch.xpack.inference.services.ServiceUtils.removeFromMap;
5152
import static org.elasticsearch.xpack.inference.services.ServiceUtils.removeFromMapOrDefaultEmpty;
5253
import static org.elasticsearch.xpack.inference.services.ServiceUtils.removeFromMapOrThrowIfNull;
5354
import static org.elasticsearch.xpack.inference.services.ServiceUtils.throwIfNotEmptyMap;
@@ -191,7 +192,7 @@ public AlibabaCloudSearchModel parsePersistedConfigWithSecrets(
191192

192193
ChunkingSettings chunkingSettings = null;
193194
if (List.of(TaskType.TEXT_EMBEDDING, TaskType.SPARSE_EMBEDDING).contains(taskType)) {
194-
chunkingSettings = ChunkingSettingsBuilder.fromMap(removeFromMapOrDefaultEmpty(config, ModelConfigurations.CHUNKING_SETTINGS));
195+
chunkingSettings = ChunkingSettingsBuilder.fromMap(removeFromMap(config, ModelConfigurations.CHUNKING_SETTINGS));
195196
}
196197

197198
return createModelWithoutLoggingDeprecations(
@@ -212,7 +213,7 @@ public AlibabaCloudSearchModel parsePersistedConfig(String inferenceEntityId, Ta
212213

213214
ChunkingSettings chunkingSettings = null;
214215
if (List.of(TaskType.TEXT_EMBEDDING, TaskType.SPARSE_EMBEDDING).contains(taskType)) {
215-
chunkingSettings = ChunkingSettingsBuilder.fromMap(removeFromMapOrDefaultEmpty(config, ModelConfigurations.CHUNKING_SETTINGS));
216+
chunkingSettings = ChunkingSettingsBuilder.fromMap(removeFromMap(config, ModelConfigurations.CHUNKING_SETTINGS));
216217
}
217218

218219
return createModelWithoutLoggingDeprecations(

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@
4848
import static org.elasticsearch.TransportVersions.ML_INFERENCE_AMAZON_BEDROCK_ADDED;
4949
import static org.elasticsearch.xpack.inference.services.ServiceUtils.createInvalidModelException;
5050
import static org.elasticsearch.xpack.inference.services.ServiceUtils.parsePersistedConfigErrorMsg;
51+
import static org.elasticsearch.xpack.inference.services.ServiceUtils.removeFromMap;
5152
import static org.elasticsearch.xpack.inference.services.ServiceUtils.removeFromMapOrDefaultEmpty;
5253
import static org.elasticsearch.xpack.inference.services.ServiceUtils.removeFromMapOrThrowIfNull;
5354
import static org.elasticsearch.xpack.inference.services.ServiceUtils.throwIfNotEmptyMap;
@@ -176,7 +177,7 @@ public Model parsePersistedConfigWithSecrets(
176177

177178
ChunkingSettings chunkingSettings = null;
178179
if (TaskType.TEXT_EMBEDDING.equals(taskType)) {
179-
chunkingSettings = ChunkingSettingsBuilder.fromMap(removeFromMapOrDefaultEmpty(config, ModelConfigurations.CHUNKING_SETTINGS));
180+
chunkingSettings = ChunkingSettingsBuilder.fromMap(removeFromMap(config, ModelConfigurations.CHUNKING_SETTINGS));
180181
}
181182

182183
return createModel(
@@ -198,7 +199,7 @@ public Model parsePersistedConfig(String modelId, TaskType taskType, Map<String,
198199

199200
ChunkingSettings chunkingSettings = null;
200201
if (TaskType.TEXT_EMBEDDING.equals(taskType)) {
201-
chunkingSettings = ChunkingSettingsBuilder.fromMap(removeFromMapOrDefaultEmpty(config, ModelConfigurations.CHUNKING_SETTINGS));
202+
chunkingSettings = ChunkingSettingsBuilder.fromMap(removeFromMap(config, ModelConfigurations.CHUNKING_SETTINGS));
202203
}
203204

204205
return createModel(

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646

4747
import static org.elasticsearch.xpack.inference.services.ServiceUtils.createInvalidModelException;
4848
import static org.elasticsearch.xpack.inference.services.ServiceUtils.parsePersistedConfigErrorMsg;
49+
import static org.elasticsearch.xpack.inference.services.ServiceUtils.removeFromMap;
4950
import static org.elasticsearch.xpack.inference.services.ServiceUtils.removeFromMapOrDefaultEmpty;
5051
import static org.elasticsearch.xpack.inference.services.ServiceUtils.removeFromMapOrThrowIfNull;
5152
import static org.elasticsearch.xpack.inference.services.ServiceUtils.throwIfNotEmptyMap;
@@ -162,7 +163,7 @@ public AzureAiStudioModel parsePersistedConfigWithSecrets(
162163

163164
ChunkingSettings chunkingSettings = null;
164165
if (TaskType.TEXT_EMBEDDING.equals(taskType)) {
165-
chunkingSettings = ChunkingSettingsBuilder.fromMap(removeFromMapOrDefaultEmpty(config, ModelConfigurations.CHUNKING_SETTINGS));
166+
chunkingSettings = ChunkingSettingsBuilder.fromMap(removeFromMap(config, ModelConfigurations.CHUNKING_SETTINGS));
166167
}
167168

168169
return createModelFromPersistent(
@@ -183,7 +184,7 @@ public Model parsePersistedConfig(String inferenceEntityId, TaskType taskType, M
183184

184185
ChunkingSettings chunkingSettings = null;
185186
if (TaskType.TEXT_EMBEDDING.equals(taskType)) {
186-
chunkingSettings = ChunkingSettingsBuilder.fromMap(removeFromMapOrDefaultEmpty(config, ModelConfigurations.CHUNKING_SETTINGS));
187+
chunkingSettings = ChunkingSettingsBuilder.fromMap(removeFromMap(config, ModelConfigurations.CHUNKING_SETTINGS));
187188
}
188189

189190
return createModelFromPersistent(

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545

4646
import static org.elasticsearch.xpack.inference.services.ServiceUtils.createInvalidModelException;
4747
import static org.elasticsearch.xpack.inference.services.ServiceUtils.parsePersistedConfigErrorMsg;
48+
import static org.elasticsearch.xpack.inference.services.ServiceUtils.removeFromMap;
4849
import static org.elasticsearch.xpack.inference.services.ServiceUtils.removeFromMapOrDefaultEmpty;
4950
import static org.elasticsearch.xpack.inference.services.ServiceUtils.removeFromMapOrThrowIfNull;
5051
import static org.elasticsearch.xpack.inference.services.ServiceUtils.throwIfNotEmptyMap;
@@ -173,7 +174,7 @@ public AzureOpenAiModel parsePersistedConfigWithSecrets(
173174

174175
ChunkingSettings chunkingSettings = null;
175176
if (TaskType.TEXT_EMBEDDING.equals(taskType)) {
176-
chunkingSettings = ChunkingSettingsBuilder.fromMap(removeFromMapOrDefaultEmpty(config, ModelConfigurations.CHUNKING_SETTINGS));
177+
chunkingSettings = ChunkingSettingsBuilder.fromMap(removeFromMap(config, ModelConfigurations.CHUNKING_SETTINGS));
177178
}
178179

179180
return createModelFromPersistent(
@@ -194,7 +195,7 @@ public AzureOpenAiModel parsePersistedConfig(String inferenceEntityId, TaskType
194195

195196
ChunkingSettings chunkingSettings = null;
196197
if (TaskType.TEXT_EMBEDDING.equals(taskType)) {
197-
chunkingSettings = ChunkingSettingsBuilder.fromMap(removeFromMapOrDefaultEmpty(config, ModelConfigurations.CHUNKING_SETTINGS));
198+
chunkingSettings = ChunkingSettingsBuilder.fromMap(removeFromMap(config, ModelConfigurations.CHUNKING_SETTINGS));
198199
}
199200

200201
return createModelFromPersistent(

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545

4646
import static org.elasticsearch.xpack.inference.services.ServiceUtils.createInvalidModelException;
4747
import static org.elasticsearch.xpack.inference.services.ServiceUtils.parsePersistedConfigErrorMsg;
48+
import static org.elasticsearch.xpack.inference.services.ServiceUtils.removeFromMap;
4849
import static org.elasticsearch.xpack.inference.services.ServiceUtils.removeFromMapOrDefaultEmpty;
4950
import static org.elasticsearch.xpack.inference.services.ServiceUtils.removeFromMapOrThrowIfNull;
5051
import static org.elasticsearch.xpack.inference.services.ServiceUtils.throwIfNotEmptyMap;
@@ -175,7 +176,7 @@ public CohereModel parsePersistedConfigWithSecrets(
175176

176177
ChunkingSettings chunkingSettings = null;
177178
if (TaskType.TEXT_EMBEDDING.equals(taskType)) {
178-
chunkingSettings = ChunkingSettingsBuilder.fromMap(removeFromMapOrDefaultEmpty(config, ModelConfigurations.CHUNKING_SETTINGS));
179+
chunkingSettings = ChunkingSettingsBuilder.fromMap(removeFromMap(config, ModelConfigurations.CHUNKING_SETTINGS));
179180
}
180181

181182
return createModelWithoutLoggingDeprecations(
@@ -196,7 +197,7 @@ public CohereModel parsePersistedConfig(String inferenceEntityId, TaskType taskT
196197

197198
ChunkingSettings chunkingSettings = null;
198199
if (TaskType.TEXT_EMBEDDING.equals(taskType)) {
199-
chunkingSettings = ChunkingSettingsBuilder.fromMap(removeFromMapOrDefaultEmpty(config, ModelConfigurations.CHUNKING_SETTINGS));
200+
chunkingSettings = ChunkingSettingsBuilder.fromMap(removeFromMap(config, ModelConfigurations.CHUNKING_SETTINGS));
200201
}
201202

202203
return createModelWithoutLoggingDeprecations(

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@
6464
import java.util.function.Function;
6565

6666
import static org.elasticsearch.xpack.core.inference.results.ResultUtils.createInvalidChunkedResultException;
67+
import static org.elasticsearch.xpack.inference.services.ServiceUtils.removeFromMap;
6768
import static org.elasticsearch.xpack.inference.services.ServiceUtils.removeFromMapOrDefaultEmpty;
6869
import static org.elasticsearch.xpack.inference.services.ServiceUtils.removeFromMapOrThrowIfNull;
6970
import static org.elasticsearch.xpack.inference.services.ServiceUtils.throwIfNotEmptyMap;
@@ -433,7 +434,7 @@ public Model parsePersistedConfig(String inferenceEntityId, TaskType taskType, M
433434

434435
ChunkingSettings chunkingSettings = null;
435436
if (TaskType.TEXT_EMBEDDING.equals(taskType) || TaskType.SPARSE_EMBEDDING.equals(taskType)) {
436-
chunkingSettings = ChunkingSettingsBuilder.fromMap(removeFromMapOrDefaultEmpty(config, ModelConfigurations.CHUNKING_SETTINGS));
437+
chunkingSettings = ChunkingSettingsBuilder.fromMap(removeFromMap(config, ModelConfigurations.CHUNKING_SETTINGS));
437438
}
438439

439440
String modelId = (String) serviceSettingsMap.get(ElasticsearchInternalServiceSettings.MODEL_ID);

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@
4949
import static org.elasticsearch.xpack.inference.external.action.ActionUtils.constructFailedToSendRequestMessage;
5050
import static org.elasticsearch.xpack.inference.services.ServiceUtils.createInvalidModelException;
5151
import static org.elasticsearch.xpack.inference.services.ServiceUtils.parsePersistedConfigErrorMsg;
52+
import static org.elasticsearch.xpack.inference.services.ServiceUtils.removeFromMap;
5253
import static org.elasticsearch.xpack.inference.services.ServiceUtils.removeFromMapOrDefaultEmpty;
5354
import static org.elasticsearch.xpack.inference.services.ServiceUtils.removeFromMapOrThrowIfNull;
5455
import static org.elasticsearch.xpack.inference.services.ServiceUtils.throwIfNotEmptyMap;
@@ -154,7 +155,7 @@ public GoogleAiStudioModel parsePersistedConfigWithSecrets(
154155

155156
ChunkingSettings chunkingSettings = null;
156157
if (TaskType.TEXT_EMBEDDING.equals(taskType)) {
157-
chunkingSettings = ChunkingSettingsBuilder.fromMap(removeFromMapOrDefaultEmpty(config, ModelConfigurations.CHUNKING_SETTINGS));
158+
chunkingSettings = ChunkingSettingsBuilder.fromMap(removeFromMap(config, ModelConfigurations.CHUNKING_SETTINGS));
158159
}
159160

160161
return createModelFromPersistent(
@@ -196,7 +197,7 @@ public Model parsePersistedConfig(String inferenceEntityId, TaskType taskType, M
196197

197198
ChunkingSettings chunkingSettings = null;
198199
if (TaskType.TEXT_EMBEDDING.equals(taskType)) {
199-
chunkingSettings = ChunkingSettingsBuilder.fromMap(removeFromMapOrDefaultEmpty(config, ModelConfigurations.CHUNKING_SETTINGS));
200+
chunkingSettings = ChunkingSettingsBuilder.fromMap(removeFromMap(config, ModelConfigurations.CHUNKING_SETTINGS));
200201
}
201202

202203
return createModelFromPersistent(

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343

4444
import static org.elasticsearch.xpack.inference.services.ServiceUtils.createInvalidModelException;
4545
import static org.elasticsearch.xpack.inference.services.ServiceUtils.parsePersistedConfigErrorMsg;
46+
import static org.elasticsearch.xpack.inference.services.ServiceUtils.removeFromMap;
4647
import static org.elasticsearch.xpack.inference.services.ServiceUtils.removeFromMapOrDefaultEmpty;
4748
import static org.elasticsearch.xpack.inference.services.ServiceUtils.removeFromMapOrThrowIfNull;
4849
import static org.elasticsearch.xpack.inference.services.ServiceUtils.throwIfNotEmptyMap;
@@ -113,7 +114,7 @@ public Model parsePersistedConfigWithSecrets(
113114

114115
ChunkingSettings chunkingSettings = null;
115116
if (TaskType.TEXT_EMBEDDING.equals(taskType)) {
116-
chunkingSettings = ChunkingSettingsBuilder.fromMap(removeFromMapOrDefaultEmpty(config, ModelConfigurations.CHUNKING_SETTINGS));
117+
chunkingSettings = ChunkingSettingsBuilder.fromMap(removeFromMap(config, ModelConfigurations.CHUNKING_SETTINGS));
117118
}
118119

119120
return createModelFromPersistent(
@@ -134,7 +135,7 @@ public Model parsePersistedConfig(String inferenceEntityId, TaskType taskType, M
134135

135136
ChunkingSettings chunkingSettings = null;
136137
if (TaskType.TEXT_EMBEDDING.equals(taskType)) {
137-
chunkingSettings = ChunkingSettingsBuilder.fromMap(removeFromMapOrDefaultEmpty(config, ModelConfigurations.CHUNKING_SETTINGS));
138+
chunkingSettings = ChunkingSettingsBuilder.fromMap(removeFromMap(config, ModelConfigurations.CHUNKING_SETTINGS));
138139
}
139140

140141
return createModelFromPersistent(

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828

2929
import static org.elasticsearch.xpack.inference.services.ServiceUtils.createInvalidModelException;
3030
import static org.elasticsearch.xpack.inference.services.ServiceUtils.parsePersistedConfigErrorMsg;
31+
import static org.elasticsearch.xpack.inference.services.ServiceUtils.removeFromMap;
3132
import static org.elasticsearch.xpack.inference.services.ServiceUtils.removeFromMapOrDefaultEmpty;
3233
import static org.elasticsearch.xpack.inference.services.ServiceUtils.removeFromMapOrThrowIfNull;
3334
import static org.elasticsearch.xpack.inference.services.ServiceUtils.throwIfNotEmptyMap;
@@ -93,7 +94,7 @@ public HuggingFaceModel parsePersistedConfigWithSecrets(
9394

9495
ChunkingSettings chunkingSettings = null;
9596
if (TaskType.TEXT_EMBEDDING.equals(taskType)) {
96-
chunkingSettings = ChunkingSettingsBuilder.fromMap(removeFromMapOrDefaultEmpty(config, ModelConfigurations.CHUNKING_SETTINGS));
97+
chunkingSettings = ChunkingSettingsBuilder.fromMap(removeFromMap(config, ModelConfigurations.CHUNKING_SETTINGS));
9798
}
9899

99100
return createModel(
@@ -113,7 +114,7 @@ public HuggingFaceModel parsePersistedConfig(String inferenceEntityId, TaskType
113114

114115
ChunkingSettings chunkingSettings = null;
115116
if (TaskType.TEXT_EMBEDDING.equals(taskType)) {
116-
chunkingSettings = ChunkingSettingsBuilder.fromMap(removeFromMapOrDefaultEmpty(config, ModelConfigurations.CHUNKING_SETTINGS));
117+
chunkingSettings = ChunkingSettingsBuilder.fromMap(removeFromMap(config, ModelConfigurations.CHUNKING_SETTINGS));
117118
}
118119

119120
return createModel(

0 commit comments

Comments
 (0)