mirror of
https://github.com/SillyTavern/SillyTavern.git
synced 2025-06-05 21:59:27 +02:00
Merge pull request #3434 from sirius422/add-gemini-models
Add new gemini models and update the safety settings
This commit is contained in:
@@ -3075,8 +3075,11 @@
|
|||||||
<option value="gemini-1.0-ultra-latest">Gemini 1.0 Ultra</option>
|
<option value="gemini-1.0-ultra-latest">Gemini 1.0 Ultra</option>
|
||||||
</optgroup>
|
</optgroup>
|
||||||
<optgroup label="Subversions">
|
<optgroup label="Subversions">
|
||||||
<option value="gemini-2.0-flash-lite-preview-02-05">Gemini 2.0 Flash Lite Preview 2025-02-05</option>
|
<option value="gemini-2.0-pro-exp">Gemini 2.0 Pro Experimental</option>
|
||||||
<option value="gemini-2.0-pro-exp-02-05">Gemini 2.0 Pro Experimental 2025-02-05</option>
|
<option value="gemini-2.0-pro-exp-02-05">Gemini 2.0 Pro Experimental 2025-02-05</option>
|
||||||
|
<option value="gemini-2.0-flash-lite-preview">Gemini 2.0 Flash-Lite Preview</option>
|
||||||
|
<option value="gemini-2.0-flash-lite-preview-02-05">Gemini 2.0 Flash-Lite Preview 2025-02-05</option>
|
||||||
|
<option value="gemini-2.0-flash-001">Gemini 2.0 Flash [001]</option>
|
||||||
<option value="gemini-2.0-flash-thinking-exp">Gemini 2.0 Flash Thinking Experimental</option>
|
<option value="gemini-2.0-flash-thinking-exp">Gemini 2.0 Flash Thinking Experimental</option>
|
||||||
<option value="gemini-2.0-flash-thinking-exp-01-21">Gemini 2.0 Flash Thinking Experimental 2025-01-21</option>
|
<option value="gemini-2.0-flash-thinking-exp-01-21">Gemini 2.0 Flash Thinking Experimental 2025-01-21</option>
|
||||||
<option value="gemini-2.0-flash-thinking-exp-1219">Gemini 2.0 Flash Thinking Experimental 2024-12-19</option>
|
<option value="gemini-2.0-flash-thinking-exp-1219">Gemini 2.0 Flash Thinking Experimental 2024-12-19</option>
|
||||||
|
@@ -53,6 +53,12 @@
|
|||||||
<option data-type="anthropic" value="claude-3-opus-20240229">claude-3-opus-20240229</option>
|
<option data-type="anthropic" value="claude-3-opus-20240229">claude-3-opus-20240229</option>
|
||||||
<option data-type="anthropic" value="claude-3-sonnet-20240229">claude-3-sonnet-20240229</option>
|
<option data-type="anthropic" value="claude-3-sonnet-20240229">claude-3-sonnet-20240229</option>
|
||||||
<option data-type="anthropic" value="claude-3-haiku-20240307">claude-3-haiku-20240307</option>
|
<option data-type="anthropic" value="claude-3-haiku-20240307">claude-3-haiku-20240307</option>
|
||||||
|
<option data-type="google" value="gemini-2.0-pro-exp">gemini-2.0-pro-exp</option>
|
||||||
|
<option data-type="google" value="gemini-2.0-pro-exp-02-05">gemini-2.0-pro-exp-02-05</option>
|
||||||
|
<option data-type="google" value="gemini-2.0-flash-lite-preview">gemini-2.0-flash-lite-preview</option>
|
||||||
|
<option data-type="google" value="gemini-2.0-flash-lite-preview-02-05">gemini-2.0-flash-lite-preview-02-05</option>
|
||||||
|
<option data-type="google" value="gemini-2.0-flash">gemini-2.0-flash</option>
|
||||||
|
<option data-type="google" value="gemini-2.0-flash-001">gemini-2.0-flash-001</option>
|
||||||
<option data-type="google" value="gemini-2.0-flash-exp">gemini-2.0-flash-exp</option>
|
<option data-type="google" value="gemini-2.0-flash-exp">gemini-2.0-flash-exp</option>
|
||||||
<option data-type="google" value="gemini-2.0-flash-thinking-exp">gemini-2.0-flash-thinking-exp</option>
|
<option data-type="google" value="gemini-2.0-flash-thinking-exp">gemini-2.0-flash-thinking-exp</option>
|
||||||
<option data-type="google" value="gemini-2.0-flash-thinking-exp-01-21">gemini-2.0-flash-thinking-exp-01-21</option>
|
<option data-type="google" value="gemini-2.0-flash-thinking-exp-01-21">gemini-2.0-flash-thinking-exp-01-21</option>
|
||||||
|
@@ -4239,9 +4239,9 @@ async function onModelChange() {
|
|||||||
$('#openai_max_context').attr('max', max_2mil);
|
$('#openai_max_context').attr('max', max_2mil);
|
||||||
} else if (value.includes('gemini-exp-1114') || value.includes('gemini-exp-1121') || value.includes('gemini-2.0-flash-thinking-exp-1219')) {
|
} else if (value.includes('gemini-exp-1114') || value.includes('gemini-exp-1121') || value.includes('gemini-2.0-flash-thinking-exp-1219')) {
|
||||||
$('#openai_max_context').attr('max', max_32k);
|
$('#openai_max_context').attr('max', max_32k);
|
||||||
} else if (value.includes('gemini-1.5-pro') || value.includes('gemini-exp-1206')) {
|
} else if (value.includes('gemini-1.5-pro') || value.includes('gemini-exp-1206') || value.includes('gemini-2.0-pro')) {
|
||||||
$('#openai_max_context').attr('max', max_2mil);
|
$('#openai_max_context').attr('max', max_2mil);
|
||||||
} else if (value.includes('gemini-1.5-flash') || value.includes('gemini-2.0-flash-exp') || value.includes('gemini-2.0-flash-thinking-exp')) {
|
} else if (value.includes('gemini-1.5-flash') || value.includes('gemini-2.0-flash')) {
|
||||||
$('#openai_max_context').attr('max', max_1mil);
|
$('#openai_max_context').attr('max', max_1mil);
|
||||||
} else if (value.includes('gemini-1.0-pro') || value === 'gemini-pro') {
|
} else if (value.includes('gemini-1.0-pro') || value === 'gemini-pro') {
|
||||||
$('#openai_max_context').attr('max', max_32k);
|
$('#openai_max_context').attr('max', max_32k);
|
||||||
@@ -4934,6 +4934,12 @@ export function isImageInliningSupported() {
|
|||||||
// gultra just isn't being offered as multimodal, thanks google.
|
// gultra just isn't being offered as multimodal, thanks google.
|
||||||
const visionSupportedModels = [
|
const visionSupportedModels = [
|
||||||
'gpt-4-vision',
|
'gpt-4-vision',
|
||||||
|
'gemini-2.0-pro-exp',
|
||||||
|
'gemini-2.0-pro-exp-02-05',
|
||||||
|
'gemini-2.0-flash-lite-preview',
|
||||||
|
'gemini-2.0-flash-lite-preview-02-05',
|
||||||
|
'gemini-2.0-flash',
|
||||||
|
'gemini-2.0-flash-001',
|
||||||
'gemini-2.0-flash-thinking-exp-1219',
|
'gemini-2.0-flash-thinking-exp-1219',
|
||||||
'gemini-2.0-flash-thinking-exp-01-21',
|
'gemini-2.0-flash-thinking-exp-01-21',
|
||||||
'gemini-2.0-flash-thinking-exp',
|
'gemini-2.0-flash-thinking-exp',
|
||||||
|
@@ -139,19 +139,19 @@ export const UNSAFE_EXTENSIONS = [
|
|||||||
export const GEMINI_SAFETY = [
|
export const GEMINI_SAFETY = [
|
||||||
{
|
{
|
||||||
category: 'HARM_CATEGORY_HARASSMENT',
|
category: 'HARM_CATEGORY_HARASSMENT',
|
||||||
threshold: 'BLOCK_NONE',
|
threshold: 'OFF',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
category: 'HARM_CATEGORY_HATE_SPEECH',
|
category: 'HARM_CATEGORY_HATE_SPEECH',
|
||||||
threshold: 'BLOCK_NONE',
|
threshold: 'OFF',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
category: 'HARM_CATEGORY_SEXUALLY_EXPLICIT',
|
category: 'HARM_CATEGORY_SEXUALLY_EXPLICIT',
|
||||||
threshold: 'BLOCK_NONE',
|
threshold: 'OFF',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
category: 'HARM_CATEGORY_DANGEROUS_CONTENT',
|
category: 'HARM_CATEGORY_DANGEROUS_CONTENT',
|
||||||
threshold: 'BLOCK_NONE',
|
threshold: 'OFF',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
category: 'HARM_CATEGORY_CIVIC_INTEGRITY',
|
category: 'HARM_CATEGORY_CIVIC_INTEGRITY',
|
||||||
|
@@ -316,9 +316,15 @@ async function sendMakerSuiteRequest(request, response) {
|
|||||||
const prompt = convertGooglePrompt(request.body.messages, model, should_use_system_prompt, getPromptNames(request));
|
const prompt = convertGooglePrompt(request.body.messages, model, should_use_system_prompt, getPromptNames(request));
|
||||||
let safetySettings = GEMINI_SAFETY;
|
let safetySettings = GEMINI_SAFETY;
|
||||||
|
|
||||||
if (model.includes('gemini-2.0-flash-exp')) {
|
// These old models do not support setting the threshold to OFF at all.
|
||||||
|
if (['gemini-1.5-pro-001', 'gemini-1.5-flash-001', 'gemini-1.0-pro-001'].includes(model)) {
|
||||||
|
safetySettings = GEMINI_SAFETY.map(setting => ({ ...setting, threshold: 'BLOCK_NONE' }));
|
||||||
|
}
|
||||||
|
// Interestingly, Gemini 2.0 Flash does support setting the threshold for HARM_CATEGORY_CIVIC_INTEGRITY to OFF.
|
||||||
|
else if (['gemini-2.0-flash', 'gemini-2.0-flash-001', 'gemini-2.0-flash-exp'].includes(model)) {
|
||||||
safetySettings = GEMINI_SAFETY.map(setting => ({ ...setting, threshold: 'OFF' }));
|
safetySettings = GEMINI_SAFETY.map(setting => ({ ...setting, threshold: 'OFF' }));
|
||||||
}
|
}
|
||||||
|
// Most of the other models allow for setting the threshold of filters, except for HARM_CATEGORY_CIVIC_INTEGRITY, to OFF.
|
||||||
|
|
||||||
let body = {
|
let body = {
|
||||||
contents: prompt.contents,
|
contents: prompt.contents,
|
||||||
|
@@ -360,6 +360,12 @@ export function convertCohereMessages(messages, names) {
|
|||||||
*/
|
*/
|
||||||
export function convertGooglePrompt(messages, model, useSysPrompt, names) {
|
export function convertGooglePrompt(messages, model, useSysPrompt, names) {
|
||||||
const visionSupportedModels = [
|
const visionSupportedModels = [
|
||||||
|
'gemini-2.0-pro-exp',
|
||||||
|
'gemini-2.0-pro-exp-02-05',
|
||||||
|
'gemini-2.0-flash-lite-preview',
|
||||||
|
'gemini-2.0-flash-lite-preview-02-05',
|
||||||
|
'gemini-2.0-flash',
|
||||||
|
'gemini-2.0-flash-001',
|
||||||
'gemini-2.0-flash-thinking-exp',
|
'gemini-2.0-flash-thinking-exp',
|
||||||
'gemini-2.0-flash-thinking-exp-01-21',
|
'gemini-2.0-flash-thinking-exp-01-21',
|
||||||
'gemini-2.0-flash-thinking-exp-1219',
|
'gemini-2.0-flash-thinking-exp-1219',
|
||||||
|
Reference in New Issue
Block a user