From 415160900ced2f791a90aca4645a65741a6f8ca3 Mon Sep 17 00:00:00 2001 From: ModelHub XC Date: Tue, 5 May 2026 15:03:36 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=EF=BC=8C=E7=94=B1ModelHub=20XC=E7=A4=BE=E5=8C=BA=E6=8F=90?= =?UTF-8?q?=E4=BE=9B=E6=A8=A1=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Model: MTSAIR/Kodify-Nano Source: Original Platform --- .gitattributes | 52 +++++++ Apache License MTS AI.docx | Bin 0 -> 22870 bytes README.md | 284 +++++++++++++++++++++++++++++++++++++ added_tokens.json | 24 ++++ config.json | 28 ++++ configuration.json | 1 + generation_config.json | 18 +++ merges.txt | 3 + model.safetensors | 3 + special_tokens_map.json | 31 ++++ tokenizer.json | 3 + tokenizer_config.json | 210 +++++++++++++++++++++++++++ vocab.json | 3 + 13 files changed, 660 insertions(+) create mode 100644 .gitattributes create mode 100644 Apache License MTS AI.docx create mode 100644 README.md create mode 100644 added_tokens.json create mode 100644 config.json create mode 100644 configuration.json create mode 100644 generation_config.json create mode 100644 merges.txt create mode 100644 model.safetensors create mode 100644 special_tokens_map.json create mode 100644 tokenizer.json create mode 100644 tokenizer_config.json create mode 100644 vocab.json diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..460eed9 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,52 @@ +*.7z filter=lfs diff=lfs merge=lfs -text +*.arrow filter=lfs diff=lfs merge=lfs -text +*.bin filter=lfs diff=lfs merge=lfs -text +*.bin.* filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.ftz filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.h5 filter=lfs diff=lfs merge=lfs -text +*.joblib filter=lfs diff=lfs merge=lfs -text +*.lfs.* filter=lfs diff=lfs merge=lfs -text +*.model filter=lfs diff=lfs merge=lfs -text +*.msgpack filter=lfs diff=lfs merge=lfs -text +*.onnx filter=lfs diff=lfs merge=lfs -text +*.ot filter=lfs diff=lfs merge=lfs -text +*.parquet filter=lfs diff=lfs merge=lfs -text +*.pb filter=lfs diff=lfs merge=lfs -text +*.pt filter=lfs diff=lfs merge=lfs -text +*.pth filter=lfs diff=lfs merge=lfs -text +*.rar filter=lfs diff=lfs merge=lfs -text +saved_model/**/* filter=lfs diff=lfs merge=lfs -text +*.tar.* filter=lfs diff=lfs merge=lfs -text +*.tflite filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zstandard filter=lfs diff=lfs merge=lfs -text +*.tfevents* filter=lfs diff=lfs merge=lfs -text +*.db* filter=lfs diff=lfs merge=lfs -text +*.ark* filter=lfs diff=lfs merge=lfs -text +**/*ckpt*data* filter=lfs diff=lfs merge=lfs -text +**/*ckpt*.meta filter=lfs diff=lfs merge=lfs -text +**/*ckpt*.index filter=lfs diff=lfs merge=lfs -text + +*.ckpt filter=lfs diff=lfs merge=lfs -text +*.gguf* filter=lfs diff=lfs merge=lfs -text +*.ggml filter=lfs diff=lfs merge=lfs -text +*.llamafile* filter=lfs diff=lfs merge=lfs -text +*.pt2 filter=lfs diff=lfs merge=lfs -text +*.mlmodel filter=lfs diff=lfs merge=lfs -text +*.npy filter=lfs diff=lfs merge=lfs -text +*.npz filter=lfs diff=lfs merge=lfs -text +*.pickle filter=lfs diff=lfs merge=lfs -text +*.pkl filter=lfs diff=lfs merge=lfs -text +*.tar filter=lfs diff=lfs merge=lfs -text +*.wasm filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text +*tfevents* filter=lfs diff=lfs merge=lfs -text + +merges.txt filter=lfs diff=lfs merge=lfs -text +tokenizer.json filter=lfs diff=lfs merge=lfs -text +vocab.json filter=lfs diff=lfs merge=lfs -text +model.safetensors filter=lfs diff=lfs merge=lfs -text \ No newline at end of file diff --git a/Apache License MTS AI.docx b/Apache License MTS AI.docx new file mode 100644 index 0000000000000000000000000000000000000000..e57046a36b6e30f7dff46a13d31c137d02c5405e GIT binary patch literal 22870 zcmeEt1y>x~)-4t+5Zv9}-QBf=JHegc?(Po3HMj(K3-0d0-90$GPI7YYedB%q;CsDC z_vo(LyKCE;YtB`x6lK66P(dI;pg}-Dh(Oj0rmZwVK|l!KfqXlo~98Kbh|1 zArz(unCeUXK-+5v3K&2IG!E8^n2hCajYYLTU}`zd3I?g(h3puEFWE0a*PMf9X<>)X z#|VpjGm&vkXo%g{inXmBOO_p!k)*ySeoP5gAtOH{08RZKB$_%YMwQe(iUmLL8J%V0 zu6+$WWsU4Jl|nrf&IjEbPhim~=9 z0S5hEkCCBkT)y6R)`C zDomUic&^*eiM_?;jPQbSyBkpR{B42$wJNKMaq|rjro$N@opi~0(+Q|s>l{J6!M&9y z>w9nzkheE*5XJw?B=O_08_$9JOde=)?|~+%XK!rfz(D`&^Z%RT|6=?5uc4R6cU$x@ z!U>)SyaY_O1D3ln^W_-~Cs#0+prEy+WKmWYEf!v1co!GJbPhjBj7-lYOu9Q{h&yd0 z>RezatH6i1!^}VE_Gmq|xq>7GwS8rBo&UTAm%jJY~#ii@qi5rdJfp_4Vx zZ~byuC##mWE0Qe~7kBSZT#CuQEkY<-t�!oPmd@U}YybgROYE<3xA?h-FmeC_nZ@ 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 literal 0 HcmV?d00001 diff --git a/README.md b/README.md new file mode 100644 index 0000000..2cb0f08 --- /dev/null +++ b/README.md @@ -0,0 +1,284 @@ +--- +library_name: transformers +language: +- ru +- en +pipeline_tag: text-generation +license: apache-2.0 +license_name: apache-2.0 +license_link: https://huggingface.co/MTSAIR/Kodify-Nano/blob/main/Apache%20License%20MTS%20AI.docx +--- + + + + +# Kodify-Nano 🤖 + +Kodify-Nano – это легковесная LLM, разработанная для выполнения задач разработки кода с минимальными ресурсами. Она оптимизирована для быстрого и эффективного взаимодействия с пользователями, обеспечивая высокую производительность даже в условиях ограниченных ресурсов. + +Kodify-Nano is a lightweight LLM designed for code development tasks with minimal resource usage. It is optimized for fast and efficient interaction, delivering high performance even in resource-constrained environments. + +## Inference with vLLM +```bash +python3 -m vllm.entrypoints.openai.api_server --model MTSAIR/Kodify-Nano --port 8985 +``` + +> **Important!** If you encounter the **"CUDA out of memory. Tried to allocate..."** error despite having sufficient GPU memory, try one of these solutions: +> 1. Add the --enforce-eager argument +> 2. Reduce GPU memory utilization (for example --gpu-memory-utilization 0.8) +> +> Note: This may decrease model performance. + +--- + +## Using the Ollama Image +You can run Kodify Nano on OLLAMA in two ways: + +1. **Using Docker** +2. **Locally** (provides faster responses than Docker) + +### Method 1: Running Kodify Nano on OLLAMA in Docker + +#### Without NVIDIA GPU: + +```bash +docker run -e OLLAMA_HOST=0.0.0.0:8985 -p 8985:8985 --name ollama -d ollama/ollama +``` + +#### With NVIDIA GPU: + +```bash +docker run --runtime nvidia -e OLLAMA_HOST=0.0.0.0:8985 -p 8985:8985 --name ollama -d ollama/ollama +``` + +> **Important:** +> - Ensure Docker is installed and running +> - If port 8985 is occupied, replace it with any available port and update plugin configuration + +#### Load the model: + +```bash +docker exec ollama ollama pull hf.co/MTSAIR/Kodify-Nano-GGUF +``` + +#### Rename the model: +```bash +docker exec ollama ollama cp hf.co/MTSAIR/Kodify-Nano-GGUF kodify_nano +``` + +#### Start the model: + +```bash +docker exec ollama ollama run kodify_nano +``` +--- + +### Method 2: Local Kodify Nano on OLLAMA + +1. **Download OLLAMA:** +https://ollama.com/download + +2. **Set the port:** + +```bash +export OLLAMA_HOST=0.0.0.0:8985 +``` + +> **Note:** If port 8985 is occupied, replace it and update plugin configuration + +3. **Start OLLAMA server:** + +```bash +ollama serve & +``` + +4. **Download the model:** + +```bash +ollama pull hf.co/MTSAIR/Kodify-Nano-GGUF +``` + +5. **Rename the model:** + +```bash +ollama cp hf.co/MTSAIR/Kodify-Nano-GGUF kodify_nano +``` + +6. **Run the model:** + +```bash +ollama run kodify_nano +``` + +## Plugin Installation + +### For Visual Studio Code + +1. Download the [latest Kodify plugin](https://mts.ai/ru/product/kodify/?utm_source=huggingface&utm_medium=pr&utm_campaign=post#models) for VS Code. +2. Open the **Extensions** panel on the left sidebar. +3. Click **Install from VSIX...** and select the downloaded plugin file. + +### For JetBrains IDEs + +1. Download the [latest Kodify plugin](https://mts.ai/ru/product/kodify/?utm_source=huggingface&utm_medium=pr&utm_campaign=post#models) for JetBrains. +2. Open the IDE and go to **Settings > Plugins**. +3. Click the gear icon (⚙️) and select **Install Plugin from Disk...**. +4. Choose the downloaded plugin file. +5. Restart the IDE when prompted. + +--- + +### Changing the Port in Plugin Settings (for Visual Studio Code and JetBrains) + +If you changed the Docker port from `8985`, update the plugin's `config.json`: + +1. Open any file in the IDE. +2. Open the Kodify sidebar: + - **VS Code**: `Ctrl+L` (`Cmd+L` on Mac). + - **JetBrains**: `Ctrl+J` (`Cmd+J` on Mac). +3. Access the `config.json` file: + - **Method 1**: Click **Open Settings** (VS Code) or **Kodify Config** (JetBrains), then navigate to **Configuration > Chat Settings > Open Config File**. + - **Method 2**: Click the gear icon (⚙️) in the Kodify sidebar. +4. Modify the `apiBase` port under `tabAutocompleteModel` and `models`. +5. Save the file (`Ctrl+S` or **File > Save**). + +--- + + +### Example API Request +```python +import openai + +openai.api_key = 'xxx' # Replace with your key +openai.api_base = 'http://localhost:8985/v1' # Update if port changed + +response = openai.ChatCompletion.create( + model="MTSAIR/Kodify-Nano", + temperature=0.4, + max_tokens=2048, + top_p=0.8, + messages=[ + {"role": "user", "content": "Write a Python algorithm to find all unique words in a text."} + ] +) + +print(response["choices"][0]["message"]["content"]) + +### Inference with Hugging Face + +from transformers import pipeline + +pipe = pipeline("text-generation", model="MTSAIR/Kodify-Nano", device="cuda") + +messages = [ + {"role": "user", "content": "Write a Python algorithm to find all unique words in a text."}, +] + +response = pipe(messages, max_length=1024) +print(response[0]['generated_text'][-1]['content']) +``` +--- + +## Example Interaction + +**User Request:** +*Напиши простой сервер на flask с объяснениями на русском языке.* + +#### Kodify-Nano response: + +>Конечно! Давайте создадим простой сервер на Flask с объяснениями на русском языке. Flask - это мини-модуль для создания веб-приложений на Python, который позволяет быстро и легко разрабатывать приложения с использованием библиотеки Werkzeug. + +>### Установка Flask + +>Для начала, убедитесь, что у вас установлен Python. После этого установите Flask с помощью pip: + +>```sh +>pip install Flask +>``` + +>### Пример простого сервера на Flask + +>Вот пример простого приложения на Flask, которое будет отвечать на запросы на `/hello` и выводить "Hello, World!". + +>1. Создайте новый файл, например, `app.py`. +>2. Откройте файл в текстовом редакторе и вставьте следующий код: + +>```python +>from flask import Flask + +>app = Flask(__name__) + +>@app.route('/hello') +>def hello_world(): +> return 'Hello, World!' + +>if __name__ == '__main__': +> app.run(debug=True) +>``` + +>### Объяснение кода + +>1. **Импорт Flask**: Мы импортируем класс Flask из модуля `flask`. +>2. **Создание экземпляра Flask**: Создаем экземпляр класса Flask с именем `app`. +>3. **Обработчик запросов**: Мы декорируем функцию `hello_world` с помощью `@app.route('/hello')`. Это означает, что при запросе на `/hello` Flask вызовет функцию `hello_world`. +>4. **Возвращение ответа**: Функция `hello_world` возвращает строку `'Hello, World!'`. +>5. **Запуск сервера**: В конце файла добавляем проверку, чтобы при запуске скрипта он запускался в режиме отладки (`debug=True`). + +>### Запуск сервера + +>1. Откройте терминал и перейдите в директорию, в которой находится ваш файл `app.py`. +>2. Запустите скрипт с помощью команды: + +>```sh +>python app.py +>``` +> +>3. Вы увидите сообщение, что сервер запущен на порту 5000. Например: + +>``` +> * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit) +>``` + +>4. Откройте браузер и перейдите на адрес `http://127.0.0.1:5000/hello`. Вы должны увидеть сообщение "Hello, World!". + +>### Дополнительные функции + +>Flask предоставляет множество других функций для создания более сложных приложений. Вот некоторые из них: + +>- **Функции маршрутизации**: Вы можете добавлять дополнительные маршруты, обрабатывать параметры запросов и т.д. +>- **Вьюшки**: Вы можете создавать вьюшки, которые возвращают HTML-страницы. +>- **Сессии**: Вы можете использовать сессии для хранения данных между запросами. +>- **БД**: Вы можете подключаться к базе данных и выполнять запросы. + +>Давайте рассмотрим пример с вьюшкой: + +>```python +>from flask import Flask, render_template + +>app = Flask(__name__) + +>@app.route('/') +>def index(): +> return render_template('index.html') + +>if __name__ == '__main__': +> app.run(debug=True) +>``` + +>1. **Вьюшка**: Создаем файл `templates/index.html` в папке `templates` (если он еще не существует) и добавляем следующий код: +> +>```html +> +> +> +> +> Пример вьюшки +> +> +>

Привет, мир!

+>

Это пример вьюшки на Flask.

+> +> +>``` + +>2. **Запуск сервера**: Сохраните файлы и запустите сервер снова. Откройте браузер и перейдите на адрес `http://127.0.0.1:5000/`. Вы должны увидеть HTML-страницу с текстом "Привет, мир!". \ No newline at end of file diff --git a/added_tokens.json b/added_tokens.json new file mode 100644 index 0000000..482ced4 --- /dev/null +++ b/added_tokens.json @@ -0,0 +1,24 @@ +{ + "": 151658, + "": 151657, + "<|box_end|>": 151649, + "<|box_start|>": 151648, + "<|endoftext|>": 151643, + "<|file_sep|>": 151664, + "<|fim_middle|>": 151660, + "<|fim_pad|>": 151662, + "<|fim_prefix|>": 151659, + "<|fim_suffix|>": 151661, + "<|im_end|>": 151645, + "<|im_start|>": 151644, + "<|image_pad|>": 151655, + "<|object_ref_end|>": 151647, + "<|object_ref_start|>": 151646, + "<|quad_end|>": 151651, + "<|quad_start|>": 151650, + "<|repo_name|>": 151663, + "<|video_pad|>": 151656, + "<|vision_end|>": 151653, + "<|vision_pad|>": 151654, + "<|vision_start|>": 151652 +} diff --git a/config.json b/config.json new file mode 100644 index 0000000..897f58a --- /dev/null +++ b/config.json @@ -0,0 +1,28 @@ +{ + "architectures": [ + "Qwen2ForCausalLM" + ], + "attention_dropout": 0.0, + "bos_token_id": 151643, + "eos_token_id": 151645, + "hidden_act": "silu", + "hidden_size": 1536, + "initializer_range": 0.02, + "intermediate_size": 8960, + "max_position_embeddings": 32768, + "max_window_layers": 28, + "model_type": "qwen2", + "num_attention_heads": 12, + "num_hidden_layers": 28, + "num_key_value_heads": 2, + "rms_norm_eps": 1e-06, + "rope_scaling": null, + "rope_theta": 1000000.0, + "sliding_window": null, + "tie_word_embeddings": true, + "torch_dtype": "bfloat16", + "transformers_version": "4.46.1", + "use_cache": true, + "use_sliding_window": false, + "vocab_size": 151936 +} diff --git a/configuration.json b/configuration.json new file mode 100644 index 0000000..bbeeda1 --- /dev/null +++ b/configuration.json @@ -0,0 +1 @@ +{"framework": "pytorch", "task": "text-generation", "allow_remote": true} \ No newline at end of file diff --git a/generation_config.json b/generation_config.json new file mode 100644 index 0000000..287455a --- /dev/null +++ b/generation_config.json @@ -0,0 +1,18 @@ +{ + "transformers_version": "4.46.3", + "temperature": 0.4, + "max_len": 8192, + "max_tokens": 4096, + "do_sample": true, + "presence_penalty": 0.0, + "frequency_penalty": 0.0, + "repetition_penalty": 1.0, + "top_p": 0.8, + "top_k": 20, + "n": 1, + "best_of": 1, + "seed": null, + "use_beam_search": false, + "length_penalty": 1.0, + "ignore_eos": false +} diff --git a/merges.txt b/merges.txt new file mode 100644 index 0000000..80c1a19 --- /dev/null +++ b/merges.txt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8831e4f1a044471340f7c0a83d7bd71306a5b867e95fd870f74d0c5308a904d5 +size 1671853 diff --git a/model.safetensors b/model.safetensors new file mode 100644 index 0000000..81974ae --- /dev/null +++ b/model.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6801c76a437735f49dcfd41b5b1b08546b370a2cea60b234c2dae0a2a477d348 +size 3087467144 diff --git a/special_tokens_map.json b/special_tokens_map.json new file mode 100644 index 0000000..ac23c0a --- /dev/null +++ b/special_tokens_map.json @@ -0,0 +1,31 @@ +{ + "additional_special_tokens": [ + "<|im_start|>", + "<|im_end|>", + "<|object_ref_start|>", + "<|object_ref_end|>", + "<|box_start|>", + "<|box_end|>", + "<|quad_start|>", + "<|quad_end|>", + "<|vision_start|>", + "<|vision_end|>", + "<|vision_pad|>", + "<|image_pad|>", + "<|video_pad|>" + ], + "eos_token": { + "content": "<|im_end|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false + }, + "pad_token": { + "content": "<|endoftext|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false + } +} diff --git a/tokenizer.json b/tokenizer.json new file mode 100644 index 0000000..51ebb3b --- /dev/null +++ b/tokenizer.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9c5ae00e602b8860cbd784ba82a8aa14e8feecec692e7076590d014d7b7fdafa +size 11421896 diff --git a/tokenizer_config.json b/tokenizer_config.json new file mode 100644 index 0000000..c3c77c6 --- /dev/null +++ b/tokenizer_config.json @@ -0,0 +1,210 @@ +{ + "add_bos_token": false, + "add_prefix_space": false, + "added_tokens_decoder": { + "151643": { + "content": "<|endoftext|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "151644": { + "content": "<|im_start|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "151645": { + "content": "<|im_end|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "151646": { + "content": "<|object_ref_start|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "151647": { + "content": "<|object_ref_end|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "151648": { + "content": "<|box_start|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "151649": { + "content": "<|box_end|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "151650": { + "content": "<|quad_start|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "151651": { + "content": "<|quad_end|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "151652": { + "content": "<|vision_start|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "151653": { + "content": "<|vision_end|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "151654": { + "content": "<|vision_pad|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "151655": { + "content": "<|image_pad|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "151656": { + "content": "<|video_pad|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "151657": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "151658": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "151659": { + "content": "<|fim_prefix|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "151660": { + "content": "<|fim_middle|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "151661": { + "content": "<|fim_suffix|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "151662": { + "content": "<|fim_pad|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "151663": { + "content": "<|repo_name|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + }, + "151664": { + "content": "<|file_sep|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": false + } + }, + "additional_special_tokens": [ + "<|im_start|>", + "<|im_end|>", + "<|object_ref_start|>", + "<|object_ref_end|>", + "<|box_start|>", + "<|box_end|>", + "<|quad_start|>", + "<|quad_end|>", + "<|vision_start|>", + "<|vision_end|>", + "<|vision_pad|>", + "<|image_pad|>", + "<|video_pad|>" + ], + "bos_token": null, + "chat_template": "{%- if tools %}\n {{- '<|im_start|>system\\n' }}\n {%- if messages[0]['role'] == 'system' %}\n {{- messages[0]['content'] }}\n {%- else %}\n {{- 'You are Kodify, created by MTS AI, you are a helpful assistant.' }}\n {%- endif %}\n {{- \"\\n\\n# Tools\\n\\nYou may call one or more functions to assist with the user query.\\n\\nYou are provided with function signatures within XML tags:\\n\" }}\n {%- for tool in tools %}\n {{- \"\\n\" }}\n {{- tool | tojson }}\n {%- endfor %}\n {{- \"\\n\\n\\nFor each function call, return a json object with function name and arguments within XML tags:\\n\\n{\\\"name\\\": , \\\"arguments\\\": }\\n<|im_end|>\\n\" }}\n{%- else %}\n {%- if messages[0]['role'] == 'system' %}\n {{- '<|im_start|>system\\n' + messages[0]['content'] + '<|im_end|>\\n' }}\n {%- else %}\n {{- '<|im_start|>system\\nYou are Kodify, created by MTS AI. You are a helpful assistant.<|im_end|>\\n' }}\n {%- endif %}\n{%- endif %}\n{%- for message in messages %}\n {%- if (message.role == \"user\") or (message.role == \"system\" and not loop.first) or (message.role == \"assistant\" and not message.tool_calls) %}\n {{- '<|im_start|>' + message.role + '\\n' + message.content + '<|im_end|>' + '\\n' }}\n {%- elif message.role == \"assistant\" %}\n {{- '<|im_start|>' + message.role }}\n {%- if message.content %}\n {{- '\\n' + message.content }}\n {%- endif %}\n {%- for tool_call in message.tool_calls %}\n {%- if tool_call.function is defined %}\n {%- set tool_call = tool_call.function %}\n {%- endif %}\n {{- '\\n\\n{\"name\": \"' }}\n {{- tool_call.name }}\n {{- '\", \"arguments\": ' }}\n {{- tool_call.arguments | tojson }}\n {{- '}\\n' }}\n {%- endfor %}\n {{- '<|im_end|>\\n' }}\n {%- elif message.role == \"tool\" %}\n {%- if (loop.index0 == 0) or (messages[loop.index0 - 1].role != \"tool\") %}\n {{- '<|im_start|>user' }}\n {%- endif %}\n {{- '\\n\\n' }}\n {{- message.content }}\n {{- '\\n' }}\n {%- if loop.last or (messages[loop.index0 + 1].role != \"tool\") %}\n {{- '<|im_end|>\\n' }}\n {%- endif %}\n {%- endif %}\n{%- endfor %}\n{%- if add_generation_prompt %}\n {{- '<|im_start|>assistant\\n' }}\n{%- endif %}\n", + "clean_up_tokenization_spaces": false, + "eos_token": "<|im_end|>", + "errors": "replace", + "extra_special_tokens": {}, + "model_max_length": 32768, + "pad_token": "<|endoftext|>", + "padding_side": "left", + "split_special_tokens": false, + "tokenizer_class": "Qwen2Tokenizer", + "truncation_side": "left", + "unk_token": null +} diff --git a/vocab.json b/vocab.json new file mode 100644 index 0000000..6c49fc6 --- /dev/null +++ b/vocab.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ca10d7e9fb3ed18575dd1e277a2579c16d108e32f27439684afa0e10b1440910 +size 2776833