@@ -338,9 +338,19 @@ function AgentProvider() {
338338 loadData ( ) ;
339339 } ;
340340
341+ const getDefaultBaseUrl = ( provider : string ) => {
342+ switch ( provider ) {
343+ case "anthropic" :
344+ return "https://api.anthropic.com" ;
345+ case "zhipu" :
346+ return "https://open.bigmodel.cn/api/paas/v4" ;
347+ default :
348+ return "https://api.openai.com/v1" ;
349+ }
350+ } ;
351+
341352 const buildProviderRequest = ( m : AgentModelConfig ) => {
342- const baseUrl =
343- m . apiBaseUrl || ( m . provider === "openai" ? "https://api.openai.com/v1" : "https://api.anthropic.com" ) ;
353+ const baseUrl = m . apiBaseUrl || getDefaultBaseUrl ( m . provider ) ;
344354 const headers : Record < string , string > = { } ;
345355 let modelsUrl : string ;
346356 if ( m . provider === "anthropic" ) {
@@ -361,9 +371,7 @@ function AgentProvider() {
361371 setTestingConnection ( true ) ;
362372 setTestReply ( "" ) ;
363373 try {
364- const baseUrl =
365- editingModel . apiBaseUrl ||
366- ( editingModel . provider === "openai" ? "https://api.openai.com/v1" : "https://api.anthropic.com" ) ;
374+ const baseUrl = editingModel . apiBaseUrl || getDefaultBaseUrl ( editingModel . provider ) ;
367375 const headers : Record < string , string > = { "Content-Type" : "application/json" } ;
368376 let chatUrl : string ;
369377 let body : string ;
@@ -383,8 +391,9 @@ function AgentProvider() {
383391 if ( editingModel . apiKey ) {
384392 headers [ "Authorization" ] = `Bearer ${ editingModel . apiKey } ` ;
385393 }
394+ const defaultModel = editingModel . provider === "zhipu" ? "glm-4-flash" : "gpt-4o-mini" ;
386395 body = JSON . stringify ( {
387- model : editingModel . model || "gpt-4o-mini" ,
396+ model : editingModel . model || defaultModel ,
388397 max_tokens : 256 ,
389398 messages : [ { role : "user" , content : "hi" } ] ,
390399 } ) ;
@@ -490,25 +499,32 @@ function AgentProvider() {
490499 < Select
491500 value = { editingModel . provider }
492501 onChange = { ( value ) => setEditingModel ( ( prev ) => ( { ...prev , provider : value } ) ) }
493- renderFormat = { ( _option , value ) => (
494- < span className = "tw-inline-flex tw-items-center tw-gap-2" >
495- < ProviderIcon providerKey = { String ( value ) } size = { 14 } />
496- < span > { value === "anthropic" ? "Anthropic" : "OpenAI" } </ span >
497- </ span >
498- ) }
502+ renderFormat = { ( _option , value ) => {
503+ const labels : Record < string , string > = {
504+ openai : "OpenAI" ,
505+ anthropic : "Anthropic" ,
506+ zhipu : "Zhipu (智谱)" ,
507+ } ;
508+ return (
509+ < span className = "tw-inline-flex tw-items-center tw-gap-2" >
510+ < ProviderIcon providerKey = { String ( value ) } size = { 14 } />
511+ < span > { labels [ String ( value ) ] || String ( value ) } </ span >
512+ </ span >
513+ ) ;
514+ } }
499515 >
500- < Select . Option value = "openai" >
501- < span className = "tw-inline-flex tw-items-center tw-gap-2" >
502- < ProviderIcon providerKey = "openai" size = { 14 } />
503- < span > { "OpenAI" } </ span >
504- </ span >
505- </ Select . Option >
506- < Select . Option value = "anthropic ">
507- < span className = "tw-inline-flex tw-items-center tw-gap-2" >
508- < ProviderIcon providerKey = "anthropic" size = { 14 } / >
509- < span > { "Anthropic" } < /span >
510- </ span >
511- </ Select . Option >
516+ { [
517+ { value : "openai" , label : "OpenAI" } ,
518+ { value : "anthropic" , label : "Anthropic" } ,
519+ { value : "zhipu" , label : "Zhipu (智谱)" } ,
520+ ] . map ( ( item ) => (
521+ < Select . Option key = { item . value } value = { item . value } >
522+ < span className = "tw-inline-flex tw-items-center tw-gap-2 ">
523+ < ProviderIcon providerKey = { item . value } size = { 14 } / >
524+ < span > { item . label } </ span >
525+ </ span >
526+ </ Select . Option >
527+ ) ) }
512528 </ Select >
513529 </ div >
514530
@@ -519,9 +535,7 @@ function AgentProvider() {
519535 </ div >
520536 < Input
521537 value = { editingModel . apiBaseUrl }
522- placeholder = {
523- editingModel . provider === "openai" ? "https://api.openai.com/v1" : "https://api.anthropic.com"
524- }
538+ placeholder = { getDefaultBaseUrl ( editingModel . provider ) }
525539 onChange = { ( value ) => setEditingModel ( ( prev ) => ( { ...prev , apiBaseUrl : value } ) ) }
526540 />
527541 </ div >
0 commit comments