From c80ff5b78e6427f9aa60459d608249a87ebea775 Mon Sep 17 00:00:00 2001 From: David Kyle Date: Wed, 25 Jun 2025 10:28:48 +0100 Subject: [PATCH 1/2] Apply patch logic --- .../cohere/CohereServiceSettings.java | 4 ++-- .../CohereCompletionServiceSettings.java | 4 ++-- .../rerank/CohereRerankServiceSettings.java | 4 ++-- .../cohere/CohereServiceSettingsTests.java | 24 +++++++++++++++++-- .../CohereCompletionServiceSettingsTests.java | 21 ++++++++++++++-- .../CohereRerankServiceSettingsTests.java | 17 ++++++------- 6 files changed, 56 insertions(+), 18 deletions(-) diff --git a/x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/services/cohere/CohereServiceSettings.java b/x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/services/cohere/CohereServiceSettings.java index 1767653fd1a51..07b81c22c8083 100644 --- a/x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/services/cohere/CohereServiceSettings.java +++ b/x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/services/cohere/CohereServiceSettings.java @@ -183,7 +183,7 @@ public CohereServiceSettings(StreamInput in) throws IOException { rateLimitSettings = DEFAULT_RATE_LIMIT_SETTINGS; } if (in.getTransportVersion().onOrAfter(TransportVersions.ML_INFERENCE_COHERE_API_VERSION) - || in.getTransportVersion().isPatchFrom(TransportVersions.ML_INFERENCE_COHERE_API_VERSION)) { + || in.getTransportVersion().isPatchFrom(TransportVersions.ML_INFERENCE_COHERE_API_VERSION_8_19)) { this.apiVersion = in.readEnum(CohereServiceSettings.CohereApiVersion.class); } else { this.apiVersion = CohereServiceSettings.CohereApiVersion.V1; @@ -286,7 +286,7 @@ public void writeTo(StreamOutput out) throws IOException { rateLimitSettings.writeTo(out); } if (out.getTransportVersion().onOrAfter(TransportVersions.ML_INFERENCE_COHERE_API_VERSION) - || out.getTransportVersion().isPatchFrom(TransportVersions.ML_INFERENCE_COHERE_API_VERSION)) { + || out.getTransportVersion().isPatchFrom(TransportVersions.ML_INFERENCE_COHERE_API_VERSION_8_19)) { out.writeEnum(apiVersion); } } diff --git a/x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/services/cohere/completion/CohereCompletionServiceSettings.java b/x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/services/cohere/completion/CohereCompletionServiceSettings.java index efe58ed19a008..7f8ef305e5db6 100644 --- a/x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/services/cohere/completion/CohereCompletionServiceSettings.java +++ b/x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/services/cohere/completion/CohereCompletionServiceSettings.java @@ -103,7 +103,7 @@ public CohereCompletionServiceSettings(StreamInput in) throws IOException { modelId = in.readOptionalString(); rateLimitSettings = new RateLimitSettings(in); if (in.getTransportVersion().onOrAfter(TransportVersions.ML_INFERENCE_COHERE_API_VERSION) - || in.getTransportVersion().isPatchFrom(TransportVersions.ML_INFERENCE_COHERE_API_VERSION)) { + || in.getTransportVersion().isPatchFrom(TransportVersions.ML_INFERENCE_COHERE_API_VERSION_8_19)) { this.apiVersion = in.readEnum(CohereServiceSettings.CohereApiVersion.class); } else { this.apiVersion = CohereServiceSettings.CohereApiVersion.V1; @@ -156,7 +156,7 @@ public void writeTo(StreamOutput out) throws IOException { out.writeOptionalString(modelId); rateLimitSettings.writeTo(out); if (out.getTransportVersion().onOrAfter(TransportVersions.ML_INFERENCE_COHERE_API_VERSION) - || out.getTransportVersion().isPatchFrom(TransportVersions.ML_INFERENCE_COHERE_API_VERSION)) { + || out.getTransportVersion().isPatchFrom(TransportVersions.ML_INFERENCE_COHERE_API_VERSION_8_19)) { out.writeEnum(apiVersion); } } diff --git a/x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/services/cohere/rerank/CohereRerankServiceSettings.java b/x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/services/cohere/rerank/CohereRerankServiceSettings.java index a17fff7f165cf..651b8758c37f3 100644 --- a/x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/services/cohere/rerank/CohereRerankServiceSettings.java +++ b/x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/services/cohere/rerank/CohereRerankServiceSettings.java @@ -125,7 +125,7 @@ public CohereRerankServiceSettings(StreamInput in) throws IOException { } if (in.getTransportVersion().onOrAfter(TransportVersions.ML_INFERENCE_COHERE_API_VERSION) - || in.getTransportVersion().isPatchFrom(TransportVersions.ML_INFERENCE_COHERE_API_VERSION)) { + || in.getTransportVersion().isPatchFrom(TransportVersions.ML_INFERENCE_COHERE_API_VERSION_8_19)) { this.apiVersion = in.readEnum(CohereServiceSettings.CohereApiVersion.class); } else { this.apiVersion = CohereServiceSettings.CohereApiVersion.V1; @@ -207,7 +207,7 @@ public void writeTo(StreamOutput out) throws IOException { rateLimitSettings.writeTo(out); } if (out.getTransportVersion().onOrAfter(TransportVersions.ML_INFERENCE_COHERE_API_VERSION) - || out.getTransportVersion().isPatchFrom(TransportVersions.ML_INFERENCE_COHERE_API_VERSION)) { + || out.getTransportVersion().isPatchFrom(TransportVersions.ML_INFERENCE_COHERE_API_VERSION_8_19)) { out.writeEnum(apiVersion); } } diff --git a/x-pack/plugin/inference/src/test/java/org/elasticsearch/xpack/inference/services/cohere/CohereServiceSettingsTests.java b/x-pack/plugin/inference/src/test/java/org/elasticsearch/xpack/inference/services/cohere/CohereServiceSettingsTests.java index 0ce016956cda0..04052265efda0 100644 --- a/x-pack/plugin/inference/src/test/java/org/elasticsearch/xpack/inference/services/cohere/CohereServiceSettingsTests.java +++ b/x-pack/plugin/inference/src/test/java/org/elasticsearch/xpack/inference/services/cohere/CohereServiceSettingsTests.java @@ -7,15 +7,17 @@ package org.elasticsearch.xpack.inference.services.cohere; +import org.elasticsearch.TransportVersion; +import org.elasticsearch.TransportVersions; import org.elasticsearch.common.Strings; import org.elasticsearch.common.ValidationException; import org.elasticsearch.common.io.stream.Writeable; import org.elasticsearch.core.Nullable; import org.elasticsearch.inference.SimilarityMeasure; -import org.elasticsearch.test.AbstractWireSerializingTestCase; import org.elasticsearch.xcontent.XContentBuilder; import org.elasticsearch.xcontent.XContentFactory; import org.elasticsearch.xcontent.XContentType; +import org.elasticsearch.xpack.core.ml.AbstractBWCWireSerializationTestCase; import org.elasticsearch.xpack.inference.services.ConfigurationParseContext; import org.elasticsearch.xpack.inference.services.ServiceFields; import org.elasticsearch.xpack.inference.services.ServiceUtils; @@ -30,7 +32,7 @@ import static org.hamcrest.Matchers.containsString; import static org.hamcrest.Matchers.is; -public class CohereServiceSettingsTests extends AbstractWireSerializingTestCase { +public class CohereServiceSettingsTests extends AbstractBWCWireSerializationTestCase { public static CohereServiceSettings createRandomWithNonNullUrl() { return createRandom(randomAlphaOfLength(15)); @@ -359,4 +361,22 @@ public static Map getServiceSettingsMap(@Nullable String url, @N return map; } + + @Override + protected CohereServiceSettings mutateInstanceForVersion(CohereServiceSettings instance, TransportVersion version) { + if (version.before(TransportVersions.ML_INFERENCE_COHERE_API_VERSION) + || (version.isPatchFrom(TransportVersions.ML_INFERENCE_COHERE_API_VERSION_8_19) == false)) { + return new CohereServiceSettings( + instance.uri(), + instance.similarity(), + instance.dimensions(), + instance.maxInputTokens(), + instance.modelId(), + instance.rateLimitSettings(), + CohereServiceSettings.CohereApiVersion.V1 + ); + } + + return instance; + } } diff --git a/x-pack/plugin/inference/src/test/java/org/elasticsearch/xpack/inference/services/cohere/completion/CohereCompletionServiceSettingsTests.java b/x-pack/plugin/inference/src/test/java/org/elasticsearch/xpack/inference/services/cohere/completion/CohereCompletionServiceSettingsTests.java index 06ebdd158b92c..853bd70b4c1c9 100644 --- a/x-pack/plugin/inference/src/test/java/org/elasticsearch/xpack/inference/services/cohere/completion/CohereCompletionServiceSettingsTests.java +++ b/x-pack/plugin/inference/src/test/java/org/elasticsearch/xpack/inference/services/cohere/completion/CohereCompletionServiceSettingsTests.java @@ -7,12 +7,14 @@ package org.elasticsearch.xpack.inference.services.cohere.completion; +import org.elasticsearch.TransportVersion; +import org.elasticsearch.TransportVersions; import org.elasticsearch.common.Strings; import org.elasticsearch.common.io.stream.Writeable; -import org.elasticsearch.test.AbstractWireSerializingTestCase; import org.elasticsearch.xcontent.XContentBuilder; import org.elasticsearch.xcontent.XContentFactory; import org.elasticsearch.xcontent.XContentType; +import org.elasticsearch.xpack.core.ml.AbstractBWCWireSerializationTestCase; import org.elasticsearch.xpack.inference.services.ConfigurationParseContext; import org.elasticsearch.xpack.inference.services.ServiceFields; import org.elasticsearch.xpack.inference.services.cohere.CohereServiceSettings; @@ -25,7 +27,7 @@ import static org.hamcrest.Matchers.is; -public class CohereCompletionServiceSettingsTests extends AbstractWireSerializingTestCase { +public class CohereCompletionServiceSettingsTests extends AbstractBWCWireSerializationTestCase { public static CohereCompletionServiceSettings createRandom() { return new CohereCompletionServiceSettings( @@ -110,4 +112,19 @@ protected CohereCompletionServiceSettings createTestInstance() { protected CohereCompletionServiceSettings mutateInstance(CohereCompletionServiceSettings instance) throws IOException { return randomValueOtherThan(instance, this::createTestInstance); } + + @Override + protected CohereCompletionServiceSettings mutateInstanceForVersion(CohereCompletionServiceSettings instance, TransportVersion version) { + if (version.before(TransportVersions.ML_INFERENCE_COHERE_API_VERSION) + || (version.isPatchFrom(TransportVersions.ML_INFERENCE_COHERE_API_VERSION_8_19) == false)) { + return new CohereCompletionServiceSettings( + instance.uri(), + instance.modelId(), + instance.rateLimitSettings(), + CohereServiceSettings.CohereApiVersion.V1 + ); + } + + return instance; + } } diff --git a/x-pack/plugin/inference/src/test/java/org/elasticsearch/xpack/inference/services/cohere/rerank/CohereRerankServiceSettingsTests.java b/x-pack/plugin/inference/src/test/java/org/elasticsearch/xpack/inference/services/cohere/rerank/CohereRerankServiceSettingsTests.java index 27a9fc38f392c..3977a53b4e95e 100644 --- a/x-pack/plugin/inference/src/test/java/org/elasticsearch/xpack/inference/services/cohere/rerank/CohereRerankServiceSettingsTests.java +++ b/x-pack/plugin/inference/src/test/java/org/elasticsearch/xpack/inference/services/cohere/rerank/CohereRerankServiceSettingsTests.java @@ -88,14 +88,15 @@ protected CohereRerankServiceSettings mutateInstanceForVersion(CohereRerankServi CohereServiceSettings.DEFAULT_RATE_LIMIT_SETTINGS, CohereServiceSettings.CohereApiVersion.V1 ); - } else if (version.before(TransportVersions.ML_INFERENCE_COHERE_API_VERSION)) { - return new CohereRerankServiceSettings( - instance.uri(), - instance.modelId(), - instance.rateLimitSettings(), - CohereServiceSettings.CohereApiVersion.V1 - ); - } + } else if (version.before(TransportVersions.ML_INFERENCE_COHERE_API_VERSION) + || version.isPatchFrom(TransportVersions.ML_INFERENCE_COHERE_API_VERSION_8_19)) { + return new CohereRerankServiceSettings( + instance.uri(), + instance.modelId(), + instance.rateLimitSettings(), + CohereServiceSettings.CohereApiVersion.V1 + ); + } return instance; } From 656dc0ace196f5ae1a606312bca63f76eedb9e7c Mon Sep 17 00:00:00 2001 From: David Kyle Date: Wed, 25 Jun 2025 12:13:10 +0100 Subject: [PATCH 2/2] Fix test logic --- .../inference/services/cohere/CohereServiceSettingsTests.java | 2 +- .../cohere/completion/CohereCompletionServiceSettingsTests.java | 2 +- .../cohere/rerank/CohereRerankServiceSettingsTests.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/x-pack/plugin/inference/src/test/java/org/elasticsearch/xpack/inference/services/cohere/CohereServiceSettingsTests.java b/x-pack/plugin/inference/src/test/java/org/elasticsearch/xpack/inference/services/cohere/CohereServiceSettingsTests.java index 04052265efda0..cac416fd454a8 100644 --- a/x-pack/plugin/inference/src/test/java/org/elasticsearch/xpack/inference/services/cohere/CohereServiceSettingsTests.java +++ b/x-pack/plugin/inference/src/test/java/org/elasticsearch/xpack/inference/services/cohere/CohereServiceSettingsTests.java @@ -365,7 +365,7 @@ public static Map getServiceSettingsMap(@Nullable String url, @N @Override protected CohereServiceSettings mutateInstanceForVersion(CohereServiceSettings instance, TransportVersion version) { if (version.before(TransportVersions.ML_INFERENCE_COHERE_API_VERSION) - || (version.isPatchFrom(TransportVersions.ML_INFERENCE_COHERE_API_VERSION_8_19) == false)) { + && (version.isPatchFrom(TransportVersions.ML_INFERENCE_COHERE_API_VERSION_8_19) == false)) { return new CohereServiceSettings( instance.uri(), instance.similarity(), diff --git a/x-pack/plugin/inference/src/test/java/org/elasticsearch/xpack/inference/services/cohere/completion/CohereCompletionServiceSettingsTests.java b/x-pack/plugin/inference/src/test/java/org/elasticsearch/xpack/inference/services/cohere/completion/CohereCompletionServiceSettingsTests.java index 853bd70b4c1c9..92ebb3fdc0a00 100644 --- a/x-pack/plugin/inference/src/test/java/org/elasticsearch/xpack/inference/services/cohere/completion/CohereCompletionServiceSettingsTests.java +++ b/x-pack/plugin/inference/src/test/java/org/elasticsearch/xpack/inference/services/cohere/completion/CohereCompletionServiceSettingsTests.java @@ -116,7 +116,7 @@ protected CohereCompletionServiceSettings mutateInstance(CohereCompletionService @Override protected CohereCompletionServiceSettings mutateInstanceForVersion(CohereCompletionServiceSettings instance, TransportVersion version) { if (version.before(TransportVersions.ML_INFERENCE_COHERE_API_VERSION) - || (version.isPatchFrom(TransportVersions.ML_INFERENCE_COHERE_API_VERSION_8_19) == false)) { + && (version.isPatchFrom(TransportVersions.ML_INFERENCE_COHERE_API_VERSION_8_19) == false)) { return new CohereCompletionServiceSettings( instance.uri(), instance.modelId(), diff --git a/x-pack/plugin/inference/src/test/java/org/elasticsearch/xpack/inference/services/cohere/rerank/CohereRerankServiceSettingsTests.java b/x-pack/plugin/inference/src/test/java/org/elasticsearch/xpack/inference/services/cohere/rerank/CohereRerankServiceSettingsTests.java index 3977a53b4e95e..773ccc5933aa7 100644 --- a/x-pack/plugin/inference/src/test/java/org/elasticsearch/xpack/inference/services/cohere/rerank/CohereRerankServiceSettingsTests.java +++ b/x-pack/plugin/inference/src/test/java/org/elasticsearch/xpack/inference/services/cohere/rerank/CohereRerankServiceSettingsTests.java @@ -89,7 +89,7 @@ protected CohereRerankServiceSettings mutateInstanceForVersion(CohereRerankServi CohereServiceSettings.CohereApiVersion.V1 ); } else if (version.before(TransportVersions.ML_INFERENCE_COHERE_API_VERSION) - || version.isPatchFrom(TransportVersions.ML_INFERENCE_COHERE_API_VERSION_8_19)) { + && version.isPatchFrom(TransportVersions.ML_INFERENCE_COHERE_API_VERSION_8_19) == false) { return new CohereRerankServiceSettings( instance.uri(), instance.modelId(),