添加同步上游模型列表按钮

This commit is contained in:
bubu 2024-05-21 17:57:19 +08:00
parent d6c1e3f37c
commit 6fe643b1c1

View File

@ -24,6 +24,7 @@ import {
} from '@douyinfe/semi-ui';
import { Divider } from 'semantic-ui-react';
import { getChannelModels, loadChannelModels } from '../../components/utils.js';
import axios from 'axios';
const MODEL_MAPPING_EXAMPLE = {
'gpt-3.5-turbo-0301': 'gpt-3.5-turbo',
@ -86,6 +87,34 @@ const EditChannel = (props) => {
const [basicModels, setBasicModels] = useState([]);
const [fullModels, setFullModels] = useState([]);
const [customModel, setCustomModel] = useState('');
const fetchUpstreamModelList = (name) => {
const url = inputs['base_url'] + '/v1/models';
const key = inputs['key']
axios.get(url, {
headers: {
'Authorization': `Bearer ${key}`
}
}).then((res) => {
if (res.data && res.data?.success) {
const models = res.data.data.map((model) => model.id);
handleInputChange(name, models);
showSuccess("获取模型列表成功");
} else {
showError('获取模型列表失败');
}
}).catch((error) => {
console.log(error);
const errCode = error.response.status;
if (errCode === 401) {
showError(`获取模型列表失败,错误代码 ${errCode},请检查密钥是否填写`);
} else {
showError(`获取模型列表失败,错误代码 ${errCode}`);
}
})
}
const handleInputChange = (name, value) => {
setInputs((inputs) => ({ ...inputs, [name]: value }));
if (name === 'type') {
@ -231,7 +260,7 @@ const EditChannel = (props) => {
fetchModels().then();
fetchGroups().then();
if (isEdit) {
loadChannel().then(() => {});
loadChannel().then(() => { });
} else {
setInputs(originInputs);
let localModels = getChannelModels(inputs.type);
@ -302,7 +331,7 @@ const EditChannel = (props) => {
if (customModel.trim() === '') return;
// 使用逗号分隔字符串,然后去除每个模型名称前后的空格
const modelArray = customModel.split(',').map(model => model.trim());
let localModels = [...inputs.models];
let localModelOptions = [...modelOptions];
let hasError = false;
@ -546,6 +575,14 @@ const EditChannel = (props) => {
>
填入所有模型
</Button>
<Button
type='tertiary'
onClick={() => {
fetchUpstreamModelList('models');
}}
>
获取模型列表
</Button>
<Button
type='warning'
onClick={() => {
@ -660,7 +697,7 @@ const EditChannel = (props) => {
onChange={() => {
setAutoBan(!autoBan);
}}
// onChange={handleInputChange}
// onChange={handleInputChange}
/>
<Typography.Text strong>
是否自动禁用仅当自动禁用开启时有效关闭后不会自动禁用该渠道