diff --git a/common/chaton.hpp b/common/chaton.hpp
index 38df0790e..4f6436dbb 100644
--- a/common/chaton.hpp
+++ b/common/chaton.hpp
@@ -307,7 +307,8 @@ public:
};
-ChatTemplates gCT = {{}};
+#include "chaton_meta.hpp"
+//ChatTemplates gCT = {{}};
#ifdef CHATON_JSON
diff --git a/common/chaton_meta.hpp b/common/chaton_meta.hpp
new file mode 100644
index 000000000..3db8c08be
--- /dev/null
+++ b/common/chaton_meta.hpp
@@ -0,0 +1,287 @@
+//This is auto created/converted from chaton-meta-json file
+#pragma once
+
+#include "chaton.hpp"
+
+ChatTemplates gCT = {{
+ { "llama2", {
+ { "global-begin", "" },
+ { "global-end", "" },
+ { "system-begin", "" },
+ { "system-prefix", "[INST] <>\n" },
+ { "system-suffix", "\n<> " },
+ { "system-end", "[/INST]\n\n" },
+ { "user-begin", "" },
+ { "user-prefix", "[INST] " },
+ { "user-suffix", " [/INST]\n\n" },
+ { "user-end", "" },
+ { "assistant-begin", "" },
+ { "assistant-prefix", "" },
+ { "assistant-suffix", "" },
+ { "assistant-end", "" },
+ { "systemuser-system-has-suffix", true },
+ { "systemuser-system-has-end", false },
+ { "systemuser-1st-user-has-begin", false },
+ { "systemuser-1st-user-has-prefix", false },
+ }},
+ { "llama3", {
+ { "global-begin", "" },
+ { "global-end", "" },
+ { "system-begin", "" },
+ { "system-prefix", "<|start_header_id|>system<|end_header_id|>\n" },
+ { "system-suffix", "<|eot_id|>\n\n" },
+ { "system-end", "" },
+ { "user-begin", "" },
+ { "user-prefix", "<|start_header_id|>user<|end_header_id|>\n" },
+ { "user-suffix", "<|eot_id|>\n\n" },
+ { "user-end", "" },
+ { "assistant-begin", "" },
+ { "assistant-prefix", "<|start_header_id|>assistant<|end_header_id|>\n" },
+ { "assistant-suffix", "<|eot_id|>\n\n" },
+ { "assistant-end", "" },
+ { "systemuser-system-has-suffix", true },
+ { "systemuser-system-has-end", true },
+ { "systemuser-1st-user-has-begin", true },
+ { "systemuser-1st-user-has-prefix", true },
+ }},
+ { "chatml", {
+ { "global-begin", "" },
+ { "global-end", "" },
+ { "system-begin", "" },
+ { "system-prefix", "<|im_start|>system\n" },
+ { "system-suffix", "<|im_end|>\n" },
+ { "system-end", "" },
+ { "user-begin", "" },
+ { "user-prefix", "<|im_start|>user\n" },
+ { "user-suffix", "<|im_end|>\n" },
+ { "user-end", "" },
+ { "assistant-begin", "" },
+ { "assistant-prefix", "<|im_start|>assistant\n" },
+ { "assistant-suffix", "<|im_end|>\n" },
+ { "assistant-end", "" },
+ { "systemuser-system-has-suffix", true },
+ { "systemuser-system-has-end", true },
+ { "systemuser-1st-user-has-begin", true },
+ { "systemuser-1st-user-has-prefix", true },
+ }},
+ { "zephyr", {
+ { "global-begin", "" },
+ { "global-end", "" },
+ { "system-begin", "" },
+ { "system-prefix", "<|system|>\n" },
+ { "system-suffix", "" },
+ { "system-end", "\n" },
+ { "user-begin", "" },
+ { "user-prefix", "<|user|>\n" },
+ { "user-suffix", "" },
+ { "user-end", "\n" },
+ { "assistant-begin", "" },
+ { "assistant-prefix", "<|assistant|>\n" },
+ { "assistant-suffix", "" },
+ { "assistant-end", "\n" },
+ { "systemuser-system-has-suffix", true },
+ { "systemuser-system-has-end", true },
+ { "systemuser-1st-user-has-begin", true },
+ { "systemuser-1st-user-has-prefix", true },
+ }},
+ { "gemma", {
+ { "global-begin", "" },
+ { "global-end", "" },
+ { "system-begin", "" },
+ { "system-prefix", "user\n" },
+ { "system-suffix", "\n" },
+ { "system-end", "" },
+ { "user-begin", "" },
+ { "user-prefix", "user\n" },
+ { "user-suffix", "\n" },
+ { "user-end", "" },
+ { "assistant-begin", "" },
+ { "assistant-prefix", "model\n" },
+ { "assistant-suffix", "\n" },
+ { "assistant-end", "" },
+ { "systemuser-system-has-suffix", true },
+ { "systemuser-system-has-end", false },
+ { "systemuser-1st-user-has-begin", true },
+ { "systemuser-1st-user-has-prefix", true },
+ }},
+ { "deepseek-coder", {
+ { "global-begin", "" },
+ { "global-end", "" },
+ { "system-begin", "\n<|begin▁of▁sentence|>" },
+ { "system-prefix", "" },
+ { "system-suffix", "\n" },
+ { "system-end", "" },
+ { "user-begin", "" },
+ { "user-prefix", "### Instruction:\n" },
+ { "user-suffix", "\n" },
+ { "user-end", "" },
+ { "assistant-begin", "" },
+ { "assistant-prefix", "### Response:\n" },
+ { "assistant-suffix", "\n<|EOT|>\n" },
+ { "assistant-end", "" },
+ { "systemuser-system-has-suffix", true },
+ { "systemuser-system-has-end", false },
+ { "systemuser-1st-user-has-begin", false },
+ { "systemuser-1st-user-has-prefix", true },
+ }},
+ { "deepseek", {
+ { "global-begin", "" },
+ { "global-end", "" },
+ { "system-begin", "<|begin▁of▁sentence|>" },
+ { "system-prefix", "" },
+ { "system-suffix", "\n\n" },
+ { "system-end", "" },
+ { "user-begin", "<|begin▁of▁sentence|>" },
+ { "user-prefix", "User: " },
+ { "user-suffix", "\n\n" },
+ { "user-end", "" },
+ { "assistant-begin", "" },
+ { "assistant-prefix", "Assistant: " },
+ { "assistant-suffix", " <|end▁of▁sentence|>\n" },
+ { "assistant-end", "" },
+ { "systemuser-system-has-suffix", true },
+ { "systemuser-system-has-end", false },
+ { "systemuser-1st-user-has-begin", false },
+ { "systemuser-1st-user-has-prefix", true },
+ }},
+ { "monarch", {
+ { "global-begin", "" },
+ { "global-end", "" },
+ { "system-begin", "" },
+ { "system-prefix", "system\n" },
+ { "system-suffix", "" },
+ { "system-end", "\n" },
+ { "user-begin", "" },
+ { "user-prefix", "user\n" },
+ { "user-suffix", "" },
+ { "user-end", "\n" },
+ { "assistant-begin", "" },
+ { "assistant-prefix", "assistant\n" },
+ { "assistant-suffix", "" },
+ { "assistant-end", "\n" },
+ { "systemuser-system-has-suffix", true },
+ { "systemuser-system-has-end", true },
+ { "systemuser-1st-user-has-begin", true },
+ { "systemuser-1st-user-has-prefix", true },
+ }},
+ { "mistral", {
+ { "global-begin", "" },
+ { "global-end", "" },
+ { "system-begin", "" },
+ { "system-prefix", "[INST] " },
+ { "system-suffix", " [/INST]" },
+ { "system-end", "\n" },
+ { "user-begin", "" },
+ { "user-prefix", "[INST] " },
+ { "user-suffix", " [/INST]" },
+ { "user-end", "\n" },
+ { "assistant-begin", "" },
+ { "assistant-prefix", "" },
+ { "assistant-suffix", "" },
+ { "assistant-end", " \n" },
+ { "systemuser-system-has-suffix", false },
+ { "systemuser-system-has-end", true },
+ { "systemuser-1st-user-has-begin", false },
+ { "systemuser-1st-user-has-prefix", false },
+ }},
+ { "phi3", {
+ { "global-begin", "" },
+ { "global-end", "" },
+ { "system-begin", "" },
+ { "system-prefix", "<|system|>\n" },
+ { "system-suffix", "<|end|>\n" },
+ { "system-end", "" },
+ { "user-begin", "" },
+ { "user-prefix", "<|user|>\n" },
+ { "user-suffix", "<|end|>\n" },
+ { "user-end", "" },
+ { "assistant-begin", "" },
+ { "assistant-prefix", "<|assistant|>\n" },
+ { "assistant-suffix", "<|end|>\n" },
+ { "assistant-end", "" },
+ { "systemuser-system-has-suffix", true },
+ { "systemuser-system-has-end", true },
+ { "systemuser-1st-user-has-begin", true },
+ { "systemuser-1st-user-has-prefix", true },
+ }},
+ { "command-r", {
+ { "global-begin", "" },
+ { "global-end", "" },
+ { "system-begin", "" },
+ { "system-prefix", "<|START_OF_TURN_TOKEN|><|SYSTEM_TOKEN|>" },
+ { "system-suffix", "<|END_OF_TURN_TOKEN|>" },
+ { "system-end", "" },
+ { "user-begin", "" },
+ { "user-prefix", "<|START_OF_TURN_TOKEN|><|USER_TOKEN|>" },
+ { "user-suffix", "<|END_OF_TURN_TOKEN|>" },
+ { "user-end", "" },
+ { "assistant-begin", "" },
+ { "assistant-prefix", "<|START_OF_TURN_TOKEN|><|CHATBOT_TOKEN|>" },
+ { "assistant-suffix", "<|END_OF_TURN_TOKEN|>" },
+ { "assistant-end", "" },
+ { "systemuser-system-has-suffix", true },
+ { "systemuser-system-has-end", true },
+ { "systemuser-1st-user-has-begin", true },
+ { "systemuser-1st-user-has-prefix", true },
+ }},
+ { "orion", {
+ { "global-begin", "" },
+ { "global-end", "" },
+ { "system-begin", "" },
+ { "system-prefix", "Human: " },
+ { "system-suffix", "\n\n" },
+ { "system-end", "" },
+ { "user-begin", "" },
+ { "user-prefix", "Human: " },
+ { "user-suffix", "\n\nAssistant: " },
+ { "user-end", "" },
+ { "assistant-begin", "" },
+ { "assistant-prefix", "" },
+ { "assistant-suffix", "" },
+ { "assistant-end", "" },
+ { "systemuser-system-has-suffix", true },
+ { "systemuser-system-has-end", true },
+ { "systemuser-1st-user-has-begin", false },
+ { "systemuser-1st-user-has-prefix", false },
+ }},
+ { "openchat", {
+ { "global-begin", "" },
+ { "global-end", "" },
+ { "system-begin", "" },
+ { "system-prefix", "GPT4 Correct System: " },
+ { "system-suffix", "<|end_of_turn|>" },
+ { "system-end", "" },
+ { "user-begin", "" },
+ { "user-prefix", "GPT4 Correct User: " },
+ { "user-suffix", "<|end_of_turn|>" },
+ { "user-end", "" },
+ { "assistant-begin", "" },
+ { "assistant-prefix", "GPT4 Correct Assistant: " },
+ { "assistant-suffix", "<|end_of_turn|>" },
+ { "assistant-end", "" },
+ { "systemuser-system-has-suffix", true },
+ { "systemuser-system-has-end", true },
+ { "systemuser-1st-user-has-begin", true },
+ { "systemuser-1st-user-has-prefix", true },
+ }},
+ { "vicuna", {
+ { "global-begin", "" },
+ { "global-end", "" },
+ { "system-begin", "" },
+ { "system-prefix", "SYSTEM: " },
+ { "system-suffix", "\n\n" },
+ { "system-end", "" },
+ { "user-begin", "" },
+ { "user-prefix", "USER: " },
+ { "user-suffix", "\n" },
+ { "user-end", "" },
+ { "assistant-begin", "" },
+ { "assistant-prefix", "ASSISTANT: " },
+ { "assistant-suffix", "\n" },
+ { "assistant-end", "" },
+ { "systemuser-system-has-suffix", true },
+ { "systemuser-system-has-end", true },
+ { "systemuser-1st-user-has-begin", true },
+ { "systemuser-1st-user-has-prefix", true },
+ }},
+}};