From 5a1c4a53b142c744eed65221d70ac892df800e19 Mon Sep 17 00:00:00 2001 From: dolphin Date: Fri, 19 Sep 2025 16:20:47 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=B7=A5=E4=BD=9C=E5=8F=B0=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/frontend/platform/package.json | 2 +- .../src/pages/BuildPage/bench/index.tsx | 153 ++++++++---------- src/frontend/platform/vite.config.mts | 2 +- 3 files changed, 70 insertions(+), 87 deletions(-) diff --git a/src/frontend/platform/package.json b/src/frontend/platform/package.json index a68c9ac2a..f09eac9bf 100644 --- a/src/frontend/platform/package.json +++ b/src/frontend/platform/package.json @@ -1,6 +1,6 @@ { "name": "bisheng", - "version": "2.1.0", + "version": "2.1.1", "private": true, "dependencies": { "@headlessui/react": "^2.0.4", diff --git a/src/frontend/platform/src/pages/BuildPage/bench/index.tsx b/src/frontend/platform/src/pages/BuildPage/bench/index.tsx index da18e8170..b9456a21a 100644 --- a/src/frontend/platform/src/pages/BuildPage/bench/index.tsx +++ b/src/frontend/platform/src/pages/BuildPage/bench/index.tsx @@ -121,9 +121,8 @@ export default function index({ formData: parentFormData, setFormData: parentSet const webSearchRef = useRef(null); const systemPromptRef = useRef(null); const appCenterWelcomeRef = useRef(null); -const appCenterDescriptionRef = useRef(null); + const appCenterDescriptionRef = useRef(null); const { t } = useTranslation() - const { config: webSearchData, setConfig: setWebSearchData } = useWebSearchStore() const { formData, errors, @@ -140,8 +139,8 @@ const appCenterDescriptionRef = useRef(null); modelRefs, webSearchRef, systemPromptRef, - appCenterWelcomeRef, - appCenterDescriptionRef, + appCenterWelcomeRef, + appCenterDescriptionRef, }, parentFormData, parentSetFormData); useEffect(() => { @@ -157,17 +156,7 @@ const appCenterDescriptionRef = useRef(null); navigate('/build/apps') } }, [user]) - useEffect(() => { - if (!parentFormData) { - console.log("parentFormData is null", parentFormData); - getWorkstationConfigApi().then(res => { - setWebSearchData(res.webSearch) - setFormData(res) - }) - } - - }, []) const uploadAvator = (fileUrl: string, type: 'sidebar' | 'assistant', relativePath?: string) => { setFormData(prev => ({ ...prev, @@ -184,7 +173,6 @@ const appCenterDescriptionRef = useRef(null); return; } const toolId = webSearchTool.id; - setWebSearchData(config); setFormData(prev => ({ ...prev, webSearch: config })); await updateAssistantToolApi(toolId, config); setWebSearchDialogOpen(false) @@ -223,12 +211,7 @@ const appCenterDescriptionRef = useRef(null); } })); - // 同时更新全局状态 (zustand) - setWebSearchData(prev => ({ - ...prev, - [field]: value - })); - }, [setFormData, setWebSearchData]); // 添加依赖项 + }, [setFormData]); // 添加依赖项 return (
@@ -299,7 +282,7 @@ const appCenterDescriptionRef = useRef(null); onChange={(v) => handleInputChange('inputPlaceholder', v, 1000)} />
-
+
(null); error={errors.systemPrompt} placeholder={`${t('chatConfig.systemPromptPlaceholder')}`} maxLength={30000} - onChange={(val) => handleInputChange('systemPrompt', val, 30000)} + onChange={(val) => handleInputChange('systemPrompt', val, 30000)} />
@@ -481,7 +464,7 @@ interface UseChatConfigProps { const useChatConfig = (refs: UseChatConfigProps, parentFormData, parentSetFormData) => { const [formData, setFormData] = useState(parentFormData || { menuShow: true, - + systemPrompt: "你是BISHENG智能问答助手,你的任务是根据用户问题进行回答。在回答时,请注意以下几点:- 当前时间是{cur_date}。- 不要泄露任何敏感信息,回答应基于一般性知识和逻辑。- 确保回答不违反法律法规、道德准则和公序良俗。", sidebarIcon: { enabled: true, image: '', relative_path: '' }, assistantIcon: { enabled: true, image: '', relative_path: '' }, @@ -545,45 +528,45 @@ const useChatConfig = (refs: UseChatConfigProps, parentFormData, parentSetFormDa // const modelRefs = useRef<(HTMLDivElement | null)[]>([]); // const webSearchRef = useRef(null); // const systemPromptRef = useRef(null); - useEffect(() => { - if (!parentFormData) { - console.log('parentFormData :>> ', parentFormData); + useEffect(() => { + if (!parentFormData) { + console.log('parentFormData :>> ', parentFormData); - getWorkstationConfigApi().then((res) => { - if (res) { - // 确保 systemPrompt 有值 - const defaultSystemPrompt = `你是BISHENG智能问答助手,你的任务是根据用户问题进行回答。 + getWorkstationConfigApi().then((res) => { + if (res) { + // 确保 systemPrompt 有值 + const defaultSystemPrompt = `你是BISHENG智能问答助手,你的任务是根据用户问题进行回答。 在回答时,请注意以下几点: - 当前时间是{cur_date}。 - 不要泄露任何敏感信息,回答应基于一般性知识和逻辑。 - 确保回答不违反法律法规、道德准则和公序良俗。` - const systemPrompt = res.systemPrompt || defaultSystemPrompt; - - setFormData((prev) => { - return 'menuShow' in res ? res : { ...prev, ...res, systemPrompt } - }) - } - }); - } -}, [parentFormData]); + const systemPrompt = res.systemPrompt || defaultSystemPrompt; -const [errors, setErrors] = useState({ - sidebarSlogan: '', - welcomeMessage: '', - functionDescription: '', - inputPlaceholder: '', - kownledgeBase: '', - model: '', - modelNames: [], - webSearch: undefined, - systemPrompt: '', - applicationCenterWelcomeMessage: '', - applicationCenterDescription: '', -}); + setFormData((prev) => { + return 'menuShow' in res ? res : { ...prev, ...res, systemPrompt } + }) + } + }); + } + }, [parentFormData]); + + const [errors, setErrors] = useState({ + sidebarSlogan: '', + welcomeMessage: '', + functionDescription: '', + inputPlaceholder: '', + kownledgeBase: '', + model: '', + modelNames: [], + webSearch: undefined, + systemPrompt: '', + applicationCenterWelcomeMessage: '', + applicationCenterDescription: '', + }); console.log('errors :>> ', errors); -const handleInputChange = (field: keyof ChatConfigForm, value: string, maxLength: number) => { - setFormData(prev => ({ ...prev, [field]: value })); + const handleInputChange = (field: keyof ChatConfigForm, value: string, maxLength: number) => { + setFormData(prev => ({ ...prev, [field]: value })); if (value.length >= maxLength) { setErrors(prev => ({ ...prev, [field]: `最多${maxLength}个字符` })); @@ -612,7 +595,7 @@ const handleInputChange = (field: keyof ChatConfigForm, value: string, maxLength modelNames: [], applicationCenterWelcomeMessage: '', applicationCenterDescription: '', - systemPrompt: '', + systemPrompt: '', }; if (formData.sidebarSlogan.length > 15) { @@ -654,17 +637,17 @@ const handleInputChange = (field: keyof ChatConfigForm, value: string, maxLength isValid = false; } if (formData.applicationCenterWelcomeMessage.length > 1000) { - newErrors.applicationCenterWelcomeMessage = t('chatConfig.errors.maxCharacters', { count: 1000 }); - if (!firstErrorRef) firstErrorRef = refs.appCenterWelcomeRef; - isValid = false; - } - - // 验证应用中心描述 - if (formData.applicationCenterDescription.length > 1000) { - newErrors.applicationCenterDescription = t('chatConfig.errors.maxCharacters', { count: 1000 }); - if (!firstErrorRef) firstErrorRef = refs.appCenterDescriptionRef; - isValid = false; - } + newErrors.applicationCenterWelcomeMessage = t('chatConfig.errors.maxCharacters', { count: 1000 }); + if (!firstErrorRef) firstErrorRef = refs.appCenterWelcomeRef; + isValid = false; + } + + // 验证应用中心描述 + if (formData.applicationCenterDescription.length > 1000) { + newErrors.applicationCenterDescription = t('chatConfig.errors.maxCharacters', { count: 1000 }); + if (!firstErrorRef) firstErrorRef = refs.appCenterDescriptionRef; + isValid = false; + } // Validate models if (formData.models.length === 0) { newErrors.model = t('chatConfig.errors.atLeastOneModel'); @@ -775,31 +758,31 @@ const handleInputChange = (field: keyof ChatConfigForm, value: string, maxLength const { toast } = useToast() const { reloadConfig } = useContext(locationContext) const handleSave = async () => { - const { isValid, firstErrorRef } = validateForm(); - if (!isValid) { - if (firstErrorRef?.current) { - firstErrorRef.current.scrollIntoView({ - behavior: 'smooth', // 平滑滚动 - block: 'end', // 滚动后文本框底部显示在视图中(下方位置) - inline: 'nearest' - }); + const { isValid, firstErrorRef } = validateForm(); + if (!isValid) { + if (firstErrorRef?.current) { + firstErrorRef.current.scrollIntoView({ + behavior: 'smooth', // 平滑滚动 + block: 'end', // 滚动后文本框底部显示在视图中(下方位置) + inline: 'nearest' + }); - // 延迟聚焦输入框,确保滚动完成后再聚焦(提升体验) - setTimeout(() => { - const input = firstErrorRef.current?.querySelector('input, textarea, [role="combobox"]'); - if (input) input.focus(); // 聚焦到错误输入框 - }, 300); // 300ms 匹配滚动动画时长 - } - return false; - } + // 延迟聚焦输入框,确保滚动完成后再聚焦(提升体验) + setTimeout(() => { + const input = firstErrorRef.current?.querySelector('input, textarea, [role="combobox"]'); + if (input) input.focus(); // 聚焦到错误输入框 + }, 300); // 300ms 匹配滚动动画时长 + } + return false; + } const dataToSave = { ...formData, sidebarSlogan: formData.sidebarSlogan.trim(), welcomeMessage: formData.welcomeMessage.trim(), functionDescription: formData.functionDescription.trim(), inputPlaceholder: formData.inputPlaceholder.trim(), - applicationCenterWelcomeMessage: formData.applicationCenterWelcomeMessage.trim()||'探索BISHENG的智能体', - applicationCenterDescription: formData.applicationCenterDescription.trim()||'您可以在这里选择需要的智能体来进行生产与工作~', + applicationCenterWelcomeMessage: formData.applicationCenterWelcomeMessage.trim() || '探索BISHENG的智能体', + applicationCenterDescription: formData.applicationCenterDescription.trim() || '您可以在这里选择需要的智能体来进行生产与工作~', maxTokens: formData.maxTokens || 15000, }; diff --git a/src/frontend/platform/vite.config.mts b/src/frontend/platform/vite.config.mts index e8cec962d..1d730393d 100644 --- a/src/frontend/platform/vite.config.mts +++ b/src/frontend/platform/vite.config.mts @@ -15,7 +15,7 @@ const app_env = { BASE_URL: '' } // /custom // Use environment variable to determine the target. // const target = process.env.VITE_PROXY_TARGET || "http://127.0.0.1:7860"; -const target = process.env.VITE_PROXY_TARGET || "http://192.168.106.120:3002"; +const target = process.env.VITE_PROXY_TARGET || "http://192.168.106.120:3003"; const fileServiceTarget = "http://192.168.106.116:9000"; // 公共代理配置