Skip to content

Commit ed6cd34

Browse files
committed
[ML] Migrate Alibaba Senders to SenderExecutableAction
Embed, Rerank, and Sparse can move to SenderExecutableAction. Completion is a bit different in that it allows more than one input, so it will stay as-is.
1 parent d966938 commit ed6cd34

File tree

7 files changed

+23
-191
lines changed

7 files changed

+23
-191
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818

1919
import static org.elasticsearch.xpack.inference.external.action.ActionUtils.wrapFailuresInElasticsearchException;
2020

21-
public class SenderExecutableAction implements ExecutableAction {
21+
public sealed class SenderExecutableAction implements ExecutableAction permits SingleInputSenderExecutableAction {
2222

2323
private final Sender sender;
2424
private final RequestManager requestManager;

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818

1919
import java.util.Objects;
2020

21-
public class SingleInputSenderExecutableAction extends SenderExecutableAction {
21+
public final class SingleInputSenderExecutableAction extends SenderExecutableAction {
2222
private final String requestTypeForInputValidationError;
2323

2424
public SingleInputSenderExecutableAction(

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

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,13 @@
88
package org.elasticsearch.xpack.inference.services.alibabacloudsearch.action;
99

1010
import org.elasticsearch.xpack.inference.external.action.ExecutableAction;
11+
import org.elasticsearch.xpack.inference.external.action.SenderExecutableAction;
12+
import org.elasticsearch.xpack.inference.external.http.sender.AlibabaCloudSearchEmbeddingsRequestManager;
13+
import org.elasticsearch.xpack.inference.external.http.sender.AlibabaCloudSearchRerankRequestManager;
14+
import org.elasticsearch.xpack.inference.external.http.sender.AlibabaCloudSearchSparseRequestManager;
1115
import org.elasticsearch.xpack.inference.external.http.sender.Sender;
1216
import org.elasticsearch.xpack.inference.services.ServiceComponents;
17+
import org.elasticsearch.xpack.inference.services.alibabacloudsearch.AlibabaCloudSearchAccount;
1318
import org.elasticsearch.xpack.inference.services.alibabacloudsearch.completion.AlibabaCloudSearchCompletionModel;
1419
import org.elasticsearch.xpack.inference.services.alibabacloudsearch.embeddings.AlibabaCloudSearchEmbeddingsModel;
1520
import org.elasticsearch.xpack.inference.services.alibabacloudsearch.rerank.AlibabaCloudSearchRerankModel;
@@ -18,6 +23,8 @@
1823
import java.util.Map;
1924
import java.util.Objects;
2025

26+
import static org.elasticsearch.xpack.inference.external.action.ActionUtils.constructFailedToSendRequestMessage;
27+
2128
/**
2229
* Provides a way to construct an {@link ExecutableAction} using the visitor pattern based on the alibaba cloud search model type.
2330
*/
@@ -34,21 +41,29 @@ public AlibabaCloudSearchActionCreator(Sender sender, ServiceComponents serviceC
3441
public ExecutableAction create(AlibabaCloudSearchEmbeddingsModel model, Map<String, Object> taskSettings) {
3542
var overriddenModel = AlibabaCloudSearchEmbeddingsModel.of(model, taskSettings);
3643

37-
return new AlibabaCloudSearchEmbeddingsAction(sender, overriddenModel, serviceComponents);
44+
var account = new AlibabaCloudSearchAccount(overriddenModel.getSecretSettings().apiKey());
45+
var failedToSendRequestErrorMessage = constructFailedToSendRequestMessage("AlibabaCloud Search text embeddings");
46+
var requestCreator = AlibabaCloudSearchEmbeddingsRequestManager.of(account, overriddenModel, serviceComponents.threadPool());
47+
return new SenderExecutableAction(sender, requestCreator, failedToSendRequestErrorMessage);
3848
}
3949

4050
@Override
4151
public ExecutableAction create(AlibabaCloudSearchSparseModel model, Map<String, Object> taskSettings) {
4252
var overriddenModel = AlibabaCloudSearchSparseModel.of(model, taskSettings);
43-
44-
return new AlibabaCloudSearchSparseAction(sender, overriddenModel, serviceComponents);
53+
var account = new AlibabaCloudSearchAccount(overriddenModel.getSecretSettings().apiKey());
54+
var failedToSendRequestErrorMessage = constructFailedToSendRequestMessage("AlibabaCloud Search sparse embeddings");
55+
var requestCreator = AlibabaCloudSearchSparseRequestManager.of(account, overriddenModel, serviceComponents.threadPool());
56+
return new SenderExecutableAction(sender, requestCreator, failedToSendRequestErrorMessage);
4557
}
4658

4759
@Override
4860
public ExecutableAction create(AlibabaCloudSearchRerankModel model, Map<String, Object> taskSettings) {
4961
var overriddenModel = AlibabaCloudSearchRerankModel.of(model, taskSettings);
5062

51-
return new AlibabaCloudSearchRerankAction(sender, overriddenModel, serviceComponents);
63+
var account = new AlibabaCloudSearchAccount(overriddenModel.getSecretSettings().apiKey());
64+
var failedToSendRequestErrorMessage = constructFailedToSendRequestMessage("AlibabaCloud Search rerank");
65+
var requestCreator = AlibabaCloudSearchRerankRequestManager.of(account, overriddenModel, serviceComponents.threadPool());
66+
return new SenderExecutableAction(sender, requestCreator, failedToSendRequestErrorMessage);
5267
}
5368

5469
@Override

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

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@
77

88
package org.elasticsearch.xpack.inference.services.alibabacloudsearch.action;
99

10-
import org.apache.logging.log4j.LogManager;
11-
import org.apache.logging.log4j.Logger;
1210
import org.elasticsearch.ElasticsearchException;
1311
import org.elasticsearch.ElasticsearchStatusException;
1412
import org.elasticsearch.action.ActionListener;
@@ -30,16 +28,14 @@
3028
import static org.elasticsearch.xpack.inference.external.action.ActionUtils.createInternalServerError;
3129
import static org.elasticsearch.xpack.inference.external.action.ActionUtils.wrapFailuresInElasticsearchException;
3230

33-
public class AlibabaCloudSearchCompletionAction implements ExecutableAction {
34-
private static final Logger logger = LogManager.getLogger(AlibabaCloudSearchCompletionAction.class);
35-
31+
final class AlibabaCloudSearchCompletionAction implements ExecutableAction {
3632
private final AlibabaCloudSearchAccount account;
3733
private final AlibabaCloudSearchCompletionModel model;
3834
private final String failedToSendRequestErrorMessage;
3935
private final Sender sender;
4036
private final AlibabaCloudSearchCompletionRequestManager requestCreator;
4137

42-
public AlibabaCloudSearchCompletionAction(Sender sender, AlibabaCloudSearchCompletionModel model, ServiceComponents serviceComponents) {
38+
AlibabaCloudSearchCompletionAction(Sender sender, AlibabaCloudSearchCompletionModel model, ServiceComponents serviceComponents) {
4339
this.model = Objects.requireNonNull(model);
4440
this.sender = Objects.requireNonNull(sender);
4541
this.account = new AlibabaCloudSearchAccount(this.model.getSecretSettings().apiKey());

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

Lines changed: 0 additions & 57 deletions
This file was deleted.

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

Lines changed: 0 additions & 61 deletions
This file was deleted.

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

Lines changed: 0 additions & 61 deletions
This file was deleted.

0 commit comments

Comments
 (0)