feat: update assistantmodelsettings to persist custom parameters

This commit is contained in:
kangfenmao 2025-01-02 17:21:33 +08:00
parent 15fb605eb4
commit dba1f76db7
2 changed files with 21 additions and 15 deletions

View File

@ -4,9 +4,9 @@ import { HStack } from '@renderer/components/Layout'
import SelectModelPopup from '@renderer/components/Popups/SelectModelPopup'
import { DEFAULT_CONTEXTCOUNT, DEFAULT_TEMPERATURE } from '@renderer/config/constant'
import { SettingRow } from '@renderer/pages/settings'
import { Assistant, AssistantSettings } from '@renderer/types'
import { Assistant, AssistantSettingCustomParameters, AssistantSettings } from '@renderer/types'
import { Button, Col, Divider, Input, InputNumber, Row, Select, Slider, Switch, Tooltip } from 'antd'
import { FC, useState } from 'react'
import { FC, useEffect, useRef, useState } from 'react'
import { useTranslation } from 'react-i18next'
import styled from 'styled-components'
@ -25,13 +25,14 @@ const AssistantModelSettings: FC<Props> = ({ assistant, updateAssistant, updateA
const [streamOutput, setStreamOutput] = useState(assistant?.settings?.streamOutput ?? true)
const [defaultModel, setDefaultModel] = useState(assistant?.defaultModel)
const [topP, setTopP] = useState(assistant?.settings?.topP ?? 1)
const [customParameters, setCustomParameters] = useState<
Array<{
name: string
value: string | number | boolean | object
type: 'string' | 'number' | 'boolean' | 'json'
}>
>(assistant?.settings?.customParameters ?? [])
const [customParameters, setCustomParameters] = useState<AssistantSettingCustomParameters[]>(
assistant?.settings?.customParameters ?? []
)
const customParametersRef = useRef(customParameters)
customParametersRef.current = customParameters
const { t } = useTranslation()
const onTemperatureChange = (value) => {
@ -95,7 +96,6 @@ const AssistantModelSettings: FC<Props> = ({ assistant, updateAssistant, updateA
newParams[index] = { ...newParams[index], [field]: value }
}
setCustomParameters(newParams)
updateAssistantSettings({ customParameters: newParams })
}
const renderParameterValueInput = (param: (typeof customParameters)[0], index: number) => {
@ -176,6 +176,10 @@ const AssistantModelSettings: FC<Props> = ({ assistant, updateAssistant, updateA
}
}
useEffect(() => {
return () => updateAssistantSettings({ customParameters: customParametersRef.current })
}, [])
return (
<Container>
<Row align="middle" style={{ marginBottom: 10 }}>

View File

@ -21,6 +21,12 @@ export type AssistantMessage = {
content: string
}
export type AssistantSettingCustomParameters = {
name: string
value: string | number | boolean | object
type: 'string' | 'number' | 'boolean' | 'json'
}
export type AssistantSettings = {
contextCount: number
temperature: number
@ -30,11 +36,7 @@ export type AssistantSettings = {
streamOutput: boolean
hideMessages: boolean
autoResetModel: boolean
customParameters?: {
name: string
value: string | number | boolean | object
type: 'string' | 'number' | 'boolean' | 'json'
}[]
customParameters?: AssistantSettingCustomParameters[]
}
export type Agent = Omit<Assistant, 'model'>