diff --git a/gallery/arch-function.yaml b/gallery/arch-function.yaml
new file mode 100644
index 00000000..dc8f290a
--- /dev/null
+++ b/gallery/arch-function.yaml
@@ -0,0 +1,66 @@
+---
+name: "chatml"
+
+config_file: |
+ mmap: true
+ function:
+ disable_no_action: true
+ grammar:
+ mixed_mode: false
+ disable: true
+ parallel_calls: true
+ expect_strings_after_json: true
+ json_regex_match:
+ - "(?s)(.*?)"
+ - "(?s)(.*)"
+ capture_llm_results:
+ - (?s)(.*?)
+ replace_llm_results:
+ - key: (?s)(.*?)
+ value: ""
+ template:
+ chat_message: |
+ <|im_start|>{{ .RoleName }}
+ {{ if .FunctionCall -}}
+ Function call:
+ {{ else if eq .RoleName "tool" -}}
+ Function response:
+ {{ end -}}
+ {{ if .Content -}}
+ {{.Content }}
+ {{ end -}}
+ {{ if .FunctionCall -}}
+ {{toJson .FunctionCall}}
+ {{ end -}}<|im_end|>
+ function: |
+ <|im_start|>system
+ # Tools
+
+ You may call one or more functions to assist with the user query.
+
+ You are provided with function signatures within XML tags:
+
+ {{range .Functions}}
+ {'type': 'function', 'function': {'name': '{{.Name}}', 'description': '{{.Description}}', 'parameters': {{toJson .Parameters}} }}
+ {{end}}
+
+ For each function call, return a json object with function name and arguments within XML tags:
+
+ {"name": , "arguments": }
+
+ <|im_end|>
+ {{.Input -}}
+ <|im_start|>assistant
+ chat: |
+ {{.Input -}}
+ <|im_start|>assistant
+ completion: |
+ {{.Input}}
+ context_size: 4096
+ f16: true
+ stopwords:
+ - '<|im_end|>'
+ - ''
+ - ''
+ - "<|eot_id|>"
+ - "<|end_of_text|>"
\ No newline at end of file