[ML] Move and rename AmazonBedrockSecretSettings (#125323)
In preparation for integrating with SageMaker, we want to reuse the existing SecretSettings. - AmazonBedrockSecretSettings moved from services.amazonbedrock to common.amazon. - AmazonBedrockSecretSettings was renamed to AwsSecretSettings. - accessKey and secretKey are now encapsulated.
This commit is contained in:
parent
e0d4599dad
commit
76260267b0
|
@ -28,6 +28,7 @@ import org.elasticsearch.xpack.core.inference.results.TextEmbeddingFloatResults;
|
|||
import org.elasticsearch.xpack.inference.action.task.StreamingTaskManager;
|
||||
import org.elasticsearch.xpack.inference.chunking.SentenceBoundaryChunkingSettings;
|
||||
import org.elasticsearch.xpack.inference.chunking.WordBoundaryChunkingSettings;
|
||||
import org.elasticsearch.xpack.inference.common.amazon.AwsSecretSettings;
|
||||
import org.elasticsearch.xpack.inference.services.alibabacloudsearch.AlibabaCloudSearchServiceSettings;
|
||||
import org.elasticsearch.xpack.inference.services.alibabacloudsearch.completion.AlibabaCloudSearchCompletionServiceSettings;
|
||||
import org.elasticsearch.xpack.inference.services.alibabacloudsearch.completion.AlibabaCloudSearchCompletionTaskSettings;
|
||||
|
@ -37,7 +38,6 @@ import org.elasticsearch.xpack.inference.services.alibabacloudsearch.rerank.Alib
|
|||
import org.elasticsearch.xpack.inference.services.alibabacloudsearch.rerank.AlibabaCloudSearchRerankTaskSettings;
|
||||
import org.elasticsearch.xpack.inference.services.alibabacloudsearch.sparse.AlibabaCloudSearchSparseServiceSettings;
|
||||
import org.elasticsearch.xpack.inference.services.alibabacloudsearch.sparse.AlibabaCloudSearchSparseTaskSettings;
|
||||
import org.elasticsearch.xpack.inference.services.amazonbedrock.AmazonBedrockSecretSettings;
|
||||
import org.elasticsearch.xpack.inference.services.amazonbedrock.completion.AmazonBedrockChatCompletionServiceSettings;
|
||||
import org.elasticsearch.xpack.inference.services.amazonbedrock.completion.AmazonBedrockChatCompletionTaskSettings;
|
||||
import org.elasticsearch.xpack.inference.services.amazonbedrock.embeddings.AmazonBedrockEmbeddingsServiceSettings;
|
||||
|
@ -146,6 +146,7 @@ public class InferenceNamedWriteablesProvider {
|
|||
addCustomElandWriteables(namedWriteables);
|
||||
addAnthropicNamedWritables(namedWriteables);
|
||||
addAmazonBedrockNamedWriteables(namedWriteables);
|
||||
addAwsNamedWriteables(namedWriteables);
|
||||
addEisNamedWriteables(namedWriteables);
|
||||
addAlibabaCloudSearchNamedWriteables(namedWriteables);
|
||||
addJinaAINamedWriteables(namedWriteables);
|
||||
|
@ -165,14 +166,6 @@ public class InferenceNamedWriteablesProvider {
|
|||
}
|
||||
|
||||
private static void addAmazonBedrockNamedWriteables(List<NamedWriteableRegistry.Entry> namedWriteables) {
|
||||
namedWriteables.add(
|
||||
new NamedWriteableRegistry.Entry(
|
||||
AmazonBedrockSecretSettings.class,
|
||||
AmazonBedrockSecretSettings.NAME,
|
||||
AmazonBedrockSecretSettings::new
|
||||
)
|
||||
);
|
||||
|
||||
namedWriteables.add(
|
||||
new NamedWriteableRegistry.Entry(
|
||||
ServiceSettings.class,
|
||||
|
@ -199,6 +192,10 @@ public class InferenceNamedWriteablesProvider {
|
|||
);
|
||||
}
|
||||
|
||||
private static void addAwsNamedWriteables(List<NamedWriteableRegistry.Entry> namedWriteables) {
|
||||
namedWriteables.add(new NamedWriteableRegistry.Entry(AwsSecretSettings.class, AwsSecretSettings.NAME, AwsSecretSettings::new));
|
||||
}
|
||||
|
||||
private static void addMistralNamedWriteables(List<NamedWriteableRegistry.Entry> namedWriteables) {
|
||||
namedWriteables.add(
|
||||
new NamedWriteableRegistry.Entry(
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
package org.elasticsearch.xpack.inference.services.amazonbedrock;
|
||||
package org.elasticsearch.xpack.inference.common.amazon;
|
||||
|
||||
import org.elasticsearch.TransportVersion;
|
||||
import org.elasticsearch.TransportVersions;
|
||||
|
@ -33,13 +33,13 @@ import static org.elasticsearch.xpack.inference.services.ServiceUtils.extractReq
|
|||
import static org.elasticsearch.xpack.inference.services.amazonbedrock.AmazonBedrockConstants.ACCESS_KEY_FIELD;
|
||||
import static org.elasticsearch.xpack.inference.services.amazonbedrock.AmazonBedrockConstants.SECRET_KEY_FIELD;
|
||||
|
||||
public class AmazonBedrockSecretSettings implements SecretSettings {
|
||||
public static final String NAME = "amazon_bedrock_secret_settings";
|
||||
public class AwsSecretSettings implements SecretSettings {
|
||||
public static final String NAME = "aws_secret_settings";
|
||||
|
||||
public final SecureString accessKey;
|
||||
public final SecureString secretKey;
|
||||
private final SecureString accessKey;
|
||||
private final SecureString secretKey;
|
||||
|
||||
public static AmazonBedrockSecretSettings fromMap(@Nullable Map<String, Object> map) {
|
||||
public static AwsSecretSettings fromMap(@Nullable Map<String, Object> map) {
|
||||
if (map == null) {
|
||||
return null;
|
||||
}
|
||||
|
@ -62,15 +62,15 @@ public class AmazonBedrockSecretSettings implements SecretSettings {
|
|||
throw validationException;
|
||||
}
|
||||
|
||||
return new AmazonBedrockSecretSettings(secureAccessKey, secureSecretKey);
|
||||
return new AwsSecretSettings(secureAccessKey, secureSecretKey);
|
||||
}
|
||||
|
||||
public AmazonBedrockSecretSettings(SecureString accessKey, SecureString secretKey) {
|
||||
public AwsSecretSettings(SecureString accessKey, SecureString secretKey) {
|
||||
this.accessKey = Objects.requireNonNull(accessKey);
|
||||
this.secretKey = Objects.requireNonNull(secretKey);
|
||||
}
|
||||
|
||||
public AmazonBedrockSecretSettings(StreamInput in) throws IOException {
|
||||
public AwsSecretSettings(StreamInput in) throws IOException {
|
||||
this.accessKey = in.readSecureString();
|
||||
this.secretKey = in.readSecureString();
|
||||
}
|
||||
|
@ -106,7 +106,7 @@ public class AmazonBedrockSecretSettings implements SecretSettings {
|
|||
public boolean equals(Object object) {
|
||||
if (this == object) return true;
|
||||
if (object == null || getClass() != object.getClass()) return false;
|
||||
AmazonBedrockSecretSettings that = (AmazonBedrockSecretSettings) object;
|
||||
AwsSecretSettings that = (AwsSecretSettings) object;
|
||||
return Objects.equals(accessKey, that.accessKey) && Objects.equals(secretKey, that.secretKey);
|
||||
}
|
||||
|
||||
|
@ -120,6 +120,14 @@ public class AmazonBedrockSecretSettings implements SecretSettings {
|
|||
return fromMap(new HashMap<>(newSecrets));
|
||||
}
|
||||
|
||||
public SecureString accessKey() {
|
||||
return accessKey;
|
||||
}
|
||||
|
||||
public SecureString secretKey() {
|
||||
return secretKey;
|
||||
}
|
||||
|
||||
public static class Configuration {
|
||||
public static Map<String, SettingsConfiguration> get() {
|
||||
return configuration.getOrCompute();
|
|
@ -28,7 +28,7 @@ public abstract class AmazonBedrockBaseClient implements AmazonBedrockClient {
|
|||
public static Integer getModelKeysAndRegionHashcode(AmazonBedrockModel model, @Nullable TimeValue timeout) {
|
||||
var secretSettings = model.getSecretSettings();
|
||||
var serviceSettings = model.getServiceSettings();
|
||||
return Objects.hash(secretSettings.accessKey, secretSettings.secretKey, serviceSettings.region(), timeout);
|
||||
return Objects.hash(secretSettings.accessKey(), secretSettings.secretKey(), serviceSettings.region(), timeout);
|
||||
}
|
||||
|
||||
public final void setClock(Clock clock) {
|
||||
|
|
|
@ -142,7 +142,7 @@ public class AmazonBedrockInferenceClient extends AmazonBedrockBaseClient {
|
|||
try {
|
||||
SpecialPermission.check();
|
||||
return AccessController.doPrivileged((PrivilegedExceptionAction<BedrockRuntimeAsyncClient>) () -> {
|
||||
var credentials = AwsBasicCredentials.create(secretSettings.accessKey.toString(), secretSettings.secretKey.toString());
|
||||
var credentials = AwsBasicCredentials.create(secretSettings.accessKey().toString(), secretSettings.secretKey().toString());
|
||||
var credentialsProvider = StaticCredentialsProvider.create(credentials);
|
||||
var clientConfig = timeout == null
|
||||
? NettyNioAsyncHttpClient.builder().connectionTimeout(DEFAULT_CLIENT_TIMEOUT_MS)
|
||||
|
|
|
@ -43,7 +43,7 @@ public abstract class AmazonBedrockRequestManager implements RequestManager {
|
|||
|
||||
var awsSecretSettings = model.getSecretSettings();
|
||||
|
||||
return new RateLimitGrouping(Objects.hash(awsSecretSettings.accessKey, awsSecretSettings.secretKey));
|
||||
return new RateLimitGrouping(Objects.hash(awsSecretSettings.accessKey(), awsSecretSettings.secretKey()));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -12,6 +12,7 @@ import org.elasticsearch.inference.ModelConfigurations;
|
|||
import org.elasticsearch.inference.ModelSecrets;
|
||||
import org.elasticsearch.inference.ServiceSettings;
|
||||
import org.elasticsearch.inference.TaskSettings;
|
||||
import org.elasticsearch.xpack.inference.common.amazon.AwsSecretSettings;
|
||||
import org.elasticsearch.xpack.inference.external.action.ExecutableAction;
|
||||
import org.elasticsearch.xpack.inference.external.action.amazonbedrock.AmazonBedrockActionVisitor;
|
||||
import org.elasticsearch.xpack.inference.services.settings.RateLimitSettings;
|
||||
|
@ -81,8 +82,8 @@ public abstract class AmazonBedrockModel extends Model {
|
|||
}
|
||||
|
||||
@Override
|
||||
public AmazonBedrockSecretSettings getSecretSettings() {
|
||||
return (AmazonBedrockSecretSettings) super.getSecretSettings();
|
||||
public AwsSecretSettings getSecretSettings() {
|
||||
return (AwsSecretSettings) super.getSecretSettings();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -31,6 +31,7 @@ import org.elasticsearch.inference.configuration.SettingsConfigurationFieldType;
|
|||
import org.elasticsearch.rest.RestStatus;
|
||||
import org.elasticsearch.xpack.inference.chunking.ChunkingSettingsBuilder;
|
||||
import org.elasticsearch.xpack.inference.chunking.EmbeddingRequestChunker;
|
||||
import org.elasticsearch.xpack.inference.common.amazon.AwsSecretSettings;
|
||||
import org.elasticsearch.xpack.inference.external.action.amazonbedrock.AmazonBedrockActionCreator;
|
||||
import org.elasticsearch.xpack.inference.external.amazonbedrock.AmazonBedrockRequestSender;
|
||||
import org.elasticsearch.xpack.inference.external.http.sender.EmbeddingsInput;
|
||||
|
@ -459,7 +460,7 @@ public class AmazonBedrockService extends SenderService {
|
|||
.build()
|
||||
);
|
||||
|
||||
configurationMap.putAll(AmazonBedrockSecretSettings.Configuration.get());
|
||||
configurationMap.putAll(AwsSecretSettings.Configuration.get());
|
||||
configurationMap.putAll(
|
||||
RateLimitSettings.toSettingsConfigurationWithDescription(
|
||||
"By default, the amazonbedrock service sets the number of requests allowed per minute to 240.",
|
||||
|
|
|
@ -12,11 +12,11 @@ import org.elasticsearch.inference.ModelConfigurations;
|
|||
import org.elasticsearch.inference.ModelSecrets;
|
||||
import org.elasticsearch.inference.TaskSettings;
|
||||
import org.elasticsearch.inference.TaskType;
|
||||
import org.elasticsearch.xpack.inference.common.amazon.AwsSecretSettings;
|
||||
import org.elasticsearch.xpack.inference.external.action.ExecutableAction;
|
||||
import org.elasticsearch.xpack.inference.external.action.amazonbedrock.AmazonBedrockActionVisitor;
|
||||
import org.elasticsearch.xpack.inference.services.ConfigurationParseContext;
|
||||
import org.elasticsearch.xpack.inference.services.amazonbedrock.AmazonBedrockModel;
|
||||
import org.elasticsearch.xpack.inference.services.amazonbedrock.AmazonBedrockSecretSettings;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
|
@ -47,7 +47,7 @@ public class AmazonBedrockChatCompletionModel extends AmazonBedrockModel {
|
|||
name,
|
||||
AmazonBedrockChatCompletionServiceSettings.fromMap(serviceSettings, context),
|
||||
AmazonBedrockChatCompletionTaskSettings.fromMap(taskSettings),
|
||||
AmazonBedrockSecretSettings.fromMap(secretSettings)
|
||||
AwsSecretSettings.fromMap(secretSettings)
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -57,7 +57,7 @@ public class AmazonBedrockChatCompletionModel extends AmazonBedrockModel {
|
|||
String service,
|
||||
AmazonBedrockChatCompletionServiceSettings serviceSettings,
|
||||
AmazonBedrockChatCompletionTaskSettings taskSettings,
|
||||
AmazonBedrockSecretSettings secrets
|
||||
AwsSecretSettings secrets
|
||||
) {
|
||||
super(new ModelConfigurations(inferenceEntityId, taskType, service, serviceSettings, taskSettings), new ModelSecrets(secrets));
|
||||
}
|
||||
|
|
|
@ -16,11 +16,11 @@ import org.elasticsearch.inference.ModelSecrets;
|
|||
import org.elasticsearch.inference.ServiceSettings;
|
||||
import org.elasticsearch.inference.TaskSettings;
|
||||
import org.elasticsearch.inference.TaskType;
|
||||
import org.elasticsearch.xpack.inference.common.amazon.AwsSecretSettings;
|
||||
import org.elasticsearch.xpack.inference.external.action.ExecutableAction;
|
||||
import org.elasticsearch.xpack.inference.external.action.amazonbedrock.AmazonBedrockActionVisitor;
|
||||
import org.elasticsearch.xpack.inference.services.ConfigurationParseContext;
|
||||
import org.elasticsearch.xpack.inference.services.amazonbedrock.AmazonBedrockModel;
|
||||
import org.elasticsearch.xpack.inference.services.amazonbedrock.AmazonBedrockSecretSettings;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
|
@ -54,7 +54,7 @@ public class AmazonBedrockEmbeddingsModel extends AmazonBedrockModel {
|
|||
AmazonBedrockEmbeddingsServiceSettings.fromMap(serviceSettings, context),
|
||||
new EmptyTaskSettings(),
|
||||
chunkingSettings,
|
||||
AmazonBedrockSecretSettings.fromMap(secretSettings)
|
||||
AwsSecretSettings.fromMap(secretSettings)
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -65,7 +65,7 @@ public class AmazonBedrockEmbeddingsModel extends AmazonBedrockModel {
|
|||
AmazonBedrockEmbeddingsServiceSettings serviceSettings,
|
||||
TaskSettings taskSettings,
|
||||
ChunkingSettings chunkingSettings,
|
||||
AmazonBedrockSecretSettings secrets
|
||||
AwsSecretSettings secrets
|
||||
) {
|
||||
super(
|
||||
new ModelConfigurations(inferenceEntityId, taskType, service, serviceSettings, new EmptyTaskSettings(), chunkingSettings),
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
package org.elasticsearch.xpack.inference.services.amazonbedrock;
|
||||
package org.elasticsearch.xpack.inference.common.amazon;
|
||||
|
||||
import org.elasticsearch.TransportVersion;
|
||||
import org.elasticsearch.common.Strings;
|
||||
|
@ -27,48 +27,46 @@ import static org.elasticsearch.xpack.inference.services.amazonbedrock.AmazonBed
|
|||
import static org.hamcrest.Matchers.containsString;
|
||||
import static org.hamcrest.Matchers.is;
|
||||
|
||||
public class AmazonBedrockSecretSettingsTests extends AbstractBWCWireSerializationTestCase<AmazonBedrockSecretSettings> {
|
||||
public class AwsSecretSettingsTests extends AbstractBWCWireSerializationTestCase<AwsSecretSettings> {
|
||||
|
||||
public void testNewSecretSettings() {
|
||||
AmazonBedrockSecretSettings initialSettings = createRandom();
|
||||
AmazonBedrockSecretSettings newSettings = createRandom();
|
||||
AwsSecretSettings initialSettings = createRandom();
|
||||
AwsSecretSettings newSettings = createRandom();
|
||||
|
||||
AmazonBedrockSecretSettings finalSettings = (AmazonBedrockSecretSettings) initialSettings.newSecretSettings(
|
||||
Map.of(ACCESS_KEY_FIELD, newSettings.accessKey.toString(), SECRET_KEY_FIELD, newSettings.secretKey.toString())
|
||||
AwsSecretSettings finalSettings = (AwsSecretSettings) initialSettings.newSecretSettings(
|
||||
Map.of(ACCESS_KEY_FIELD, newSettings.accessKey().toString(), SECRET_KEY_FIELD, newSettings.secretKey().toString())
|
||||
);
|
||||
|
||||
assertEquals(newSettings, finalSettings);
|
||||
}
|
||||
|
||||
public void testIt_CreatesSettings_ReturnsNullFromMap_null() {
|
||||
var secrets = AmazonBedrockSecretSettings.fromMap(null);
|
||||
var secrets = AwsSecretSettings.fromMap(null);
|
||||
assertNull(secrets);
|
||||
}
|
||||
|
||||
public void testIt_CreatesSettings_FromMap_WithValues() {
|
||||
var secrets = AmazonBedrockSecretSettings.fromMap(
|
||||
new HashMap<>(Map.of(ACCESS_KEY_FIELD, "accesstest", SECRET_KEY_FIELD, "secrettest"))
|
||||
);
|
||||
var secrets = AwsSecretSettings.fromMap(new HashMap<>(Map.of(ACCESS_KEY_FIELD, "accesstest", SECRET_KEY_FIELD, "secrettest")));
|
||||
assertThat(
|
||||
secrets,
|
||||
is(new AmazonBedrockSecretSettings(new SecureString("accesstest".toCharArray()), new SecureString("secrettest".toCharArray())))
|
||||
is(new AwsSecretSettings(new SecureString("accesstest".toCharArray()), new SecureString("secrettest".toCharArray())))
|
||||
);
|
||||
}
|
||||
|
||||
public void testIt_CreatesSettings_FromMap_IgnoresExtraKeys() {
|
||||
var secrets = AmazonBedrockSecretSettings.fromMap(
|
||||
var secrets = AwsSecretSettings.fromMap(
|
||||
new HashMap<>(Map.of(ACCESS_KEY_FIELD, "accesstest", SECRET_KEY_FIELD, "secrettest", "extrakey", "extravalue"))
|
||||
);
|
||||
assertThat(
|
||||
secrets,
|
||||
is(new AmazonBedrockSecretSettings(new SecureString("accesstest".toCharArray()), new SecureString("secrettest".toCharArray())))
|
||||
is(new AwsSecretSettings(new SecureString("accesstest".toCharArray()), new SecureString("secrettest".toCharArray())))
|
||||
);
|
||||
}
|
||||
|
||||
public void testIt_FromMap_ThrowsValidationException_AccessKeyMissing() {
|
||||
var thrownException = expectThrows(
|
||||
ValidationException.class,
|
||||
() -> AmazonBedrockSecretSettings.fromMap(new HashMap<>(Map.of(SECRET_KEY_FIELD, "secrettest")))
|
||||
() -> AwsSecretSettings.fromMap(new HashMap<>(Map.of(SECRET_KEY_FIELD, "secrettest")))
|
||||
);
|
||||
|
||||
assertThat(
|
||||
|
@ -80,7 +78,7 @@ public class AmazonBedrockSecretSettingsTests extends AbstractBWCWireSerializati
|
|||
public void testIt_FromMap_ThrowsValidationException_SecretKeyMissing() {
|
||||
var thrownException = expectThrows(
|
||||
ValidationException.class,
|
||||
() -> AmazonBedrockSecretSettings.fromMap(new HashMap<>(Map.of(ACCESS_KEY_FIELD, "accesstest")))
|
||||
() -> AwsSecretSettings.fromMap(new HashMap<>(Map.of(ACCESS_KEY_FIELD, "accesstest")))
|
||||
);
|
||||
|
||||
assertThat(
|
||||
|
@ -90,9 +88,7 @@ public class AmazonBedrockSecretSettingsTests extends AbstractBWCWireSerializati
|
|||
}
|
||||
|
||||
public void testToXContent_CreatesProperContent() throws IOException {
|
||||
var secrets = AmazonBedrockSecretSettings.fromMap(
|
||||
new HashMap<>(Map.of(ACCESS_KEY_FIELD, "accesstest", SECRET_KEY_FIELD, "secrettest"))
|
||||
);
|
||||
var secrets = AwsSecretSettings.fromMap(new HashMap<>(Map.of(ACCESS_KEY_FIELD, "accesstest", SECRET_KEY_FIELD, "secrettest")));
|
||||
|
||||
XContentBuilder builder = XContentFactory.contentBuilder(XContentType.JSON);
|
||||
secrets.toXContent(builder, null);
|
||||
|
@ -106,26 +102,26 @@ public class AmazonBedrockSecretSettingsTests extends AbstractBWCWireSerializati
|
|||
}
|
||||
|
||||
@Override
|
||||
protected AmazonBedrockSecretSettings mutateInstanceForVersion(AmazonBedrockSecretSettings instance, TransportVersion version) {
|
||||
protected AwsSecretSettings mutateInstanceForVersion(AwsSecretSettings instance, TransportVersion version) {
|
||||
return instance;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Writeable.Reader<AmazonBedrockSecretSettings> instanceReader() {
|
||||
return AmazonBedrockSecretSettings::new;
|
||||
protected Writeable.Reader<AwsSecretSettings> instanceReader() {
|
||||
return AwsSecretSettings::new;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected AmazonBedrockSecretSettings createTestInstance() {
|
||||
protected AwsSecretSettings createTestInstance() {
|
||||
return createRandom();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected AmazonBedrockSecretSettings mutateInstance(AmazonBedrockSecretSettings instance) throws IOException {
|
||||
return randomValueOtherThan(instance, AmazonBedrockSecretSettingsTests::createRandom);
|
||||
protected AwsSecretSettings mutateInstance(AwsSecretSettings instance) throws IOException {
|
||||
return randomValueOtherThan(instance, AwsSecretSettingsTests::createRandom);
|
||||
}
|
||||
|
||||
private static AmazonBedrockSecretSettings createRandom() {
|
||||
return new AmazonBedrockSecretSettings(new SecureString(randomAlphaOfLength(10)), new SecureString(randomAlphaOfLength(10)));
|
||||
private static AwsSecretSettings createRandom() {
|
||||
return new AwsSecretSettings(new SecureString(randomAlphaOfLength(10)), new SecureString(randomAlphaOfLength(10)));
|
||||
}
|
||||
}
|
|
@ -38,6 +38,7 @@ import org.elasticsearch.xpack.core.inference.results.ChatCompletionResults;
|
|||
import org.elasticsearch.xpack.core.inference.results.ChunkedInferenceEmbedding;
|
||||
import org.elasticsearch.xpack.core.inference.results.TextEmbeddingFloatResults;
|
||||
import org.elasticsearch.xpack.inference.Utils;
|
||||
import org.elasticsearch.xpack.inference.common.amazon.AwsSecretSettings;
|
||||
import org.elasticsearch.xpack.inference.external.amazonbedrock.AmazonBedrockMockRequestSender;
|
||||
import org.elasticsearch.xpack.inference.external.http.sender.HttpRequestSender;
|
||||
import org.elasticsearch.xpack.inference.external.http.sender.Sender;
|
||||
|
@ -72,9 +73,9 @@ import static org.elasticsearch.xpack.inference.Utils.inferenceUtilityPool;
|
|||
import static org.elasticsearch.xpack.inference.Utils.mockClusterServiceEmpty;
|
||||
import static org.elasticsearch.xpack.inference.chunking.ChunkingSettingsTests.createRandomChunkingSettings;
|
||||
import static org.elasticsearch.xpack.inference.chunking.ChunkingSettingsTests.createRandomChunkingSettingsMap;
|
||||
import static org.elasticsearch.xpack.inference.common.amazon.AwsSecretSettingsTests.getAmazonBedrockSecretSettingsMap;
|
||||
import static org.elasticsearch.xpack.inference.services.ServiceComponentsTests.createWithEmptySettings;
|
||||
import static org.elasticsearch.xpack.inference.services.amazonbedrock.AmazonBedrockProviderCapabilities.getProviderDefaultSimilarityMeasure;
|
||||
import static org.elasticsearch.xpack.inference.services.amazonbedrock.AmazonBedrockSecretSettingsTests.getAmazonBedrockSecretSettingsMap;
|
||||
import static org.elasticsearch.xpack.inference.services.amazonbedrock.completion.AmazonBedrockChatCompletionServiceSettingsTests.createChatCompletionRequestSettingsMap;
|
||||
import static org.elasticsearch.xpack.inference.services.amazonbedrock.completion.AmazonBedrockChatCompletionTaskSettingsTests.getChatCompletionTaskSettingsMap;
|
||||
import static org.elasticsearch.xpack.inference.services.amazonbedrock.embeddings.AmazonBedrockEmbeddingsServiceSettingsTests.createEmbeddingsRequestSettingsMap;
|
||||
|
@ -111,9 +112,9 @@ public class AmazonBedrockServiceTests extends ESTestCase {
|
|||
assertThat(settings.region(), is("region"));
|
||||
assertThat(settings.modelId(), is("model"));
|
||||
assertThat(settings.provider(), is(AmazonBedrockProvider.AMAZONTITAN));
|
||||
var secretSettings = (AmazonBedrockSecretSettings) model.getSecretSettings();
|
||||
assertThat(secretSettings.accessKey.toString(), is("access"));
|
||||
assertThat(secretSettings.secretKey.toString(), is("secret"));
|
||||
var secretSettings = (AwsSecretSettings) model.getSecretSettings();
|
||||
assertThat(secretSettings.accessKey().toString(), is("access"));
|
||||
assertThat(secretSettings.secretKey().toString(), is("secret"));
|
||||
}, exception -> fail("Unexpected exception: " + exception));
|
||||
|
||||
service.parseRequestConfig(
|
||||
|
@ -393,9 +394,9 @@ public class AmazonBedrockServiceTests extends ESTestCase {
|
|||
assertThat(settings.region(), is("region"));
|
||||
assertThat(settings.modelId(), is("model"));
|
||||
assertThat(settings.provider(), is(AmazonBedrockProvider.AMAZONTITAN));
|
||||
var secretSettings = (AmazonBedrockSecretSettings) model.getSecretSettings();
|
||||
assertThat(secretSettings.accessKey.toString(), is("access"));
|
||||
assertThat(secretSettings.secretKey.toString(), is("secret"));
|
||||
var secretSettings = (AwsSecretSettings) model.getSecretSettings();
|
||||
assertThat(secretSettings.accessKey().toString(), is("access"));
|
||||
assertThat(secretSettings.secretKey().toString(), is("secret"));
|
||||
}, exception -> fail("Unexpected exception: " + exception));
|
||||
|
||||
service.parseRequestConfig(
|
||||
|
@ -420,9 +421,9 @@ public class AmazonBedrockServiceTests extends ESTestCase {
|
|||
assertThat(settings.region(), is("region"));
|
||||
assertThat(settings.modelId(), is("model"));
|
||||
assertThat(settings.provider(), is(AmazonBedrockProvider.AMAZONTITAN));
|
||||
var secretSettings = (AmazonBedrockSecretSettings) model.getSecretSettings();
|
||||
assertThat(secretSettings.accessKey.toString(), is("access"));
|
||||
assertThat(secretSettings.secretKey.toString(), is("secret"));
|
||||
var secretSettings = (AwsSecretSettings) model.getSecretSettings();
|
||||
assertThat(secretSettings.accessKey().toString(), is("access"));
|
||||
assertThat(secretSettings.secretKey().toString(), is("secret"));
|
||||
assertThat(model.getConfigurations().getChunkingSettings(), instanceOf(ChunkingSettings.class));
|
||||
}, exception -> fail("Unexpected exception: " + exception));
|
||||
|
||||
|
@ -449,9 +450,9 @@ public class AmazonBedrockServiceTests extends ESTestCase {
|
|||
assertThat(settings.region(), is("region"));
|
||||
assertThat(settings.modelId(), is("model"));
|
||||
assertThat(settings.provider(), is(AmazonBedrockProvider.AMAZONTITAN));
|
||||
var secretSettings = (AmazonBedrockSecretSettings) model.getSecretSettings();
|
||||
assertThat(secretSettings.accessKey.toString(), is("access"));
|
||||
assertThat(secretSettings.secretKey.toString(), is("secret"));
|
||||
var secretSettings = (AwsSecretSettings) model.getSecretSettings();
|
||||
assertThat(secretSettings.accessKey().toString(), is("access"));
|
||||
assertThat(secretSettings.secretKey().toString(), is("secret"));
|
||||
assertThat(model.getConfigurations().getChunkingSettings(), instanceOf(ChunkingSettings.class));
|
||||
}, exception -> fail("Unexpected exception: " + exception));
|
||||
|
||||
|
@ -511,9 +512,9 @@ public class AmazonBedrockServiceTests extends ESTestCase {
|
|||
assertThat(settings.region(), is("region"));
|
||||
assertThat(settings.modelId(), is("model"));
|
||||
assertThat(settings.provider(), is(AmazonBedrockProvider.AMAZONTITAN));
|
||||
var secretSettings = (AmazonBedrockSecretSettings) model.getSecretSettings();
|
||||
assertThat(secretSettings.accessKey.toString(), is("access"));
|
||||
assertThat(secretSettings.secretKey.toString(), is("secret"));
|
||||
var secretSettings = (AwsSecretSettings) model.getSecretSettings();
|
||||
assertThat(secretSettings.accessKey().toString(), is("access"));
|
||||
assertThat(secretSettings.secretKey().toString(), is("secret"));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -543,9 +544,9 @@ public class AmazonBedrockServiceTests extends ESTestCase {
|
|||
assertThat(settings.modelId(), is("model"));
|
||||
assertThat(settings.provider(), is(AmazonBedrockProvider.AMAZONTITAN));
|
||||
assertThat(model.getConfigurations().getChunkingSettings(), instanceOf(ChunkingSettings.class));
|
||||
var secretSettings = (AmazonBedrockSecretSettings) model.getSecretSettings();
|
||||
assertThat(secretSettings.accessKey.toString(), is("access"));
|
||||
assertThat(secretSettings.secretKey.toString(), is("secret"));
|
||||
var secretSettings = (AwsSecretSettings) model.getSecretSettings();
|
||||
assertThat(secretSettings.accessKey().toString(), is("access"));
|
||||
assertThat(secretSettings.secretKey().toString(), is("secret"));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -571,9 +572,9 @@ public class AmazonBedrockServiceTests extends ESTestCase {
|
|||
assertThat(settings.modelId(), is("model"));
|
||||
assertThat(settings.provider(), is(AmazonBedrockProvider.AMAZONTITAN));
|
||||
assertThat(model.getConfigurations().getChunkingSettings(), instanceOf(ChunkingSettings.class));
|
||||
var secretSettings = (AmazonBedrockSecretSettings) model.getSecretSettings();
|
||||
assertThat(secretSettings.accessKey.toString(), is("access"));
|
||||
assertThat(secretSettings.secretKey.toString(), is("secret"));
|
||||
var secretSettings = (AwsSecretSettings) model.getSecretSettings();
|
||||
assertThat(secretSettings.accessKey().toString(), is("access"));
|
||||
assertThat(secretSettings.secretKey().toString(), is("secret"));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -622,9 +623,9 @@ public class AmazonBedrockServiceTests extends ESTestCase {
|
|||
assertThat(settings.region(), is("region"));
|
||||
assertThat(settings.modelId(), is("model"));
|
||||
assertThat(settings.provider(), is(AmazonBedrockProvider.AMAZONTITAN));
|
||||
var secretSettings = (AmazonBedrockSecretSettings) model.getSecretSettings();
|
||||
assertThat(secretSettings.accessKey.toString(), is("access"));
|
||||
assertThat(secretSettings.secretKey.toString(), is("secret"));
|
||||
var secretSettings = (AwsSecretSettings) model.getSecretSettings();
|
||||
assertThat(secretSettings.accessKey().toString(), is("access"));
|
||||
assertThat(secretSettings.secretKey().toString(), is("secret"));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -649,9 +650,9 @@ public class AmazonBedrockServiceTests extends ESTestCase {
|
|||
assertThat(settings.region(), is("region"));
|
||||
assertThat(settings.modelId(), is("model"));
|
||||
assertThat(settings.provider(), is(AmazonBedrockProvider.AMAZONTITAN));
|
||||
var secretSettings = (AmazonBedrockSecretSettings) model.getSecretSettings();
|
||||
assertThat(secretSettings.accessKey.toString(), is("access"));
|
||||
assertThat(secretSettings.secretKey.toString(), is("secret"));
|
||||
var secretSettings = (AwsSecretSettings) model.getSecretSettings();
|
||||
assertThat(secretSettings.accessKey().toString(), is("access"));
|
||||
assertThat(secretSettings.secretKey().toString(), is("secret"));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -676,9 +677,9 @@ public class AmazonBedrockServiceTests extends ESTestCase {
|
|||
assertThat(settings.region(), is("region"));
|
||||
assertThat(settings.modelId(), is("model"));
|
||||
assertThat(settings.provider(), is(AmazonBedrockProvider.AMAZONTITAN));
|
||||
var secretSettings = (AmazonBedrockSecretSettings) model.getSecretSettings();
|
||||
assertThat(secretSettings.accessKey.toString(), is("access"));
|
||||
assertThat(secretSettings.secretKey.toString(), is("secret"));
|
||||
var secretSettings = (AwsSecretSettings) model.getSecretSettings();
|
||||
assertThat(secretSettings.accessKey().toString(), is("access"));
|
||||
assertThat(secretSettings.secretKey().toString(), is("secret"));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -703,9 +704,9 @@ public class AmazonBedrockServiceTests extends ESTestCase {
|
|||
assertThat(settings.region(), is("region"));
|
||||
assertThat(settings.modelId(), is("model"));
|
||||
assertThat(settings.provider(), is(AmazonBedrockProvider.AMAZONTITAN));
|
||||
var secretSettings = (AmazonBedrockSecretSettings) model.getSecretSettings();
|
||||
assertThat(secretSettings.accessKey.toString(), is("access"));
|
||||
assertThat(secretSettings.secretKey.toString(), is("secret"));
|
||||
var secretSettings = (AwsSecretSettings) model.getSecretSettings();
|
||||
assertThat(secretSettings.accessKey().toString(), is("access"));
|
||||
assertThat(secretSettings.secretKey().toString(), is("secret"));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -736,9 +737,9 @@ public class AmazonBedrockServiceTests extends ESTestCase {
|
|||
assertThat(taskSettings.topP(), is(0.5));
|
||||
assertThat(taskSettings.topK(), is(0.2));
|
||||
assertThat(taskSettings.maxNewTokens(), is(128));
|
||||
var secretSettings = (AmazonBedrockSecretSettings) model.getSecretSettings();
|
||||
assertThat(secretSettings.accessKey.toString(), is("access"));
|
||||
assertThat(secretSettings.secretKey.toString(), is("secret"));
|
||||
var secretSettings = (AwsSecretSettings) model.getSecretSettings();
|
||||
assertThat(secretSettings.accessKey().toString(), is("access"));
|
||||
assertThat(secretSettings.secretKey().toString(), is("secret"));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -11,8 +11,8 @@ import org.elasticsearch.common.settings.SecureString;
|
|||
import org.elasticsearch.core.Nullable;
|
||||
import org.elasticsearch.inference.TaskType;
|
||||
import org.elasticsearch.test.ESTestCase;
|
||||
import org.elasticsearch.xpack.inference.common.amazon.AwsSecretSettings;
|
||||
import org.elasticsearch.xpack.inference.services.amazonbedrock.AmazonBedrockProvider;
|
||||
import org.elasticsearch.xpack.inference.services.amazonbedrock.AmazonBedrockSecretSettings;
|
||||
import org.elasticsearch.xpack.inference.services.settings.RateLimitSettings;
|
||||
|
||||
import static org.elasticsearch.xpack.inference.services.amazonbedrock.completion.AmazonBedrockChatCompletionTaskSettingsTests.getChatCompletionTaskSettingsMap;
|
||||
|
@ -214,7 +214,7 @@ public class AmazonBedrockChatCompletionModelTests extends ESTestCase {
|
|||
"amazonbedrock",
|
||||
new AmazonBedrockChatCompletionServiceSettings(region, model, provider, rateLimitSettings),
|
||||
new AmazonBedrockChatCompletionTaskSettings(temperature, topP, topK, maxNewTokens),
|
||||
new AmazonBedrockSecretSettings(new SecureString(accessKey), new SecureString(secretKey))
|
||||
new AwsSecretSettings(new SecureString(accessKey), new SecureString(secretKey))
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
@ -16,8 +16,8 @@ import org.elasticsearch.inference.InputType;
|
|||
import org.elasticsearch.inference.SimilarityMeasure;
|
||||
import org.elasticsearch.inference.TaskType;
|
||||
import org.elasticsearch.test.ESTestCase;
|
||||
import org.elasticsearch.xpack.inference.common.amazon.AwsSecretSettings;
|
||||
import org.elasticsearch.xpack.inference.services.amazonbedrock.AmazonBedrockProvider;
|
||||
import org.elasticsearch.xpack.inference.services.amazonbedrock.AmazonBedrockSecretSettings;
|
||||
import org.elasticsearch.xpack.inference.services.settings.RateLimitSettings;
|
||||
|
||||
import java.util.Map;
|
||||
|
@ -116,7 +116,7 @@ public class AmazonBedrockEmbeddingsModelTests extends ESTestCase {
|
|||
),
|
||||
new EmptyTaskSettings(),
|
||||
chunkingSettings,
|
||||
new AmazonBedrockSecretSettings(new SecureString(accessKey), new SecureString(secretKey))
|
||||
new AwsSecretSettings(new SecureString(accessKey), new SecureString(secretKey))
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -149,7 +149,7 @@ public class AmazonBedrockEmbeddingsModelTests extends ESTestCase {
|
|||
),
|
||||
new EmptyTaskSettings(),
|
||||
null,
|
||||
new AmazonBedrockSecretSettings(new SecureString(accessKey), new SecureString(secretKey))
|
||||
new AwsSecretSettings(new SecureString(accessKey), new SecureString(secretKey))
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue