Skip to content

Commit bb1f2b2

Browse files
committed
improve
1 parent b6b6da5 commit bb1f2b2

File tree

7 files changed

+32
-73
lines changed

7 files changed

+32
-73
lines changed

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

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,6 @@
2828
import static org.elasticsearch.xpack.inference.external.action.ActionUtils.wrapFailuresInElasticsearchException;
2929

3030
public class AlibabaCloudSearchEmbeddingsAction implements ExecutableAction {
31-
private static final Logger logger = LogManager.getLogger(AlibabaCloudSearchEmbeddingsAction.class);
32-
3331
private final AlibabaCloudSearchAccount account;
3432
private final AlibabaCloudSearchEmbeddingsModel model;
3533
private final String failedToSendRequestErrorMessage;

x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/external/request/alibabacloudsearch/AlibabaCloudSearchEmbeddingsRequestEntity.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,10 @@ public record AlibabaCloudSearchEmbeddingsRequestEntity(
4141
public XContentBuilder toXContent(XContentBuilder builder, Params params) throws IOException {
4242
builder.startObject();
4343
builder.field(TEXTS_FIELD, input);
44-
if (taskSettings.getInputType() != null) {
45-
builder.field(INPUT_TYPE_FIELD, covertToString(taskSettings.getInputType()));
44+
45+
String inputType = covertToString(taskSettings.getInputType());
46+
if (inputType != null) {
47+
builder.field(INPUT_TYPE_FIELD, inputType);
4648
}
4749

4850
builder.endObject();
@@ -51,6 +53,10 @@ public XContentBuilder toXContent(XContentBuilder builder, Params params) throws
5153

5254
// default for testing
5355
static String covertToString(InputType inputType) {
56+
if(inputType == null) {
57+
return null;
58+
}
59+
5460
return switch (inputType) {
5561
case INGEST -> SEARCH_DOCUMENT;
5662
case SEARCH -> SEARCH_QUERY;

x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/external/request/alibabacloudsearch/AlibabaCloudSearchSparseRequestEntity.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,9 @@ public record AlibabaCloudSearchSparseRequestEntity(
3636
public XContentBuilder toXContent(XContentBuilder builder, Params params) throws IOException {
3737
builder.startObject();
3838
builder.field(TEXTS_FIELD, input);
39-
if (taskSettings.getInputType() != null) {
40-
builder.field(INPUT_TYPE_FIELD, AlibabaCloudSearchEmbeddingsRequestEntity.covertToString(taskSettings.getInputType()));
39+
String inputType = AlibabaCloudSearchEmbeddingsRequestEntity.covertToString(taskSettings.getInputType());
40+
if (inputType != null) {
41+
builder.field(INPUT_TYPE_FIELD, inputType);
4142
}
4243
if (taskSettings.isReturnToken() != null) {
4344
builder.field(RETURN_TOKEN_FIELD, taskSettings.isReturnToken());

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

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import java.net.URI;
2727
import java.util.Map;
2828
import java.util.Objects;
29+
import java.util.Set;
2930

3031
import static org.elasticsearch.xpack.inference.services.ServiceFields.DIMENSIONS;
3132
import static org.elasticsearch.xpack.inference.services.ServiceFields.MAX_INPUT_TOKENS;
@@ -49,8 +50,7 @@ public class AlibabaCloudSearchServiceSettings extends FilteredXContentObject
4950
public static final String WORKSPACE_NAME = "workspace";
5051
public static final String HTTP_SCHEMA_NAME = "http_schema";
5152

52-
// todo: 确认开放搜索平台的ratelimt
53-
private static final RateLimitSettings DEFAULT_RATE_LIMIT_SETTINGS = new RateLimitSettings(10_000);
53+
private static final RateLimitSettings DEFAULT_RATE_LIMIT_SETTINGS = new RateLimitSettings(1_000);
5454

5555
public static AlibabaCloudSearchServiceSettings fromMap(Map<String, Object> map, ConfigurationParseContext context) {
5656
ValidationException validationException = new ValidationException();
@@ -66,6 +66,13 @@ public static AlibabaCloudSearchServiceSettings fromMap(Map<String, Object> map,
6666
var workspaceName = extractRequiredString(map, WORKSPACE_NAME, ModelConfigurations.SERVICE_SETTINGS, validationException);
6767
var httpSchema = extractOptionalString(map, HTTP_SCHEMA_NAME, ModelConfigurations.SERVICE_SETTINGS, validationException);
6868

69+
if (httpSchema != null) {
70+
var validSchemas = Set.of("https", "http");
71+
if (validSchemas.contains(httpSchema) == false) {
72+
validationException.addValidationError("Invalid value for [http_schema]. Must be one of [https, http]");
73+
}
74+
}
75+
6976
RateLimitSettings rateLimitSettings = RateLimitSettings.of(
7077
map,
7178
DEFAULT_RATE_LIMIT_SETTINGS,

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

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,7 @@ public class AlibabaCloudSearchEmbeddingsTaskSettings implements TaskSettings {
4343
static final String INPUT_TYPE = "input_type";
4444
static final EnumSet<InputType> VALID_REQUEST_VALUES = EnumSet.of(
4545
InputType.INGEST,
46-
InputType.SEARCH,
47-
InputType.CLASSIFICATION,
48-
InputType.CLUSTERING
46+
InputType.SEARCH
4947
);
5048

5149
public static AlibabaCloudSearchEmbeddingsTaskSettings fromMap(Map<String, Object> map) {

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

Lines changed: 10 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -35,78 +35,49 @@
3535
*/
3636
public class AlibabaCloudSearchRerankTaskSettings implements TaskSettings {
3737
public static final String NAME = "alibabacloud_search_rerank_task_settings";
38-
public static final String RETURN_DOCUMENTS = "return_documents";
39-
public static final String TOP_N_DOCS_ONLY = "top_n";
4038

41-
static final AlibabaCloudSearchRerankTaskSettings EMPTY_SETTINGS = new AlibabaCloudSearchRerankTaskSettings(null, null);
39+
static final AlibabaCloudSearchRerankTaskSettings EMPTY_SETTINGS = new AlibabaCloudSearchRerankTaskSettings();
4240

4341
public static AlibabaCloudSearchRerankTaskSettings fromMap(Map<String, Object> map) {
4442
ValidationException validationException = new ValidationException();
4543

4644
if (map == null || map.isEmpty()) {
4745
return EMPTY_SETTINGS;
4846
}
49-
Boolean returnDocuments = extractOptionalBoolean(map, RETURN_DOCUMENTS, validationException);
50-
Integer topNDocumentsOnly = extractOptionalPositiveInteger(
51-
map,
52-
TOP_N_DOCS_ONLY,
53-
ModelConfigurations.TASK_SETTINGS,
54-
validationException
55-
);
5647

5748
if (validationException.validationErrors().isEmpty() == false) {
5849
throw validationException;
5950
}
6051

61-
return of(topNDocumentsOnly, returnDocuments);
52+
return of();
6253
}
6354

6455
/**
6556
* Creates a new {@link AlibabaCloudSearchRerankTaskSettings}
6657
* by preferring non-null fields from the request settings over the original settings.
67-
* @param originalSettings the settings stored as part of the inference entity configuration
68-
* @param requestTaskSettings the settings passed in within the task_settings field of the request
6958
* @return a constructed {@link AlibabaCloudSearchRerankTaskSettings}
7059
*/
7160
public static AlibabaCloudSearchRerankTaskSettings of(
7261
AlibabaCloudSearchRerankTaskSettings originalSettings,
7362
AlibabaCloudSearchRerankTaskSettings requestTaskSettings
7463
) {
75-
return new AlibabaCloudSearchRerankTaskSettings(
76-
requestTaskSettings.getTopNDocumentsOnly() != null
77-
? requestTaskSettings.getTopNDocumentsOnly()
78-
: originalSettings.getTopNDocumentsOnly(),
79-
requestTaskSettings.getReturnDocuments() != null
80-
? requestTaskSettings.getReturnDocuments()
81-
: originalSettings.getReturnDocuments()
82-
);
64+
return new AlibabaCloudSearchRerankTaskSettings();
8365
}
8466

85-
public static AlibabaCloudSearchRerankTaskSettings of(Integer topNDocumentsOnly, Boolean returnDocuments) {
86-
return new AlibabaCloudSearchRerankTaskSettings(topNDocumentsOnly, returnDocuments);
67+
public static AlibabaCloudSearchRerankTaskSettings of() {
68+
return new AlibabaCloudSearchRerankTaskSettings();
8769
}
8870

89-
private final Integer topNDocumentsOnly;
90-
private final Boolean returnDocuments;
91-
92-
public AlibabaCloudSearchRerankTaskSettings(StreamInput in) throws IOException {
93-
this(in.readOptionalVInt(), in.readOptionalBoolean());
71+
public AlibabaCloudSearchRerankTaskSettings(StreamInput in) {
72+
this();
9473
}
9574

96-
public AlibabaCloudSearchRerankTaskSettings(@Nullable Integer topNDocumentsOnly, @Nullable Boolean returnDocuments) {
97-
this.topNDocumentsOnly = topNDocumentsOnly;
98-
this.returnDocuments = returnDocuments;
75+
public AlibabaCloudSearchRerankTaskSettings() {
9976
}
10077

10178
@Override
10279
public XContentBuilder toXContent(XContentBuilder builder, Params params) throws IOException {
10380
builder.startObject();
104-
if (topNDocumentsOnly != null) {
105-
builder.field(TOP_N_DOCS_ONLY, topNDocumentsOnly);
106-
}
107-
if (returnDocuments != null) {
108-
builder.field(RETURN_DOCUMENTS, returnDocuments);
109-
}
11081
builder.endObject();
11182
return builder;
11283
}
@@ -123,37 +94,17 @@ public TransportVersion getMinimalSupportedVersion() {
12394

12495
@Override
12596
public void writeTo(StreamOutput out) throws IOException {
126-
out.writeOptionalInt(topNDocumentsOnly);
127-
out.writeOptionalBoolean(returnDocuments);
12897
}
12998

13099
@Override
131100
public boolean equals(Object o) {
132101
if (this == o) return true;
133102
if (o == null || getClass() != o.getClass()) return false;
134-
AlibabaCloudSearchRerankTaskSettings that = (AlibabaCloudSearchRerankTaskSettings) o;
135-
return Objects.equals(returnDocuments, that.returnDocuments) && Objects.equals(topNDocumentsOnly, that.topNDocumentsOnly);
103+
return true;
136104
}
137105

138106
@Override
139107
public int hashCode() {
140-
return Objects.hash(returnDocuments, topNDocumentsOnly);
141-
}
142-
143-
public static String invalidInputTypeMessage(InputType inputType) {
144-
return Strings.format("received invalid input type value [%s]", inputType.toString());
145-
}
146-
147-
// todo : understand this
148-
public Boolean getDoesReturnDocuments() {
149-
return returnDocuments;
150-
}
151-
152-
public Integer getTopNDocumentsOnly() {
153-
return topNDocumentsOnly;
154-
}
155-
156-
public Boolean getReturnDocuments() {
157-
return returnDocuments;
108+
return Objects.hash();
158109
}
159110
}

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

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,7 @@ public class AlibabaCloudSearchSparseTaskSettings implements TaskSettings {
4343
static final String RETURN_TOKEN = "return_token";
4444
static final EnumSet<InputType> VALID_REQUEST_VALUES = EnumSet.of(
4545
InputType.INGEST,
46-
InputType.SEARCH,
47-
InputType.CLASSIFICATION,
48-
InputType.CLUSTERING
46+
InputType.SEARCH
4947
);
5048

5149
public static AlibabaCloudSearchSparseTaskSettings fromMap(Map<String, Object> map) {

0 commit comments

Comments
 (0)