Browse Source

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
H0llyW00dzZ 1 year ago
parent
commit
d2d615c84a
2 changed files with 22 additions and 17 deletions
  1. 3 2
      app/constant.ts
  2. 19 15
      app/store/chat.ts

+ 3 - 2
app/constant.ts

@@ -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";
 

+ 19 - 15
app/store/chat.ts

@@ -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