@@ -42,22 +42,22 @@ export const Config: Schema<Config> = Schema.object({
4242class OpenAIProvider extends SharedProvider < any , ModelConfig > {
4343 constructor ( name : string , provider : any , config : Config , runtime ?: { fetch ?: any ; proxy ?: string } ) {
4444 const processedConfig = { ...config } ;
45- if ( processedConfig . baseURL ) {
46- let baseURL = processedConfig . baseURL . trim ( ) ;
47- if ( baseURL . endsWith ( "/" ) ) {
48- baseURL = baseURL . slice ( 0 , - 1 ) ;
49- }
50- // 如果不以版本号(如 /v1, /v4)结尾,则补上 /v1
51- if ( ! / \/ v \d + $ / . test ( baseURL ) ) {
52- baseURL += "/v1" ;
53- }
54- if ( ! baseURL ) {
55- throw new Error ( "无效的 baseURL:标准化处理后值为空。" ) ;
56- }
57- processedConfig . baseURL = baseURL ;
58- } else {
59- throw new Error ( "无效的 baseURL:值为空。" ) ;
45+ let baseURL = ( processedConfig . baseURL || "" ) . trim ( ) ;
46+
47+ if ( ! baseURL || baseURL . replace ( / \/ + $ / , "" ) === "" ) {
48+ throw new Error ( "无效的 baseURL:值为空或仅包含斜杠。" ) ;
49+ }
50+
51+ // 移除末尾斜杠
52+ baseURL = baseURL . replace ( / \/ + $ / , "" ) ;
53+
54+ // 如果不以版本号(如 /v1, /v4)结尾,则补上 /v1
55+ if ( ! / \/ v \d + $ / . test ( baseURL ) ) {
56+ baseURL += "/v1" ;
6057 }
58+
59+ processedConfig . baseURL = baseURL ;
60+
6161 super ( name , provider , processedConfig , runtime ) ;
6262 }
6363}
0 commit comments