Skip to content

Commit 31ad142

Browse files
committed
readme
1 parent 8db9fd9 commit 31ad142

File tree

1 file changed

+46
-1
lines changed

1 file changed

+46
-1
lines changed

packages/ollama-utils/README.md

Lines changed: 46 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,50 @@ Documentation: https://huggingface.co/docs/hub/en/ollama
77
## Chat template converter
88

99
```ts
10-
const
10+
import { convertJinjaToGoTemplate } from "@huggingface/ollama-utils";
11+
12+
const MODEL_INFO_URL = "https://huggingface.co/api/models/bartowski/Llama-3.2-3B-Instruct-GGUF?expand[]=gguf";
13+
const modelInfo = await (await fetch(MODEL_INFO_URL)).json();
14+
console.log(modelInfo);
15+
/**
16+
* {
17+
* gguf: {
18+
* chat_template: "here is the Jinja chat template",
19+
* bos_token: "...",
20+
* eos_token: "...",
21+
* [...]
22+
* }
23+
* }
24+
*/
25+
const convertedTemplate = convertJinjaToGoTemplate(modelInfo.gguf);
26+
if (convertedTemplate) {
27+
console.log(convertedTemplate.ollama);
28+
/**
29+
* {
30+
* template: "this is the converted template, compatible with Ollama",
31+
* tokens: [... list of special tokens],
32+
* params: {
33+
* stop: [... list of stop tokens or stop words]
34+
* }
35+
* }
36+
*/
37+
} else {
38+
console.error("Conversion is not successful");
39+
}
1140
```
41+
42+
## How can I add a custom template?
43+
44+
Most templates will be converted automatically. You can debug the output template using:
45+
- This space to retrieve the converted template: https://huggingface.co/spaces/ngxson/debug_ollama_manifest
46+
- And this space to apply the Go template into a list of messages: https://huggingface.co/spaces/ngxson/ollama_template_test
47+
48+
Please only add a new template only when the conversion above is not successful. Cases that are acceptable to add a custom handler:
49+
- The covnerted template is wrong
50+
- The Jinja template is not compatible with `@huggingface/jinja`
51+
- The Jinja template is not "linear"
52+
53+
To add a new custom handler:
54+
1. Edit the list of `CUSTOM_TEMPLATE_MAPPING` inside `chat-template.ts`
55+
2. Add a new test case in `chat-template.spec.ts`
56+
3. hen push your change into new PR.

0 commit comments

Comments
 (0)