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
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:
- Add the --enforce-eager argument
- 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:
- Using Docker
- Locally (provides faster responses than Docker)
Method 1: Running Kodify Nano on OLLAMA in Docker
Without NVIDIA GPU:
docker run -e OLLAMA_HOST=0.0.0.0:8985 -p 8985:8985 --name ollama -d ollama/ollama
With NVIDIA GPU:
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:
docker exec ollama ollama pull hf.co/MTSAIR/Kodify-Nano-GGUF
Rename the model:
docker exec ollama ollama cp hf.co/MTSAIR/Kodify-Nano-GGUF kodify_nano
Start the model:
docker exec ollama ollama run kodify_nano
Method 2: Local Kodify Nano on OLLAMA
Download OLLAMA:
https://ollama.com/downloadSet the port:
export OLLAMA_HOST=0.0.0.0:8985
Note: If port 8985 is occupied, replace it and update plugin configuration
- Start OLLAMA server:
ollama serve &
- Download the model:
ollama pull hf.co/MTSAIR/Kodify-Nano-GGUF
- Rename the model:
ollama cp hf.co/MTSAIR/Kodify-Nano-GGUF kodify_nano
- Run the model:
ollama run kodify_nano
Plugin Installation
For Visual Studio Code
- Download the latest Kodify plugin for VS Code.
- Open the Extensions panel on the left sidebar.
- Click Install from VSIX... and select the downloaded plugin file.
For JetBrains IDEs
- Download the latest Kodify plugin for JetBrains.
- Open the IDE and go to Settings > Plugins.
- Click the gear icon (⚙️) and select Install Plugin from Disk....
- Choose the downloaded plugin file.
- 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
:
- Open any file in the IDE.
- Open the Kodify sidebar:
- VS Code:
Ctrl+L
(Cmd+L
on Mac). - JetBrains:
Ctrl+J
(Cmd+J
on Mac).
- VS Code:
- 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.
- Modify the
apiBase
port undertabAutocompleteModel
andmodels
. - Save the file (
Ctrl+S
or File > Save).
Example API Request
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:
pip install Flask
Пример простого сервера на Flask
Вот пример простого приложения на Flask, которое будет отвечать на запросы на
/hello
и выводить "Hello, World!".
- Создайте новый файл, например,
app.py
.- Откройте файл в текстовом редакторе и вставьте следующий код:
from flask import Flask
app = Flask(name)
@app.route('/hello') def hello_world(): return 'Hello, World!'
if name == 'main': app.run(debug=True)
Объяснение кода
- Импорт Flask: Мы импортируем класс Flask из модуля
flask
.- Создание экземпляра Flask: Создаем экземпляр класса Flask с именем
app
.- Обработчик запросов: Мы декорируем функцию
hello_world
с помощью@app.route('/hello')
. Это означает, что при запросе на/hello
Flask вызовет функциюhello_world
.- Возвращение ответа: Функция
hello_world
возвращает строку'Hello, World!'
.- Запуск сервера: В конце файла добавляем проверку, чтобы при запуске скрипта он запускался в режиме отладки (
debug=True
).
Запуск сервера
- Откройте терминал и перейдите в директорию, в которой находится ваш файл
app.py
.- Запустите скрипт с помощью команды:
python app.py
- Вы увидите сообщение, что сервер запущен на порту 5000. Например:
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
- Откройте браузер и перейдите на адрес
http://127.0.0.1:5000/hello
. Вы должны увидеть сообщение "Hello, World!".
Дополнительные функции
Flask предоставляет множество других функций для создания более сложных приложений. Вот некоторые из них:
- Функции маршрутизации: Вы можете добавлять дополнительные маршруты, обрабатывать параметры запросов и т.д.
- Вьюшки: Вы можете создавать вьюшки, которые возвращают HTML-страницы.
- Сессии: Вы можете использовать сессии для хранения данных между запросами.
- БД: Вы можете подключаться к базе данных и выполнять запросы.
Давайте рассмотрим пример с вьюшкой:
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)
- Вьюшка: Создаем файл
templates/index.html
в папкеtemplates
(если он еще не существует) и добавляем следующий код:
<!DOCTYPE html> <html lang="ru"> <head> <meta charset="UTF-8"> <title>Пример вьюшки</title> </head> <body> <h1>Привет, мир!</h1> <p>Это пример вьюшки на Flask.</p> </body> </html>
- Запуск сервера: Сохраните файлы и запустите сервер снова. Откройте браузер и перейдите на адрес
http://127.0.0.1:5000/
. Вы должны увидеть HTML-страницу с текстом "Привет, мир!".
- Downloads last month
- 49