(name)
| 256 | }; |
| 257 | |
| 258 | const fetchUpstreamModelList = async (name) => { |
| 259 | // if (inputs['type'] !== 1) { |
| 260 | // showError(t('仅支持 OpenAI 接口格式')); |
| 261 | // return; |
| 262 | // } |
| 263 | setLoading(true); |
| 264 | const models = inputs['models'] || []; |
| 265 | let err = false; |
| 266 | |
| 267 | if (isEdit) { |
| 268 | // 如果是编辑模式,使用已有的 channelId 获取模型列表 |
| 269 | const res = await API.get('/api/channel/fetch_models/' + channelId, { skipErrorHandler: true }); |
| 270 | if (res && res.data && res.data.success) { |
| 271 | models.push(...res.data.data); |
| 272 | } else { |
| 273 | err = true; |
| 274 | } |
| 275 | } else { |
| 276 | // 如果是新建模式,通过后端代理获取模型列表 |
| 277 | if (!inputs?.['key']) { |
| 278 | showError(t('请填写密钥')); |
| 279 | err = true; |
| 280 | } else { |
| 281 | try { |
| 282 | const res = await API.post( |
| 283 | '/api/channel/fetch_models', |
| 284 | { |
| 285 | base_url: inputs['base_url'], |
| 286 | type: inputs['type'], |
| 287 | key: inputs['key'], |
| 288 | }, |
| 289 | { skipErrorHandler: true }, |
| 290 | ); |
| 291 | |
| 292 | if (res && res.data && res.data.success) { |
| 293 | models.push(...res.data.data); |
| 294 | } else { |
| 295 | err = true; |
| 296 | } |
| 297 | } catch (error) { |
| 298 | console.error('Error fetching models:', error); |
| 299 | err = true; |
| 300 | } |
| 301 | } |
| 302 | } |
| 303 | |
| 304 | if (!err) { |
| 305 | handleInputChange(name, Array.from(new Set(models))); |
| 306 | showSuccess(t('获取模型列表成功')); |
| 307 | } else { |
| 308 | showError(t('获取模型列表失败')); |
| 309 | } |
| 310 | setLoading(false); |
| 311 | }; |
| 312 | |
| 313 | const fetchModels = async () => { |
| 314 | try { |
no test coverage detected