Skip to content

Commit 510948e

Browse files
committed
fix: append slash to openAI custom host #98
1 parent b28ad10 commit 510948e

File tree

2 files changed

+14
-6
lines changed

2 files changed

+14
-6
lines changed

src/main/kotlin/cc/unitmesh/devti/llms/azure/AzureOpenAIProvider.kt

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ import okhttp3.MediaType.Companion.toMediaTypeOrNull
3131
import okhttp3.OkHttpClient
3232
import okhttp3.Request
3333
import okhttp3.RequestBody
34+
import java.net.URL
3435
import java.time.Duration
3536

3637

@@ -192,13 +193,14 @@ class AzureOpenAIProvider(val project: Project) : LLMProvider {
192193
}
193194

194195
companion object {
195-
fun isUrlWithPath(input: String): Boolean {
196-
val urlPattern = Regex("^https?://[a-zA-Z0-9-]+(\\\\.[a-zA-Z]{2,})+(/[a-zA-Z0-9-._~:/?#[\\\\]@!\$&'()*+,;=%]*)?\\\$")
197-
return urlPattern.matches(input)
198-
}
199196

197+
/**
198+
* 如果用户输入的 host 未带 "/" 结尾,自动补全
199+
* 如果用户输入的 host 带有 query 或者 fragment,则不做干涉
200+
*/
200201
fun tryFixHostUrl(customOpenAiHost: String): String {
201-
if (isUrlWithPath(customOpenAiHost)) {
202+
val url = URL(customOpenAiHost)
203+
if (url.query != null || url.toURI().fragment != null) {
202204
return customOpenAiHost
203205
}
204206

src/test/kotlin/cc/unitmesh/devti/llms/azure/AzureOpenAIProviderTest.kt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,11 @@ class AzureOpenAIProviderTest {
99
assertEquals(AzureOpenAIProvider.tryFixHostUrl("https://api.openai.com"), "https://api.openai.com/")
1010
assertEquals(AzureOpenAIProvider.tryFixHostUrl("https://api.openai.com/"), "https://api.openai.com/")
1111
assertEquals(AzureOpenAIProvider.tryFixHostUrl("https://api.openai.com/v1"), "https://api.openai.com/v1/")
12+
13+
assertEquals(AzureOpenAIProvider.tryFixHostUrl("https://api.openai.com/v1"), "https://api.openai.com/v1/")
14+
15+
assertEquals(AzureOpenAIProvider.tryFixHostUrl("https://api.openai.com/v1?d=3"), "https://api.openai.com/v1?d=3")
16+
17+
assertEquals(AzureOpenAIProvider.tryFixHostUrl("https://api.openai.com/v1#2"), "https://api.openai.com/v1#2")
1218
}
13-
}
19+
}

0 commit comments

Comments
 (0)