feat: support custom gemini pro params

This commit is contained in:
Fred Liang 2023-12-24 17:24:04 +08:00
parent 75057f9a91
commit 7c3dfb7bae
No known key found for this signature in database
GPG Key ID: 4DABDA85EF70EC71
2 changed files with 83 additions and 69 deletions

View File

@ -34,6 +34,15 @@ export class GeminiProApi implements LLMApi {
}; };
const requestPayload = { const requestPayload = {
contents: messages, contents: messages,
generationConfig: {
// stopSequences: [
// "Title"
// ],
temperature: modelConfig.temperature,
maxOutputTokens: modelConfig.max_tokens,
topP: modelConfig.top_p,
// "topK": modelConfig.top_k,
},
// stream: options.config.stream, // stream: options.config.stream,
// model: modelConfig.model, // model: modelConfig.model,
// temperature: modelConfig.temperature, // temperature: modelConfig.temperature,

View File

@ -91,79 +91,84 @@ export function ModelConfigList(props: {
} }
></input> ></input>
</ListItem> </ListItem>
<ListItem
title={Locale.Settings.PresencePenalty.Title}
subTitle={Locale.Settings.PresencePenalty.SubTitle}
>
<InputRange
value={props.modelConfig.presence_penalty?.toFixed(1)}
min="-2"
max="2"
step="0.1"
onChange={(e) => {
props.updateConfig(
(config) =>
(config.presence_penalty =
ModalConfigValidator.presence_penalty(
e.currentTarget.valueAsNumber,
)),
);
}}
></InputRange>
</ListItem>
<ListItem {props.modelConfig.model === "gemini-pro" ? null : (
title={Locale.Settings.FrequencyPenalty.Title} <>
subTitle={Locale.Settings.FrequencyPenalty.SubTitle} <ListItem
> title={Locale.Settings.PresencePenalty.Title}
<InputRange subTitle={Locale.Settings.PresencePenalty.SubTitle}
value={props.modelConfig.frequency_penalty?.toFixed(1)} >
min="-2" <InputRange
max="2" value={props.modelConfig.presence_penalty?.toFixed(1)}
step="0.1" min="-2"
onChange={(e) => { max="2"
props.updateConfig( step="0.1"
(config) => onChange={(e) => {
(config.frequency_penalty = props.updateConfig(
ModalConfigValidator.frequency_penalty( (config) =>
e.currentTarget.valueAsNumber, (config.presence_penalty =
)), ModalConfigValidator.presence_penalty(
); e.currentTarget.valueAsNumber,
}} )),
></InputRange> );
</ListItem> }}
></InputRange>
</ListItem>
<ListItem <ListItem
title={Locale.Settings.InjectSystemPrompts.Title} title={Locale.Settings.FrequencyPenalty.Title}
subTitle={Locale.Settings.InjectSystemPrompts.SubTitle} subTitle={Locale.Settings.FrequencyPenalty.SubTitle}
> >
<input <InputRange
type="checkbox" value={props.modelConfig.frequency_penalty?.toFixed(1)}
checked={props.modelConfig.enableInjectSystemPrompts} min="-2"
onChange={(e) => max="2"
props.updateConfig( step="0.1"
(config) => onChange={(e) => {
(config.enableInjectSystemPrompts = e.currentTarget.checked), props.updateConfig(
) (config) =>
} (config.frequency_penalty =
></input> ModalConfigValidator.frequency_penalty(
</ListItem> e.currentTarget.valueAsNumber,
)),
);
}}
></InputRange>
</ListItem>
<ListItem <ListItem
title={Locale.Settings.InputTemplate.Title} title={Locale.Settings.InjectSystemPrompts.Title}
subTitle={Locale.Settings.InputTemplate.SubTitle} subTitle={Locale.Settings.InjectSystemPrompts.SubTitle}
> >
<input <input
type="text" type="checkbox"
value={props.modelConfig.template} checked={props.modelConfig.enableInjectSystemPrompts}
onChange={(e) => onChange={(e) =>
props.updateConfig( props.updateConfig(
(config) => (config.template = e.currentTarget.value), (config) =>
) (config.enableInjectSystemPrompts =
} e.currentTarget.checked),
></input> )
</ListItem> }
></input>
</ListItem>
<ListItem
title={Locale.Settings.InputTemplate.Title}
subTitle={Locale.Settings.InputTemplate.SubTitle}
>
<input
type="text"
value={props.modelConfig.template}
onChange={(e) =>
props.updateConfig(
(config) => (config.template = e.currentTarget.value),
)
}
></input>
</ListItem>
</>
)}
<ListItem <ListItem
title={Locale.Settings.HistoryCount.Title} title={Locale.Settings.HistoryCount.Title}
subTitle={Locale.Settings.HistoryCount.SubTitle} subTitle={Locale.Settings.HistoryCount.SubTitle}