Refactor KnowledgeCutoff

[+] fix(constant.ts): update DEFAULT_SYSTEM_TEMPLATE to include knowledgeCutoff and time variables
[+] feat(chat.ts): add support for injecting system prompts based on model configuration
This commit is contained in:
H0llyW00dzZ 2023-11-07 06:42:55 +07:00
parent 9f26c8cecb
commit d2d615c84a
No known key found for this signature in database
GPG Key ID: 05C7FFFC0845C930
2 changed files with 22 additions and 17 deletions

View File

@ -69,9 +69,10 @@ export const OpenaiPath = {
export const DEFAULT_INPUT_TEMPLATE = `{{input}}`; // input / time / model / lang
export const DEFAULT_SYSTEM_TEMPLATE = `
You are ChatGPT, a large language model trained by OpenAI.
Knowledge cutoff: 2021-09
Knowledge cutoff: {{knowledgeCutoff}}
Current model: {{model}}
Current time: {{time}}`;
Current time: {{time}}
`;
export const SUMMARIZE_MODEL = "gpt-3.5-turbo";

View File

@ -401,22 +401,26 @@ export const useChatStore = createPersistStore(
// system prompts, to get close to OpenAI Web ChatGPT
const shouldInjectSystemPrompts = modelConfig.enableInjectSystemPrompts;
const systemPrompts = shouldInjectSystemPrompts
? [
createMessage({
role: "system",
content: fillTemplateWith("", {
...modelConfig,
template: DEFAULT_SYSTEM_TEMPLATE,
}),
}),
]
: [];
let systemPrompts = shouldInjectSystemPrompts ? [] : [];
if (shouldInjectSystemPrompts) {
console.log(
"[Global System Prompt] ",
systemPrompts.at(0)?.content ?? "empty",
);
const model = modelConfig.model;
let systemTemplate = DEFAULT_SYSTEM_TEMPLATE;
if (model === "gpt-4-1106-preview" || model === "gpt-4-vision-preview") {
systemTemplate = systemTemplate.replace("{{knowledgeCutoff}}", "2023-04");
} else {
systemTemplate = systemTemplate.replace("{{knowledgeCutoff}}", "2021-09");
}
const systemPrompt = createMessage({
role: "system",
content: fillTemplateWith("", {
...modelConfig,
template: systemTemplate,
}),
});
console.log("[Global System Prompt] ", systemPrompt.content);
}
// long term memory