From c8bd6f63a39b97fbb571209ee9f3f509ece8c084 Mon Sep 17 00:00:00 2001 From: ningyv <1793599591@qq.com> Date: Mon, 10 Mar 2025 11:40:18 +0800 Subject: [PATCH] feat: feature/1.6-Integrate custom model --- .../common/src/locales/scan/en-US.json | 3 +- .../common/src/locales/scan/ja-JP.json | 3 +- .../common/src/locales/scan/zh-CN.json | 3 +- .../common/src/locales/scan/zh-TW.json | 3 +- .../src/pages/aiSetting/AiSettingModal.tsx | 62 ++++++++++++------- .../src/pages/aiSetting/OnlineModelList.tsx | 8 +-- .../pages/aiSetting/contexts/AddProvider.tsx | 7 ++- .../core/src/pages/aiSetting/types.ts | 3 +- 8 files changed, 56 insertions(+), 36 deletions(-) diff --git a/frontend/packages/common/src/locales/scan/en-US.json b/frontend/packages/common/src/locales/scan/en-US.json index f028d015..57f0ba51 100644 --- a/frontend/packages/common/src/locales/scan/en-US.json +++ b/frontend/packages/common/src/locales/scan/en-US.json @@ -897,5 +897,6 @@ "K3d2324d0": "Deletion failed.", "Kce2fcdbf": "No Permission", "K24f6a5b4": "Custom (Empty Template)", - "Kea608112": "Load Preset Template" + "Kea608112": "Load Preset Template", + "Kee7de862": "Edit Provider( (0) )" } diff --git a/frontend/packages/common/src/locales/scan/ja-JP.json b/frontend/packages/common/src/locales/scan/ja-JP.json index 75aaae01..61ea7256 100644 --- a/frontend/packages/common/src/locales/scan/ja-JP.json +++ b/frontend/packages/common/src/locales/scan/ja-JP.json @@ -919,5 +919,6 @@ "K3d2324d0": "削除に失敗しました。", "Kce2fcdbf": "権限がありません", "K24f6a5b4": "カスタム(空のテンプレート)", - "Kea608112": "プリセットテンプレートを読み込む" + "Kea608112": "プリセットテンプレートを読み込む", + "Kee7de862": "サプライヤーを編集( (0) )" } diff --git a/frontend/packages/common/src/locales/scan/zh-CN.json b/frontend/packages/common/src/locales/scan/zh-CN.json index 41430160..f009105f 100644 --- a/frontend/packages/common/src/locales/scan/zh-CN.json +++ b/frontend/packages/common/src/locales/scan/zh-CN.json @@ -850,5 +850,6 @@ "K3d2324d0": "删除失败", "Kce2fcdbf": "暂无权限", "K24f6a5b4": "自定义(空模板)", - "Kea608112": "载入预置模板" + "Kea608112": "载入预置模板", + "Kee7de862": "编辑供应商( (0) )" } diff --git a/frontend/packages/common/src/locales/scan/zh-TW.json b/frontend/packages/common/src/locales/scan/zh-TW.json index 90ecb032..fe2aae97 100644 --- a/frontend/packages/common/src/locales/scan/zh-TW.json +++ b/frontend/packages/common/src/locales/scan/zh-TW.json @@ -919,5 +919,6 @@ "K3d2324d0": "刪除失敗。", "Kce2fcdbf": "暫無權限", "K24f6a5b4": "自訂(空模板)", - "Kea608112": "載入預設模板" + "Kea608112": "載入預設模板", + "Kee7de862": "編輯供應商( (0) )" } diff --git a/frontend/packages/core/src/pages/aiSetting/AiSettingModal.tsx b/frontend/packages/core/src/pages/aiSetting/AiSettingModal.tsx index bcb5d3cc..3cd3a0b7 100644 --- a/frontend/packages/core/src/pages/aiSetting/AiSettingModal.tsx +++ b/frontend/packages/core/src/pages/aiSetting/AiSettingModal.tsx @@ -113,7 +113,7 @@ const AiSettingModalContent = forwardRef { + const getModelConfig = (id: string, defaultId?: string | number) => { getLlmList(id) fetchData>(`ai/provider/config`, { method: 'GET', @@ -139,7 +139,8 @@ const AiSettingModalContent = forwardRef { - const providerName = form.getFieldValue('modelMode') || localEntity?.name + const providerName = localEntity?.name || form.getFieldValue('modelMode') const showAccessConfig = localEntity?.model_config?.access_configuration_status || false const accessConfig = localEntity?.model_config?.access_configuration_demo || '' modal.confirm({ title: $t('添加 (0) 模型', [providerName]), - content: , + content: ( + + ), onOk: () => { return addModelModalRef.current?.save().then((res) => { if (res === true) { @@ -298,7 +306,7 @@ const AiSettingModalContent = forwardRef { return addProviderModalRef.current?.save().then((res) => { if (res) { - getModelProviderList(false, res) + getModelProviderList(false, res.id) } }) }, @@ -326,14 +334,16 @@ const AiSettingModalContent = forwardRef - {modelMode === 'manual' && ( + {modelMode === 'manual' && !localEntity?.isNewProvider && ( label={$t('模型供应商')}> + {$t('添加自定义供应商')} name="modelMode" rules={[{ required: true }]}> ({ - value: x.id, - label: ( -
- {x.name || x.id} - {x?.scopes?.map((s) => {s?.toLocaleUpperCase()})} -
- ) - }))} - > - + name="defaultLlm" rules={[{ required: true }]}> + + {source === 'guide' && ( diff --git a/frontend/packages/core/src/pages/aiSetting/OnlineModelList.tsx b/frontend/packages/core/src/pages/aiSetting/OnlineModelList.tsx index e2fb6237..2aee5fc7 100644 --- a/frontend/packages/core/src/pages/aiSetting/OnlineModelList.tsx +++ b/frontend/packages/core/src/pages/aiSetting/OnlineModelList.tsx @@ -28,7 +28,7 @@ const OnlineModelList: React.FC = () => { const [modalVisible, setModalVisible] = useState(false) const [selectedProviderID, setSelectedProviderID] = useState('') const [selectedProviderName, setSelectedProviderName] = useState('') - const [showDrawerFooterLeft, setShowDrawerFooterLeft] = useState(false) + const [currentEditDrawerData, setCurrentEditDrawerData] = useState() const handleEdit = (record: ModelListData) => { setEntity({ @@ -117,7 +117,7 @@ const OnlineModelList: React.FC = () => { // 更新抽屉底部 const updateEntityData = (data: any) => { // 0 常规,1 自定义 - setShowDrawerFooterLeft(!data.type) + setCurrentEditDrawerData(data) setFooterLeft( {$t('从 (0) 获取 API KEY', [data?.name])} @@ -269,7 +269,7 @@ const OnlineModelList: React.FC = () => { onAddNewBtnClick={() => setDrawerOpen(true)} /> { @@ -284,7 +284,7 @@ const OnlineModelList: React.FC = () => { return res }) } - footerLeft={showDrawerFooterLeft ? footerLeft : undefined} + footerLeft={!currentEditDrawerData?.type ? footerLeft : undefined} submitAccess="" > Promise + save: () => Promise } type addProviderContentProps = { @@ -24,7 +25,7 @@ const AddProvider = forwardRef Promise = () => { + const save: () => Promise = () => { return new Promise((resolve, reject) => { try { form @@ -41,7 +42,7 @@ const AddProvider = forwardRef