Skip to content

Commit 3eedc36

Browse files
committed
move similarity, dims, maxInputTokens to AlibabaCloudSearchEmbeddingsServiceSettings
1 parent 297a5c7 commit 3eedc36

File tree

6 files changed

+78
-167
lines changed

6 files changed

+78
-167
lines changed

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -270,15 +270,15 @@ private AlibabaCloudSearchEmbeddingsModel updateModelWithEmbeddingDetails(Alibab
270270
AlibabaCloudSearchEmbeddingsServiceSettings serviceSettings = new AlibabaCloudSearchEmbeddingsServiceSettings(
271271
new AlibabaCloudSearchServiceSettings(
272272
model.getServiceSettings().getCommonSettings().getUri(),
273-
SimilarityMeasure.DOT_PRODUCT,
274-
embeddingSize,
275-
model.getServiceSettings().getCommonSettings().getMaxInputTokens(),
276273
model.getServiceSettings().getCommonSettings().modelId(),
277274
model.getServiceSettings().getCommonSettings().getHost(),
278275
model.getServiceSettings().getCommonSettings().getWorkspaceName(),
279276
model.getServiceSettings().getCommonSettings().getHttpSchema(),
280277
model.getServiceSettings().getCommonSettings().rateLimitSettings()
281-
)
278+
),
279+
SimilarityMeasure.DOT_PRODUCT,
280+
embeddingSize,
281+
model.getServiceSettings().getMaxInputTokens()
282282
);
283283

284284
return new AlibabaCloudSearchEmbeddingsModel(model, serviceSettings);

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

Lines changed: 2 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
import org.elasticsearch.core.Nullable;
1616
import org.elasticsearch.inference.ModelConfigurations;
1717
import org.elasticsearch.inference.ServiceSettings;
18-
import org.elasticsearch.inference.SimilarityMeasure;
1918
import org.elasticsearch.xcontent.ToXContentObject;
2019
import org.elasticsearch.xcontent.XContentBuilder;
2120
import org.elasticsearch.xpack.inference.services.ConfigurationParseContext;
@@ -28,16 +27,11 @@
2827
import java.util.Objects;
2928
import java.util.Set;
3029

31-
import static org.elasticsearch.xpack.inference.services.ServiceFields.DIMENSIONS;
32-
import static org.elasticsearch.xpack.inference.services.ServiceFields.MAX_INPUT_TOKENS;
33-
import static org.elasticsearch.xpack.inference.services.ServiceFields.SIMILARITY;
3430
import static org.elasticsearch.xpack.inference.services.ServiceFields.URL;
3531
import static org.elasticsearch.xpack.inference.services.ServiceUtils.convertToUri;
3632
import static org.elasticsearch.xpack.inference.services.ServiceUtils.createOptionalUri;
3733
import static org.elasticsearch.xpack.inference.services.ServiceUtils.extractOptionalString;
3834
import static org.elasticsearch.xpack.inference.services.ServiceUtils.extractRequiredString;
39-
import static org.elasticsearch.xpack.inference.services.ServiceUtils.extractSimilarity;
40-
import static org.elasticsearch.xpack.inference.services.ServiceUtils.removeAsType;
4135

4236
public class AlibabaCloudSearchServiceSettings extends FilteredXContentObject
4337
implements
@@ -57,9 +51,6 @@ public static AlibabaCloudSearchServiceSettings fromMap(Map<String, Object> map,
5751

5852
String url = extractOptionalString(map, URL, ModelConfigurations.SERVICE_SETTINGS, validationException);
5953

60-
SimilarityMeasure similarity = extractSimilarity(map, ModelConfigurations.SERVICE_SETTINGS, validationException);
61-
Integer dims = removeAsType(map, DIMENSIONS, Integer.class);
62-
Integer maxInputTokens = removeAsType(map, MAX_INPUT_TOKENS, Integer.class);
6354
URI uri = convertToUri(url, URL, ModelConfigurations.SERVICE_SETTINGS, validationException);
6455
String modelId = extractRequiredString(map, MODEL_ID, ModelConfigurations.SERVICE_SETTINGS, validationException);
6556
String host = extractRequiredString(map, HOST, ModelConfigurations.SERVICE_SETTINGS, validationException);
@@ -85,23 +76,10 @@ public static AlibabaCloudSearchServiceSettings fromMap(Map<String, Object> map,
8576
throw validationException;
8677
}
8778

88-
return new AlibabaCloudSearchServiceSettings(
89-
uri,
90-
similarity,
91-
dims,
92-
maxInputTokens,
93-
modelId,
94-
host,
95-
workspaceName,
96-
httpSchema,
97-
rateLimitSettings
98-
);
79+
return new AlibabaCloudSearchServiceSettings(uri, modelId, host, workspaceName, httpSchema, rateLimitSettings);
9980
}
10081

10182
private final URI uri;
102-
private final SimilarityMeasure similarity;
103-
private final Integer dimensions;
104-
private final Integer maxInputTokens;
10583
private final String modelId;
10684
private final String host;
10785
private final String workspaceName;
@@ -110,19 +88,13 @@ public static AlibabaCloudSearchServiceSettings fromMap(Map<String, Object> map,
11088

11189
public AlibabaCloudSearchServiceSettings(
11290
@Nullable URI uri,
113-
@Nullable SimilarityMeasure similarity,
114-
@Nullable Integer dimensions,
115-
@Nullable Integer maxInputTokens,
11691
String modelId,
11792
String host,
11893
String workspaceName,
11994
@Nullable String httpSchema,
12095
@Nullable RateLimitSettings rateLimitSettings
12196
) {
12297
this.uri = uri;
123-
this.similarity = similarity;
124-
this.dimensions = dimensions;
125-
this.maxInputTokens = maxInputTokens;
12698
this.modelId = modelId;
12799
this.host = host;
128100
this.workspaceName = workspaceName;
@@ -132,9 +104,6 @@ public AlibabaCloudSearchServiceSettings(
132104

133105
public AlibabaCloudSearchServiceSettings(StreamInput in) throws IOException {
134106
uri = createOptionalUri(in.readOptionalString());
135-
similarity = in.readOptionalEnum(SimilarityMeasure.class);
136-
dimensions = in.readOptionalVInt();
137-
maxInputTokens = in.readOptionalVInt();
138107
modelId = in.readString();
139108
host = in.readString();
140109
workspaceName = in.readString();
@@ -146,18 +115,6 @@ public URI getUri() {
146115
return uri;
147116
}
148117

149-
public SimilarityMeasure getSimilarity() {
150-
return similarity;
151-
}
152-
153-
public Integer getDimensions() {
154-
return dimensions;
155-
}
156-
157-
public Integer getMaxInputTokens() {
158-
return maxInputTokens;
159-
}
160-
161118
@Override
162119
public String modelId() {
163120
return modelId;
@@ -204,15 +161,6 @@ public XContentBuilder toXContentFragmentOfExposedFields(XContentBuilder builder
204161
if (uri != null) {
205162
builder.field(URL, uri.toString());
206163
}
207-
if (similarity != null) {
208-
builder.field(SIMILARITY, similarity);
209-
}
210-
if (dimensions != null) {
211-
builder.field(DIMENSIONS, dimensions);
212-
}
213-
if (maxInputTokens != null) {
214-
builder.field(MAX_INPUT_TOKENS, maxInputTokens);
215-
}
216164
if (modelId != null) {
217165
builder.field(MODEL_ID, modelId);
218166
}
@@ -240,9 +188,6 @@ public TransportVersion getMinimalSupportedVersion() {
240188
public void writeTo(StreamOutput out) throws IOException {
241189
var uriToWrite = uri != null ? uri.toString() : null;
242190
out.writeOptionalString(uriToWrite);
243-
out.writeOptionalEnum(similarity);
244-
out.writeOptionalVInt(dimensions);
245-
out.writeOptionalVInt(maxInputTokens);
246191
out.writeString(modelId);
247192
out.writeString(host);
248193
out.writeString(workspaceName);
@@ -256,9 +201,6 @@ public boolean equals(Object o) {
256201
if (o == null || getClass() != o.getClass()) return false;
257202
AlibabaCloudSearchServiceSettings that = (AlibabaCloudSearchServiceSettings) o;
258203
return Objects.equals(uri, that.uri)
259-
&& Objects.equals(similarity, that.similarity)
260-
&& Objects.equals(dimensions, that.dimensions)
261-
&& Objects.equals(maxInputTokens, that.maxInputTokens)
262204
&& Objects.equals(modelId, that.modelId)
263205
&& Objects.equals(host, that.host)
264206
&& Objects.equals(workspaceName, that.workspaceName)
@@ -267,6 +209,6 @@ public boolean equals(Object o) {
267209

268210
@Override
269211
public int hashCode() {
270-
return Objects.hash(uri, similarity, dimensions, maxInputTokens, modelId, host, workspaceName, httpSchema);
212+
return Objects.hash(uri, modelId, host, workspaceName, httpSchema);
271213
}
272214
}

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

Lines changed: 59 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,10 @@
1212
import org.elasticsearch.common.ValidationException;
1313
import org.elasticsearch.common.io.stream.StreamInput;
1414
import org.elasticsearch.common.io.stream.StreamOutput;
15+
import org.elasticsearch.core.Nullable;
16+
import org.elasticsearch.inference.ModelConfigurations;
1517
import org.elasticsearch.inference.ServiceSettings;
18+
import org.elasticsearch.inference.SimilarityMeasure;
1619
import org.elasticsearch.xcontent.ToXContentObject;
1720
import org.elasticsearch.xcontent.XContentBuilder;
1821
import org.elasticsearch.xpack.inference.services.ConfigurationParseContext;
@@ -22,34 +25,70 @@
2225
import java.util.Map;
2326
import java.util.Objects;
2427

28+
import static org.elasticsearch.xpack.inference.services.ServiceFields.DIMENSIONS;
29+
import static org.elasticsearch.xpack.inference.services.ServiceFields.MAX_INPUT_TOKENS;
30+
import static org.elasticsearch.xpack.inference.services.ServiceFields.SIMILARITY;
31+
import static org.elasticsearch.xpack.inference.services.ServiceUtils.extractSimilarity;
32+
import static org.elasticsearch.xpack.inference.services.ServiceUtils.removeAsType;
33+
2534
public class AlibabaCloudSearchEmbeddingsServiceSettings implements ServiceSettings {
2635
public static final String NAME = "alibabacloud_search_embeddings_service_settings";
2736

2837
public static AlibabaCloudSearchEmbeddingsServiceSettings fromMap(Map<String, Object> map, ConfigurationParseContext context) {
2938
ValidationException validationException = new ValidationException();
3039
var commonServiceSettings = AlibabaCloudSearchServiceSettings.fromMap(map, context);
3140

41+
SimilarityMeasure similarity = extractSimilarity(map, ModelConfigurations.SERVICE_SETTINGS, validationException);
42+
Integer dims = removeAsType(map, DIMENSIONS, Integer.class);
43+
Integer maxInputTokens = removeAsType(map, MAX_INPUT_TOKENS, Integer.class);
44+
3245
if (validationException.validationErrors().isEmpty() == false) {
3346
throw validationException;
3447
}
3548

36-
return new AlibabaCloudSearchEmbeddingsServiceSettings(commonServiceSettings);
49+
return new AlibabaCloudSearchEmbeddingsServiceSettings(commonServiceSettings, similarity, dims, maxInputTokens);
3750
}
3851

3952
private final AlibabaCloudSearchServiceSettings commonSettings;
40-
41-
public AlibabaCloudSearchEmbeddingsServiceSettings(AlibabaCloudSearchServiceSettings commonSettings) {
53+
private final SimilarityMeasure similarity;
54+
private final Integer dimensions;
55+
private final Integer maxInputTokens;
56+
57+
public AlibabaCloudSearchEmbeddingsServiceSettings(
58+
AlibabaCloudSearchServiceSettings commonSettings,
59+
@Nullable SimilarityMeasure similarity,
60+
@Nullable Integer dimensions,
61+
@Nullable Integer maxInputTokens
62+
) {
4263
this.commonSettings = commonSettings;
64+
this.similarity = similarity;
65+
this.dimensions = dimensions;
66+
this.maxInputTokens = maxInputTokens;
4367
}
4468

4569
public AlibabaCloudSearchEmbeddingsServiceSettings(StreamInput in) throws IOException {
4670
commonSettings = new AlibabaCloudSearchServiceSettings(in);
71+
similarity = in.readOptionalEnum(SimilarityMeasure.class);
72+
dimensions = in.readOptionalVInt();
73+
maxInputTokens = in.readOptionalVInt();
4774
}
4875

4976
public AlibabaCloudSearchServiceSettings getCommonSettings() {
5077
return commonSettings;
5178
}
5279

80+
public SimilarityMeasure getSimilarity() {
81+
return similarity;
82+
}
83+
84+
public Integer getDimensions() {
85+
return dimensions;
86+
}
87+
88+
public Integer getMaxInputTokens() {
89+
return maxInputTokens;
90+
}
91+
5392
@Override
5493
public String modelId() {
5594
return commonSettings.modelId();
@@ -64,6 +103,15 @@ public String getWriteableName() {
64103
public XContentBuilder toXContent(XContentBuilder builder, Params params) throws IOException {
65104
builder.startObject();
66105
commonSettings.toXContentFragment(builder, params);
106+
if (similarity != null) {
107+
builder.field(SIMILARITY, similarity);
108+
}
109+
if (dimensions != null) {
110+
builder.field(DIMENSIONS, dimensions);
111+
}
112+
if (maxInputTokens != null) {
113+
builder.field(MAX_INPUT_TOKENS, maxInputTokens);
114+
}
67115
builder.endObject();
68116
return builder;
69117
}
@@ -81,18 +129,24 @@ public TransportVersion getMinimalSupportedVersion() {
81129
@Override
82130
public void writeTo(StreamOutput out) throws IOException {
83131
commonSettings.writeTo(out);
132+
out.writeOptionalEnum(similarity);
133+
out.writeOptionalVInt(dimensions);
134+
out.writeOptionalVInt(maxInputTokens);
84135
}
85136

86137
@Override
87138
public boolean equals(Object o) {
88139
if (this == o) return true;
89140
if (o == null || getClass() != o.getClass()) return false;
90141
AlibabaCloudSearchEmbeddingsServiceSettings that = (AlibabaCloudSearchEmbeddingsServiceSettings) o;
91-
return Objects.equals(commonSettings, that.commonSettings);
142+
return Objects.equals(commonSettings, that.commonSettings)
143+
&& Objects.equals(similarity, that.similarity)
144+
&& Objects.equals(dimensions, that.dimensions)
145+
&& Objects.equals(maxInputTokens, that.maxInputTokens);
92146
}
93147

94148
@Override
95149
public int hashCode() {
96-
return Objects.hash(commonSettings);
150+
return Objects.hash(commonSettings, similarity, dimensions, maxInputTokens);
97151
}
98152
}

0 commit comments

Comments
 (0)