diff --git a/openai-java-core/src/main/kotlin/com/openai/core/Utils.kt b/openai-java-core/src/main/kotlin/com/openai/core/Utils.kt index 0b11077b..bedd2149 100644 --- a/openai-java-core/src/main/kotlin/com/openai/core/Utils.kt +++ b/openai-java-core/src/main/kotlin/com/openai/core/Utils.kt @@ -93,7 +93,9 @@ internal fun Any?.contentToString(): String { internal fun isAzureEndpoint(baseUrl: String): Boolean { // Azure Endpoint should be in the format of `https://.openai.azure.com`. // Or `https://.azure-api.net` for Azure OpenAI Management URL. - return baseUrl.endsWith(".openai.azure.com", true) || baseUrl.endsWith(".azure-api.net", true) + val trimmedBaseUrl = baseUrl.trim().trimEnd('/') + return trimmedBaseUrl.endsWith(".openai.azure.com", true) || + trimmedBaseUrl.endsWith(".azure-api.net", true) } internal interface Enum diff --git a/openai-java-core/src/test/kotlin/com/openai/core/UtilsTest.kt b/openai-java-core/src/test/kotlin/com/openai/core/UtilsTest.kt index 2f3a54ba..bb87b5c8 100644 --- a/openai-java-core/src/test/kotlin/com/openai/core/UtilsTest.kt +++ b/openai-java-core/src/test/kotlin/com/openai/core/UtilsTest.kt @@ -30,4 +30,20 @@ internal class UtilsTest { assertThat(arrayOf(byteArrayOf(1, 2), byteArrayOf(3)).contentToString()) .isEqualTo("[[1, 2], [3]]") } + + @Test + fun isAzureEndpoint() { + // Valid Azure endpoints + assertThat(isAzureEndpoint("https://region.openai.azure.com")).isTrue() + assertThat(isAzureEndpoint("https://region.openai.azure.com/")).isTrue() + assertThat(isAzureEndpoint("https://region.azure-api.net")).isTrue() + assertThat(isAzureEndpoint("https://region.azure-api.net/")).isTrue() + + // Invalid Azure endpoints + assertThat(isAzureEndpoint("https://example.com")).isFalse() + assertThat(isAzureEndpoint("https://region.openai.com")).isFalse() + assertThat(isAzureEndpoint("https://region.azure.com")).isFalse() + assertThat(isAzureEndpoint("")).isFalse() + assertThat(isAzureEndpoint(" ")).isFalse() + } }