@@ -261,7 +261,6 @@ func resolveRuntimeAPIKey(envName string) (string, error) {
261261 if exists {
262262 trimmedUserValue := strings .TrimSpace (userValue )
263263 if trimmedUserValue != "" {
264- _ = os .Setenv (envName , trimmedUserValue )
265264 return trimmedUserValue , nil
266265 }
267266 }
@@ -369,14 +368,13 @@ const (
369368 ModelScopeDefaultAPIKeyEnv = "MODELSCOPE_API_KEY"
370369)
371370
372- // OpenAIProvider returns the builtin OpenAI provider definition.
373- func OpenAIProvider () ProviderConfig {
371+ func newBuiltinOpenAICompatProvider (name , baseURL , model , apiKeyEnv string ) ProviderConfig {
374372 return ProviderConfig {
375- Name : OpenAIName ,
373+ Name : name ,
376374 Driver : provider .DriverOpenAICompat ,
377- BaseURL : OpenAIDefaultBaseURL ,
378- Model : OpenAIDefaultModel ,
379- APIKeyEnv : OpenAIDefaultAPIKeyEnv ,
375+ BaseURL : baseURL ,
376+ Model : model ,
377+ APIKeyEnv : apiKeyEnv ,
380378 ModelSource : ModelSourceDiscover ,
381379 ChatAPIMode : provider .ChatAPIModeChatCompletions ,
382380 ChatEndpointPath : "/chat/completions" ,
@@ -385,6 +383,11 @@ func OpenAIProvider() ProviderConfig {
385383 }
386384}
387385
386+ // OpenAIProvider returns the builtin OpenAI provider definition.
387+ func OpenAIProvider () ProviderConfig {
388+ return newBuiltinOpenAICompatProvider (OpenAIName , OpenAIDefaultBaseURL , OpenAIDefaultModel , OpenAIDefaultAPIKeyEnv )
389+ }
390+
388391// GeminiProvider returns the builtin Gemini provider definition.
389392func GeminiProvider () ProviderConfig {
390393 return ProviderConfig {
@@ -402,50 +405,17 @@ func GeminiProvider() ProviderConfig {
402405
403406// OpenLLProvider returns the builtin OpenLL provider definition.
404407func OpenLLProvider () ProviderConfig {
405- return ProviderConfig {
406- Name : OpenLLName ,
407- Driver : provider .DriverOpenAICompat ,
408- BaseURL : OpenLLDefaultBaseURL ,
409- Model : OpenLLDefaultModel ,
410- APIKeyEnv : OpenLLDefaultAPIKeyEnv ,
411- ModelSource : ModelSourceDiscover ,
412- ChatAPIMode : provider .ChatAPIModeChatCompletions ,
413- ChatEndpointPath : "/chat/completions" ,
414- DiscoveryEndpointPath : provider .DiscoveryEndpointPathModels ,
415- Source : ProviderSourceBuiltin ,
416- }
408+ return newBuiltinOpenAICompatProvider (OpenLLName , OpenLLDefaultBaseURL , OpenLLDefaultModel , OpenLLDefaultAPIKeyEnv )
417409}
418410
419411// QiniuProvider returns the builtin Qiniu provider definition.
420412func QiniuProvider () ProviderConfig {
421- return ProviderConfig {
422- Name : QiniuName ,
423- Driver : provider .DriverOpenAICompat ,
424- BaseURL : QiniuDefaultBaseURL ,
425- Model : QiniuDefaultModel ,
426- APIKeyEnv : QiniuDefaultAPIKeyEnv ,
427- ModelSource : ModelSourceDiscover ,
428- ChatAPIMode : provider .ChatAPIModeChatCompletions ,
429- ChatEndpointPath : "/chat/completions" ,
430- DiscoveryEndpointPath : provider .DiscoveryEndpointPathModels ,
431- Source : ProviderSourceBuiltin ,
432- }
413+ return newBuiltinOpenAICompatProvider (QiniuName , QiniuDefaultBaseURL , QiniuDefaultModel , QiniuDefaultAPIKeyEnv )
433414}
434415
435416// ModelScopeProvider 返回内置的 ModelScope provider 配置。
436417func ModelScopeProvider () ProviderConfig {
437- return ProviderConfig {
438- Name : ModelScopeName ,
439- Driver : provider .DriverOpenAICompat ,
440- BaseURL : ModelScopeDefaultBaseURL ,
441- Model : ModelScopeDefaultModel ,
442- APIKeyEnv : ModelScopeDefaultAPIKeyEnv ,
443- ModelSource : ModelSourceDiscover ,
444- ChatAPIMode : provider .ChatAPIModeChatCompletions ,
445- ChatEndpointPath : "/chat/completions" ,
446- DiscoveryEndpointPath : provider .DiscoveryEndpointPathModels ,
447- Source : ProviderSourceBuiltin ,
448- }
418+ return newBuiltinOpenAICompatProvider (ModelScopeName , ModelScopeDefaultBaseURL , ModelScopeDefaultModel , ModelScopeDefaultAPIKeyEnv )
449419}
450420
451421// DefaultProviders returns all builtin provider definitions.
0 commit comments