mirror of
https://github.com/SillyTavern/SillyTavern.git
synced 2025-02-10 09:00:36 +01:00
Append example names to converted Google sysprompt
This commit is contained in:
parent
4ac6bbd515
commit
58152a60c6
@ -253,12 +253,12 @@ async function sendMakerSuiteRequest(request, response) {
|
|||||||
|
|
||||||
function getGeminiBody() {
|
function getGeminiBody() {
|
||||||
const should_use_system_prompt = model === 'gemini-1.5-pro-latest' && request.body.use_makersuite_sysprompt;
|
const should_use_system_prompt = model === 'gemini-1.5-pro-latest' && request.body.use_makersuite_sysprompt;
|
||||||
const prompt = convertGooglePrompt(request.body.messages, model, should_use_system_prompt);
|
const prompt = convertGooglePrompt(request.body.messages, model, should_use_system_prompt, request.body.char_name, request.body.user_name);
|
||||||
let body = {
|
let body = {
|
||||||
contents: prompt.contents,
|
contents: prompt.contents,
|
||||||
safetySettings: GEMINI_SAFETY,
|
safetySettings: GEMINI_SAFETY,
|
||||||
generationConfig: generationConfig,
|
generationConfig: generationConfig,
|
||||||
}
|
};
|
||||||
|
|
||||||
if (should_use_system_prompt) {
|
if (should_use_system_prompt) {
|
||||||
body.system_instruction = prompt.system_instruction;
|
body.system_instruction = prompt.system_instruction;
|
||||||
|
@ -253,9 +253,11 @@ function convertCohereMessages(messages, charName = '', userName = '') {
|
|||||||
* @param {object[]} messages Array of messages
|
* @param {object[]} messages Array of messages
|
||||||
* @param {string} model Model name
|
* @param {string} model Model name
|
||||||
* @param {boolean} useSysPrompt Use system prompt
|
* @param {boolean} useSysPrompt Use system prompt
|
||||||
|
* @param {string} charName Character name
|
||||||
|
* @param {string} userName User name
|
||||||
* @returns {{contents: *[], system_instruction: {parts: {text: string}}}} Prompt for Google MakerSuite models
|
* @returns {{contents: *[], system_instruction: {parts: {text: string}}}} Prompt for Google MakerSuite models
|
||||||
*/
|
*/
|
||||||
function convertGooglePrompt(messages, model, useSysPrompt = false) {
|
function convertGooglePrompt(messages, model, useSysPrompt = false, charName = '', userName = '') {
|
||||||
// This is a 1x1 transparent PNG
|
// This is a 1x1 transparent PNG
|
||||||
const PNG_PIXEL = 'iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=';
|
const PNG_PIXEL = 'iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=';
|
||||||
|
|
||||||
@ -271,12 +273,23 @@ function convertGooglePrompt(messages, model, useSysPrompt = false) {
|
|||||||
let sys_prompt = '';
|
let sys_prompt = '';
|
||||||
if (useSysPrompt) {
|
if (useSysPrompt) {
|
||||||
while (messages.length > 1 && messages[0].role === 'system') {
|
while (messages.length > 1 && messages[0].role === 'system') {
|
||||||
|
// Append example names if not already done by the frontend (e.g. for group chats).
|
||||||
|
if (userName && messages[0].name === 'example_user') {
|
||||||
|
if (!messages[0].content.startsWith(`${userName}: `)) {
|
||||||
|
messages[0].content = `${userName}: ${messages[0].content}`;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (charName && messages[0].name === 'example_assistant') {
|
||||||
|
if (!messages[0].content.startsWith(`${charName}: `)) {
|
||||||
|
messages[0].content = `${charName}: ${messages[0].content}`;
|
||||||
|
}
|
||||||
|
}
|
||||||
sys_prompt += `${messages[0].content}\n\n`;
|
sys_prompt += `${messages[0].content}\n\n`;
|
||||||
messages.shift();
|
messages.shift();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const system_instruction = { parts: { text: sys_prompt.trim() }};
|
const system_instruction = { parts: { text: sys_prompt.trim() } };
|
||||||
|
|
||||||
const contents = [];
|
const contents = [];
|
||||||
messages.forEach((message, index) => {
|
messages.forEach((message, index) => {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user