Skip to content

Commit ec08429

Browse files
committed
MLE-25059 Improving error when Azure deployment name is missing
1 parent f54af46 commit ec08429

File tree

3 files changed

+35
-6
lines changed

3 files changed

+35
-6
lines changed

flux-cli/src/test/java/com/marklogic/flux/impl/importdata/ImportFilesWithEmbedderTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,8 @@ void azure() {
111111
"--uri-replace", ".*/json-files,''",
112112
"--splitter-json-pointer", "/text",
113113
"--embedder", "azure",
114-
"--embedder-prop", "api-key=doesnt-matter"
114+
"--embedder-prop", "api-key=doesnt-matter",
115+
"--embedder-prop", "deployment-name=anything"
115116
);
116117
}
117118

flux-embedding-model-azure-open-ai/src/main/java/com/marklogic/flux/langchain4j/embedding/AzureOpenAiEmbeddingModelFunction.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,11 @@ public EmbeddingModel apply(Map<String, String> options) {
2121
throw new IllegalArgumentException(String.format("Must specify either api-key or %s.", nonAzureKey));
2222
}
2323

24+
final String deploymentName = options.get("deployment-name");
25+
if (deploymentName == null || deploymentName.trim().isEmpty()) {
26+
throw new IllegalArgumentException("deployment-name must be specified");
27+
}
28+
2429
AzureOpenAiEmbeddingModel.Builder builder = AzureOpenAiEmbeddingModel.builder()
2530
.apiKey(options.get("api-key"))
2631
.deploymentName(options.get("deployment-name"))

flux-embedding-model-azure-open-ai/src/test/java/com/marklogic/flux/langchain4j/embedding/ConfigTest.java

Lines changed: 28 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
package com.marklogic.flux.langchain4j.embedding;
55

66
import dev.langchain4j.model.embedding.EmbeddingModel;
7-
import org.junit.jupiter.api.Disabled;
87
import org.junit.jupiter.api.Test;
98

109
import java.util.HashMap;
@@ -43,7 +42,28 @@ void mostConfig() {
4342
void missingEndpoint() {
4443
expectError(
4544
"endpoint cannot be null or blank",
46-
"api-key", "abc123"
45+
"api-key", "abc123",
46+
"deployment-name", "anything"
47+
);
48+
}
49+
50+
@Test
51+
void missingDeploymentName() {
52+
expectError(
53+
// We have to translate the internal Azure error, as it will say "deploymentName" instead of "deployment-name".
54+
"deployment-name must be specified",
55+
"api-key", "abc123",
56+
"endpoint", "somewhere"
57+
);
58+
}
59+
60+
@Test
61+
void emptyDeploymentName() {
62+
expectError(
63+
"deployment-name must be specified",
64+
"api-key", "abc123",
65+
"endpoint", "somewhere",
66+
"deployment-name", ""
4767
);
4868
}
4969

@@ -60,7 +80,8 @@ void badDimensions() {
6080
expectError(
6181
"dimensions must have a numeric value; invalid value: abc",
6282
"api-key", "abc123",
63-
"dimensions", "abc"
83+
"dimensions", "abc",
84+
"deployment-name", "anything"
6485
);
6586
}
6687

@@ -69,7 +90,8 @@ void badMaxRetries() {
6990
expectError(
7091
"max-retries must have a numeric value; invalid value: abc",
7192
"max-retries", "abc",
72-
"api-key", "abc123"
93+
"api-key", "abc123",
94+
"deployment-name", "anything"
7395
);
7496
}
7597

@@ -78,7 +100,8 @@ void badDuration() {
78100
expectError(
79101
"duration must have a numeric value; invalid value: abc",
80102
"duration", "abc",
81-
"api-key", "abc123"
103+
"api-key", "abc123",
104+
"deployment-name", "anything"
82105
);
83106
}
84107

0 commit comments

Comments
 (0)