feat: Add Gemini version settings configuration support (close #568)

This commit is contained in:
1808837298@qq.com
2025-02-26 18:19:09 +08:00
parent e19b244e73
commit bf80d71ddf
9 changed files with 98 additions and 39 deletions

View File

@@ -22,6 +22,7 @@ const ModelSetting = () => {
const { t } = useTranslation();
let [inputs, setInputs] = useState({
GeminiSafetySettings: '',
GeminiVersionSettings: '',
});
let [loading, setLoading] = useState(false);
@@ -33,7 +34,8 @@ const ModelSetting = () => {
let newInputs = {};
data.forEach((item) => {
if (
item.key === 'GeminiSafetySettings'
item.key === 'GeminiSafetySettings' ||
item.key === 'GeminiVersionSettings'
) {
item.value = JSON.stringify(JSON.parse(item.value), null, 2);
}

View File

@@ -14,12 +14,18 @@ const GEMINI_SETTING_EXAMPLE = {
'HARM_CATEGORY_CIVIC_INTEGRITY': 'BLOCK_NONE',
};
const GEMINI_VERSION_EXAMPLE = {
'default': 'v1beta',
};
export default function SettingGeminiModel(props) {
const { t } = useTranslation();
const [loading, setLoading] = useState(false);
const [inputs, setInputs] = useState({
GeminiSafetySettings: '',
GeminiVersionSettings: '',
});
const refForm = useRef();
const [inputsRow, setInputsRow] = useState(inputs);
@@ -99,6 +105,27 @@ export default function SettingGeminiModel(props) {
/>
</Col>
</Row>
<Row>
<Col span={16}>
<Form.TextArea
label={t('Gemini版本设置')}
placeholder={t('为一个 JSON 文本,例如:') + '\n' + JSON.stringify(GEMINI_VERSION_EXAMPLE, null, 2)}
field={'GeminiVersionSettings'}
extraText={t('default为默认设置可单独设置每个模型的版本')}
autosize={{ minRows: 6, maxRows: 12 }}
trigger='blur'
stopValidateWithError
rules={[
{
validator: (rule, value) => verifyJSON(value),
message: t('不是合法的 JSON 字符串')
}
]}
onChange={(value) => setInputs({ ...inputs, GeminiVersionSettings: value })}
/>
</Col>
</Row>
<Row>
<Button size='default' onClick={onSubmit}>
{t('保存')}