From 2065126bcba4426051139ca1fda4f6ebda03209e Mon Sep 17 00:00:00 2001 From: ningyv <1793599591@qq.com> Date: Fri, 7 Mar 2025 11:05:53 +0800 Subject: [PATCH] feat: feature/1.6-Integrate custom model --- .../pages/aiSetting/contexts/AddModels.tsx | 103 ++++++++++-------- 1 file changed, 56 insertions(+), 47 deletions(-) diff --git a/frontend/packages/core/src/pages/aiSetting/contexts/AddModels.tsx b/frontend/packages/core/src/pages/aiSetting/contexts/AddModels.tsx index 7f9c2d05..0b285a42 100644 --- a/frontend/packages/core/src/pages/aiSetting/contexts/AddModels.tsx +++ b/frontend/packages/core/src/pages/aiSetting/contexts/AddModels.tsx @@ -1,9 +1,10 @@ -import { App, Form, Input, Select, Tag } from 'antd' +import { App, Dropdown, Form, Input } from 'antd' import { $t } from '@common/locales' import { BasicResponse, PLACEHOLDER, RESPONSE_TIPS, STATUS_CODE } from '@common/const/const' import { Codebox } from '@common/components/postcat/api/Codebox' import { useFetch } from '@common/hooks/http' import { forwardRef, useEffect, useImperativeHandle, useState } from 'react' +import { Icon } from '@iconify/react/dist/iconify.js' type modelFieldType = { name: string type: string @@ -25,45 +26,63 @@ type addModelContentProps = { modelID?: string } +type TemplatesItems = { + providerName: string + modelName: string + modelParameters: string +} + const AddModels = forwardRef((props, ref) => { const { showAccessConfig, accessConfig, modelParameters, modelName, providerID, type, modelID } = props const [form] = Form.useForm() const { message } = App.useApp() const { fetchData } = useFetch() - const [templateList, setTemplateList] = useState<{ - id: string - name: string - config: string - }[]>() + const [templateList, setTemplateList] = useState< + { + key: string + label: string + config: string + }[] + >([]) + /** * 获取 modelTemplateList 列表 * @param id */ const getModelTemplateList = () => { - // 暂时先固定 - const modelTemplateList = [ - { - id: 'customize', - name: $t('自定义'), - config: '{}' - } - ] - setTemplateList(modelTemplateList) - if (!modelParameters) { - form.setFieldValue('model_parameters', modelTemplateList[0].config) - } - form.setFieldValue('type', 'customize') + fetchData>(`ai/provider/model/template`, { + method: 'GET', + eoTransformKeys: ['provider_name', 'model_name', 'model_parameters'] + }) + .then((response) => { + const { code, data, msg } = response + if (code === STATUS_CODE.SUCCESS) { + const templates = data.templates || [] + setTemplateList(templates.map((template: any) => ({ + key: template.id, + label: `${template.providerName} ${template.modelName}`, + config: template.modelParameters + }))) + } else { + message.error(msg || $t(RESPONSE_TIPS.error)) + } + }) } useEffect(() => { getModelTemplateList() form.setFieldsValue({ - access_configuration: accessConfig, + access_configuration: accessConfig || '{}', model_parameters: modelParameters || '{}', name: modelName || '' }) }, []) + const modelParameterClick = ({ key }: { key: string }) => { + const config = templateList.find((item) => item.key === key)?.config + form.setFieldValue('model_parameters', config || '{}') + } + /** * 保存 * @returns @@ -78,7 +97,6 @@ const AddModels = forwardRef((prop ...value, id: modelID } - delete finalValue.type fetchData>('ai/provider/model', { method: type === 'edit' ? 'DELETE' : 'POST', eoParams: { provider: providerID }, @@ -133,33 +151,24 @@ const AddModels = forwardRef((prop /> )} + label={$t('模型参数')}> + + + + {$t('载入预置模板')} + + - - - - label={$t('模型参数')} name="model_parameters"> - + name="model_parameters"> + + )