|
16 | 16 | import org.elasticsearch.common.util.concurrent.EsExecutors; |
17 | 17 | import org.elasticsearch.inference.InferenceServiceRegistry; |
18 | 18 | import org.elasticsearch.inference.Model; |
| 19 | +import org.elasticsearch.inference.ModelConfigurations; |
19 | 20 | import org.elasticsearch.inference.TaskType; |
20 | 21 | import org.elasticsearch.inference.UnparsedModel; |
21 | 22 | import org.elasticsearch.injection.guice.Inject; |
@@ -148,25 +149,32 @@ private void parseModels(List<UnparsedModel> unparsedModels, ActionListener<GetI |
148 | 149 | ); |
149 | 150 | } |
150 | 151 |
|
151 | | - var groupedListener = new GroupedActionListener<List<Model>>( |
152 | | - parsedModelsByService.entrySet().size(), |
153 | | - listener.delegateFailureAndWrap((delegate, listOfListOfModels) -> { |
154 | | - var modifiable = new ArrayList<Model>(); |
155 | | - for (var l : listOfListOfModels) { |
156 | | - modifiable.addAll(l); |
157 | | - } |
158 | | - modifiable.sort(Comparator.comparing(Model::getInferenceEntityId)); |
159 | | - delegate.onResponse( |
160 | | - new GetInferenceModelAction.Response(modifiable.stream().map(Model::getConfigurations).collect(Collectors.toList())) |
161 | | - ); |
162 | | - }) |
163 | | - ); |
164 | | - |
165 | | - for (var entry : parsedModelsByService.entrySet()) { |
166 | | - serviceRegistry.getService(entry.getKey()) |
167 | | - .get() // must be non-null to get this far |
168 | | - .updateModelsWithDynamicFields(entry.getValue(), groupedListener); |
| 152 | + if (parsedModelsByService.isEmpty() == false) { |
| 153 | + var groupedListener = new GroupedActionListener<List<Model>>( |
| 154 | + parsedModelsByService.entrySet().size(), |
| 155 | + listener.delegateFailureAndWrap((delegate, listOfListOfModels) -> { |
| 156 | + var modifiable = new ArrayList<Model>(); |
| 157 | + for (var l : listOfListOfModels) { |
| 158 | + modifiable.addAll(l); |
| 159 | + } |
| 160 | + modifiable.sort(Comparator.comparing(Model::getInferenceEntityId)); |
| 161 | + delegate.onResponse( |
| 162 | + new GetInferenceModelAction.Response( |
| 163 | + modifiable.stream().map(Model::getConfigurations).collect(Collectors.toList()) |
| 164 | + ) |
| 165 | + ); |
| 166 | + }) |
| 167 | + ); |
| 168 | + |
| 169 | + for (var entry : parsedModelsByService.entrySet()) { |
| 170 | + serviceRegistry.getService(entry.getKey()) |
| 171 | + .get() // must be non-null to get this far |
| 172 | + .updateModelsWithDynamicFields(entry.getValue(), groupedListener); |
| 173 | + } |
| 174 | + } else { |
| 175 | + listener.onResponse(new GetInferenceModelAction.Response(new ArrayList<ModelConfigurations>(0))); |
169 | 176 | } |
| 177 | + |
170 | 178 | } catch (Exception e) { |
171 | 179 | listener.onFailure(e); |
172 | 180 | } |
|
0 commit comments