@@ -64,12 +64,25 @@ export const ConfigStore = types
6464 }
6565 return "" ;
6666 } ,
67- setConfig : ( data ) => {
67+ setConfig : function ( data ) {
6868 self . settle = false ;
6969 const newConfig = { ...data } ;
7070 if ( ! data . models ) {
7171 newConfig . models = { } ;
7272 }
73+ if ( ! newConfig . providers ?. openai ) {
74+ newConfig . providers . openai = {
75+ api_key : "" ,
76+ api_base : "" ,
77+ } ;
78+ }
79+ if ( ! newConfig . providers ?. devchat ) {
80+ newConfig . providers . devchat = {
81+ api_key : "" ,
82+ api_base : "" ,
83+ } ;
84+ }
85+
7386 self . modelsTemplate . forEach ( ( item ) => {
7487 const currentModel : any = {
7588 ...item ,
@@ -91,45 +104,35 @@ export const ConfigStore = types
91104 ) {
92105 newConfig . models [ item . name ] . provider = currentModel . provider ;
93106 }
107+ // 只有之前配置过 openai 的,provider 才可以是 openai
108+ if (
109+ newConfig . models [ item . name ] . provider === "openai" &&
110+ ! newConfig . providers . openai . api_key
111+ ) {
112+ newConfig . models [ item . name ] . provider = "devchat" ;
113+ }
94114 } ) ;
95115
96- if ( ! newConfig . providers ?. openai ) {
97- newConfig . providers . openai = {
98- api_key : "" ,
99- api_base : "" ,
100- } ;
101- }
102- if ( ! newConfig . providers ?. devchat ) {
103- newConfig . providers . devchat = {
104- api_key : "" ,
105- api_base : "" ,
106- } ;
107- }
108116 if ( ! defaultAPIBase . includes ( newConfig . providers . devchat . api_base ) ) {
109117 newConfig . providers . devchat . cumstom_api_base =
110118 newConfig . providers . devchat . api_base ;
111119 newConfig . providers . devchat . api_base = "custom" ;
112120 }
113- console . log ( "newConfig: " , newConfig ) ;
114121
115122 self . config = newConfig ;
116123 self . settle = true ;
117124 self . defaultModel = newConfig . default_model ;
125+
126+ this . writeConfig ( ) ;
118127 } ,
119128 getModelList : ( ) => {
120129 const modelsArray = self . modelsTemplate . map ( ( item ) => {
121130 return item . name ;
122131 } ) ;
123132 return modelsArray ;
124133 } ,
125- setConfigValue : ( key : string , value : any ) => {
126- if ( key === "default_model" ) {
127- self . defaultModel = value ;
128- }
129- const cloneConfig = cloneDeep ( self . config ) ;
130- cloneConfig [ key ] = value ;
131- self . config = cloneConfig ;
132-
134+ writeConfig : function ( ) {
135+ console . log ( "writeConfig" ) ;
133136 const writeConfig = cloneDeep ( self . config ) ;
134137 if (
135138 writeConfig . providers . devchat . api_base === "custom" &&
@@ -146,6 +149,15 @@ export const ConfigStore = types
146149 key : "" ,
147150 } ) ;
148151 } ,
152+ setConfigValue : function ( key : string , value : any ) {
153+ if ( key === "default_model" ) {
154+ self . defaultModel = value ;
155+ }
156+ const cloneConfig = cloneDeep ( self . config ) ;
157+ cloneConfig [ key ] = value ;
158+ self . config = cloneConfig ;
159+ this . writeConfig ( ) ;
160+ } ,
149161 } ) ) ;
150162
151163export type IConfigStore = Instance < typeof ConfigStore > ;
0 commit comments