mirror of
https://github.com/danny-avila/LibreChat.git
synced 2025-12-16 16:30:15 +01:00
🇬 refactor: Update default Google Models and Parameters (#2782)
* Update Google default model and parameters * Update .env.example Vertex AI Models to reflect latest version and deprecate bison family * Update Vertex AI model list in .env.example
This commit is contained in:
parent
f00a8f87f7
commit
9d8fd92dd3
4 changed files with 15 additions and 61 deletions
|
|
@ -119,7 +119,7 @@ GOOGLE_KEY=user_provided
|
||||||
# GOOGLE_MODELS=gemini-1.5-flash-latest,gemini-1.0-pro,gemini-1.0-pro-001,gemini-1.0-pro-latest,gemini-1.0-pro-vision-latest,gemini-1.5-pro-latest,gemini-pro,gemini-pro-vision
|
# GOOGLE_MODELS=gemini-1.5-flash-latest,gemini-1.0-pro,gemini-1.0-pro-001,gemini-1.0-pro-latest,gemini-1.0-pro-vision-latest,gemini-1.5-pro-latest,gemini-pro,gemini-pro-vision
|
||||||
|
|
||||||
# Vertex AI
|
# Vertex AI
|
||||||
# GOOGLE_MODELS=gemini-1.5-flash-preview-0514,gemini-1.5-pro-preview-0409,gemini-1.0-pro-vision-001,gemini-pro,gemini-pro-vision,chat-bison,chat-bison-32k,codechat-bison,codechat-bison-32k,text-bison,text-bison-32k,text-unicorn,code-gecko,code-bison,code-bison-32k
|
# GOOGLE_MODELS=gemini-1.5-flash-preview-0514,gemini-1.5-pro-preview-0514,gemini-1.0-pro-vision-001,gemini-1.0-pro-002,gemini-1.0-pro-001,gemini-pro-vision,gemini-1.0-pro
|
||||||
|
|
||||||
# Google Gemini Safety Settings
|
# Google Gemini Safety Settings
|
||||||
# NOTE (Vertex AI): You do not have access to the BLOCK_NONE setting by default.
|
# NOTE (Vertex AI): You do not have access to the BLOCK_NONE setting by default.
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
import { useEffect } from 'react';
|
|
||||||
import TextareaAutosize from 'react-textarea-autosize';
|
import TextareaAutosize from 'react-textarea-autosize';
|
||||||
import { EModelEndpoint, endpointSettings } from 'librechat-data-provider';
|
import { EModelEndpoint, endpointSettings } from 'librechat-data-provider';
|
||||||
import type { TModelSelectProps, OnInputNumberChange } from '~/common';
|
import type { TModelSelectProps, OnInputNumberChange } from '~/common';
|
||||||
|
|
@ -31,25 +30,6 @@ export default function Settings({ conversation, setOption, models, readonly }:
|
||||||
maxOutputTokens,
|
maxOutputTokens,
|
||||||
} = conversation ?? {};
|
} = conversation ?? {};
|
||||||
|
|
||||||
const isGemini = model?.toLowerCase()?.includes('gemini');
|
|
||||||
|
|
||||||
const maxOutputTokensMax = isGemini
|
|
||||||
? google.maxOutputTokens.maxGemini
|
|
||||||
: google.maxOutputTokens.max;
|
|
||||||
const maxOutputTokensDefault = isGemini
|
|
||||||
? google.maxOutputTokens.defaultGemini
|
|
||||||
: google.maxOutputTokens.default;
|
|
||||||
|
|
||||||
useEffect(
|
|
||||||
() => {
|
|
||||||
if (model) {
|
|
||||||
setOption('maxOutputTokens')(Math.min(Number(maxOutputTokens) ?? 0, maxOutputTokensMax));
|
|
||||||
}
|
|
||||||
},
|
|
||||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
||||||
[model],
|
|
||||||
);
|
|
||||||
|
|
||||||
const [setMaxContextTokens, maxContextTokensValue] = useDebouncedInput<number | null | undefined>(
|
const [setMaxContextTokens, maxContextTokensValue] = useDebouncedInput<number | null | undefined>(
|
||||||
{
|
{
|
||||||
setOption,
|
setOption,
|
||||||
|
|
@ -281,15 +261,15 @@ export default function Settings({ conversation, setOption, models, readonly }:
|
||||||
<Label htmlFor="max-tokens-int" className="text-left text-sm font-medium">
|
<Label htmlFor="max-tokens-int" className="text-left text-sm font-medium">
|
||||||
{localize('com_endpoint_max_output_tokens')}{' '}
|
{localize('com_endpoint_max_output_tokens')}{' '}
|
||||||
<small className="opacity-40">
|
<small className="opacity-40">
|
||||||
({localize('com_endpoint_default_with_num', maxOutputTokensDefault + '')})
|
({localize('com_endpoint_default_with_num', google.maxOutputTokens.default + '')})
|
||||||
</small>
|
</small>
|
||||||
</Label>
|
</Label>
|
||||||
<InputNumber
|
<InputNumber
|
||||||
id="max-tokens-int"
|
id="max-tokens-int"
|
||||||
disabled={readonly}
|
disabled={readonly}
|
||||||
value={maxOutputTokens}
|
value={maxOutputTokens}
|
||||||
onChange={(value) => setMaxOutputTokens(value ?? maxOutputTokensDefault)}
|
onChange={(value) => setMaxOutputTokens(Number(value))}
|
||||||
max={maxOutputTokensMax}
|
max={google.maxOutputTokens.max}
|
||||||
min={google.maxOutputTokens.min}
|
min={google.maxOutputTokens.min}
|
||||||
step={google.maxOutputTokens.step}
|
step={google.maxOutputTokens.step}
|
||||||
controls={false}
|
controls={false}
|
||||||
|
|
@ -304,10 +284,10 @@ export default function Settings({ conversation, setOption, models, readonly }:
|
||||||
</div>
|
</div>
|
||||||
<Slider
|
<Slider
|
||||||
disabled={readonly}
|
disabled={readonly}
|
||||||
value={[maxOutputTokens ?? maxOutputTokensDefault]}
|
value={[maxOutputTokens ?? google.maxOutputTokens.default]}
|
||||||
onValueChange={(value) => setMaxOutputTokens(value[0])}
|
onValueChange={(value) => setMaxOutputTokens(value[0])}
|
||||||
doubleClickHandler={() => setMaxOutputTokens(maxOutputTokensDefault)}
|
doubleClickHandler={() => setMaxOutputTokens(google.maxOutputTokens.default)}
|
||||||
max={maxOutputTokensMax}
|
max={google.maxOutputTokens.max}
|
||||||
min={google.maxOutputTokens.min}
|
min={google.maxOutputTokens.min}
|
||||||
step={google.maxOutputTokens.step}
|
step={google.maxOutputTokens.step}
|
||||||
className="flex h-4 w-full"
|
className="flex h-4 w-full"
|
||||||
|
|
|
||||||
|
|
@ -555,18 +555,6 @@ export const generateGoogleSchema = (customGoogle: GoogleSettings) => {
|
||||||
maxContextTokens: true,
|
maxContextTokens: true,
|
||||||
})
|
})
|
||||||
.transform((obj) => {
|
.transform((obj) => {
|
||||||
const isGemini = obj?.model?.toLowerCase()?.includes('gemini');
|
|
||||||
|
|
||||||
const maxOutputTokensMax = isGemini
|
|
||||||
? defaults.maxOutputTokens.maxGemini
|
|
||||||
: defaults.maxOutputTokens.max;
|
|
||||||
const maxOutputTokensDefault = isGemini
|
|
||||||
? defaults.maxOutputTokens.defaultGemini
|
|
||||||
: defaults.maxOutputTokens.default;
|
|
||||||
|
|
||||||
let maxOutputTokens = obj.maxOutputTokens ?? maxOutputTokensDefault;
|
|
||||||
maxOutputTokens = Math.min(maxOutputTokens, maxOutputTokensMax);
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
...obj,
|
...obj,
|
||||||
model: obj.model ?? defaults.model.default,
|
model: obj.model ?? defaults.model.default,
|
||||||
|
|
@ -574,7 +562,7 @@ export const generateGoogleSchema = (customGoogle: GoogleSettings) => {
|
||||||
promptPrefix: obj.promptPrefix ?? null,
|
promptPrefix: obj.promptPrefix ?? null,
|
||||||
examples: obj.examples ?? [{ input: { content: '' }, output: { content: '' } }],
|
examples: obj.examples ?? [{ input: { content: '' }, output: { content: '' } }],
|
||||||
temperature: obj.temperature ?? defaults.temperature.default,
|
temperature: obj.temperature ?? defaults.temperature.default,
|
||||||
maxOutputTokens,
|
maxOutputTokens: obj.maxOutputTokens ?? defaults.maxOutputTokens.default,
|
||||||
topP: obj.topP ?? defaults.topP.default,
|
topP: obj.topP ?? defaults.topP.default,
|
||||||
topK: obj.topK ?? defaults.topK.default,
|
topK: obj.topK ?? defaults.topK.default,
|
||||||
maxContextTokens: obj.maxContextTokens ?? undefined,
|
maxContextTokens: obj.maxContextTokens ?? undefined,
|
||||||
|
|
|
||||||
|
|
@ -128,27 +128,25 @@ export const openAISettings = {
|
||||||
|
|
||||||
export const googleSettings = {
|
export const googleSettings = {
|
||||||
model: {
|
model: {
|
||||||
default: 'chat-bison',
|
default: 'gemini-1.5-flash-latest',
|
||||||
},
|
},
|
||||||
maxOutputTokens: {
|
maxOutputTokens: {
|
||||||
min: 1,
|
min: 1,
|
||||||
max: 2048,
|
max: 8192,
|
||||||
step: 1,
|
step: 1,
|
||||||
default: 1024,
|
default: 8192,
|
||||||
maxGemini: 8192,
|
|
||||||
defaultGemini: 8192,
|
|
||||||
},
|
},
|
||||||
temperature: {
|
temperature: {
|
||||||
min: 0,
|
min: 0,
|
||||||
max: 1,
|
max: 2,
|
||||||
step: 0.01,
|
step: 0.01,
|
||||||
default: 0.2,
|
default: 1,
|
||||||
},
|
},
|
||||||
topP: {
|
topP: {
|
||||||
min: 0,
|
min: 0,
|
||||||
max: 1,
|
max: 1,
|
||||||
step: 0.01,
|
step: 0.01,
|
||||||
default: 0.8,
|
default: 0.95,
|
||||||
},
|
},
|
||||||
topK: {
|
topK: {
|
||||||
min: 1,
|
min: 1,
|
||||||
|
|
@ -484,18 +482,6 @@ export const googleSchema = tConversationSchema
|
||||||
maxContextTokens: true,
|
maxContextTokens: true,
|
||||||
})
|
})
|
||||||
.transform((obj) => {
|
.transform((obj) => {
|
||||||
const isGemini = obj?.model?.toLowerCase()?.includes('gemini');
|
|
||||||
|
|
||||||
const maxOutputTokensMax = isGemini
|
|
||||||
? google.maxOutputTokens.maxGemini
|
|
||||||
: google.maxOutputTokens.max;
|
|
||||||
const maxOutputTokensDefault = isGemini
|
|
||||||
? google.maxOutputTokens.defaultGemini
|
|
||||||
: google.maxOutputTokens.default;
|
|
||||||
|
|
||||||
let maxOutputTokens = obj.maxOutputTokens ?? maxOutputTokensDefault;
|
|
||||||
maxOutputTokens = Math.min(maxOutputTokens, maxOutputTokensMax);
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
...obj,
|
...obj,
|
||||||
model: obj.model ?? google.model.default,
|
model: obj.model ?? google.model.default,
|
||||||
|
|
@ -503,7 +489,7 @@ export const googleSchema = tConversationSchema
|
||||||
promptPrefix: obj.promptPrefix ?? null,
|
promptPrefix: obj.promptPrefix ?? null,
|
||||||
examples: obj.examples ?? [{ input: { content: '' }, output: { content: '' } }],
|
examples: obj.examples ?? [{ input: { content: '' }, output: { content: '' } }],
|
||||||
temperature: obj.temperature ?? google.temperature.default,
|
temperature: obj.temperature ?? google.temperature.default,
|
||||||
maxOutputTokens,
|
maxOutputTokens: obj.maxOutputTokens ?? google.maxOutputTokens.default,
|
||||||
topP: obj.topP ?? google.topP.default,
|
topP: obj.topP ?? google.topP.default,
|
||||||
topK: obj.topK ?? google.topK.default,
|
topK: obj.topK ?? google.topK.default,
|
||||||
iconURL: obj.iconURL ?? undefined,
|
iconURL: obj.iconURL ?? undefined,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue