mirror of
https://github.com/SillyTavern/SillyTavern.git
synced 2025-06-05 21:59:27 +02:00
Add dialogue examples to chat completion
This commit is contained in:
@ -29,7 +29,7 @@ import {groups, selected_group} from "./group-chats.js";
|
|||||||
import {
|
import {
|
||||||
defaultPromptManagerSettings,
|
defaultPromptManagerSettings,
|
||||||
openAiDefaultPromptLists,
|
openAiDefaultPromptLists,
|
||||||
openAiDefaultPrompts,
|
openAiDefaultPrompts, Prompt,
|
||||||
PromptManagerModule as PromptManager
|
PromptManagerModule as PromptManager
|
||||||
} from "./PromptManager.js";
|
} from "./PromptManager.js";
|
||||||
|
|
||||||
@ -416,20 +416,33 @@ async function prepareOpenAIMessages({
|
|||||||
});
|
});
|
||||||
|
|
||||||
// Chat History
|
// Chat History
|
||||||
const startNewChat = selected_group ? '[Start a new group chat. Group members: ${names}]' : '[Start a new Chat]';
|
|
||||||
chatCompletion.add(new MessageCollection('chatHistory'), prompts.index('chatHistory'));
|
chatCompletion.add(new MessageCollection('chatHistory'), prompts.index('chatHistory'));
|
||||||
chatCompletion.insert(new Message('system', startNewChat, 'newMainChat'), 'chatHistory');
|
const mainChat = selected_group ? '[Start a new group chat. Group members: ${names}]' : '[Start a new Chat]';
|
||||||
|
const mainChatMessage = new Message('system', mainChat, 'newMainChat');
|
||||||
|
|
||||||
// Insert chat messages
|
// Insert chat messages
|
||||||
|
if (chatCompletion.canAfford(mainChatMessage)) {
|
||||||
|
chatCompletion.insert(mainChatMessage, 'chatHistory');
|
||||||
[...openai_msgs].reverse().forEach((prompt, index) => {
|
[...openai_msgs].reverse().forEach((prompt, index) => {
|
||||||
const chatMessage = new Message(prompt.role, prompt.content, 'chatHistory-' + index);
|
const chatMessage = new Message(prompt.role, prompt.content, 'chatHistory-' + index);
|
||||||
if (chatCompletion.canAfford(chatMessage)) {
|
if (chatCompletion.canAfford(chatMessage)) {
|
||||||
chatCompletion.insert(chatMessage, 'chatHistory');
|
chatCompletion.insert(chatMessage, 'chatHistory');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
// Insert chat message examples if there's enough budget
|
// Insert chat message examples if there's enough budget
|
||||||
//ToDo
|
chatCompletion.add(new MessageCollection('dialogueExamples'), prompts.index('dialogueExamples'));
|
||||||
|
if (chatCompletion.canAfford(mainChatMessage)) {
|
||||||
|
// Insert dialogue examples messages
|
||||||
|
chatCompletion.insert(mainChatMessage, 'dialogueExamples');
|
||||||
|
[...openai_msgs_example].forEach((prompt, index) => {
|
||||||
|
const chatMessage = new Message(prompt[0].role || '', prompt[0].content || '', 'dialogueExamples-' + index);
|
||||||
|
if (chatCompletion.canAfford(chatMessage)) {
|
||||||
|
chatCompletion.insert(chatMessage, 'dialogueExamples');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
const chat = chatCompletion.getChat();
|
const chat = chatCompletion.getChat();
|
||||||
openai_messages_count = chat.filter(x => x.role === "user" || x.role === "assistant").length;
|
openai_messages_count = chat.filter(x => x.role === "user" || x.role === "assistant").length;
|
||||||
|
Reference in New Issue
Block a user