From 3f16d062d1d042ad7299d449be53c4dda1140ba5 Mon Sep 17 00:00:00 2001 From: kpd Date: Tue, 6 Oct 2026 23:35:41 +0300 Subject: [PATCH] doc: add kilo code tutorial --- README.md | 4 +- clusterKilocode/images/chat.png | Bin 0 -> 16671 bytes clusterKilocode/images/web-key.png | Bin 0 -> 56065 bytes clusterKilocode/kilocode-install.md | 163 ++++++++++++++++++++++++++++ 4 files changed, 166 insertions(+), 1 deletion(-) create mode 100644 clusterKilocode/images/chat.png create mode 100644 clusterKilocode/images/web-key.png create mode 100644 clusterKilocode/kilocode-install.md diff --git a/README.md b/README.md index 329aaa3..af55cf7 100644 --- a/README.md +++ b/README.md @@ -14,4 +14,6 @@ ## [MPI приложения. Инструкция по сборке и работе](./clusterBasics/mpi.md) -## [Инструкция по Jupyterhub](./clusterBasics/jupyterhub.md) \ No newline at end of file +## [Инструкция по Jupyterhub](./clusterBasics/jupyterhub.md) + +## [Инструкция по Kilo Code](./clusterKilocode/kilocode-install.md) diff --git a/clusterKilocode/images/chat.png b/clusterKilocode/images/chat.png new file mode 100644 index 0000000000000000000000000000000000000000..48b080f1a0d15f55f32d32c0a64b4e7fe2eec22d GIT binary patch literal 16671 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 literal 0 HcmV?d00001 diff --git a/clusterKilocode/images/web-key.png b/clusterKilocode/images/web-key.png new file mode 100644 index 0000000000000000000000000000000000000000..a23c781d027b3926dfad1c47e56ae9843569167f GIT binary patch literal 56065 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 z྅s2EM&j#1cm)e^`DdLnx=tbS^(Nn8!sUQ~3 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

Y>k?U=*8OKw?f%%rRwaR^!Ou%r$VV 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

0y3g==o& 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 **Обозначения сочетаний клавиш.** Здесь и далее сочетание `Ctrl+Shift+P` приведено для Windows и Linux. В macOS вместо него используется `Cmd+Shift+P`. + +### Подготовка + +Для подключения к кластеру на локальном компьютере должен быть установлен клиент OpenSSH. Проверить его наличие можно командой, выполненной в терминале (Windows: PowerShell; macOS и Linux: «Терминал»): + +```bash +ssh -V +``` + +Если команда не найдена, установите клиент: + +- **Windows 10/11:** «Параметры» → «Приложения» → «Дополнительные компоненты» → «Клиент OpenSSH». Также можно выполнить в PowerShell, запущенном от имени администратора, следующую команду: + ```powershell + Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0 + ``` +- **macOS:** клиент OpenSSH входит в состав системы, дополнительная установка не требуется. +- **Linux:** + ```bash + sudo apt install openssh-client # Debian, Ubuntu + sudo dnf install openssh-clients # Fedora, RHEL, Rocky, Alma + sudo pacman -S openssh # Arch + ``` + +### Установка и настройка + +1. Установите среду разработки [Microsoft Visual Studio Code](https://code.visualstudio.com/): + - **Windows:** запустите установщик (`User Installer` или `System Installer`) и следуйте указаниям мастера установки; + - **macOS:** распакуйте загруженный архив и переместите приложение `Visual Studio Code` в папку «Программы» (`Applications`); + - **Linux:** установите пакет `.deb` (Debian, Ubuntu) или `.rpm` (Fedora, RHEL) либо воспользуйтесь Snap: `sudo snap install code --classic`. + +2. Запустите `VS Code`, на левой панели откройте вкладку `Extensions` и установите расширение [`Remote - SSH`](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-ssh). + +3. На левой панели откройте вкладку `Remote Explorer`. Если в выпадающем списке в верхней части панели выбран иной режим, выберите `Remotes (Tunnels/SSH)`. Наведите указатель мыши на строку `SSH` и щёлкните по значку `+`. + +4. В открывшейся строке введите следующую команду, заменив `user` на логин **учётной записи, выданной вам системным администратором**: + +``` +ssh -p 57322 user@cluster.vstu.ru +``` + +После ввода команды выберите в качестве хранилища записи пользовательский файл конфигурации SSH: + +| ОС | Путь к файлу | +|---------|------------------------------------------------| +| Windows | `C:\Users\<имя_пользователя>\.ssh\config` | +| macOS | `/Users/<имя_пользователя>/.ssh/config` | +| Linux | `/home/<имя_пользователя>/.ssh/config` | + +После этого в файле `config` появится запись следующего вида: + +``` +Host cluster.vstu.ru + HostName cluster.vstu.ru + Port 57322 + User user +``` + +При необходимости данную запись можно скорректировать. После корректировки следует обновить список хостов в расширении `Remote - SSH`, нажав кнопку `Refresh` (значок круговой стрелки) в заголовке раздела `SSH` на левой панели. + +5. Перед подключением убедитесь, что права доступа к папке `.ssh` и файлам в ней **предоставлены только вашему пользователю**. В противном случае при подключении могут возникать ошибки, например, `Bad owner or permissions on .../.ssh/config`. + + **Windows** (PowerShell): + ```powershell + icacls "$env:USERPROFILE\.ssh" /inheritance:r /grant:r "${env:USERNAME}:(OI)(CI)F" + icacls "$env:USERPROFILE\.ssh\config" /inheritance:r /grant:r "${env:USERNAME}:F" + # Проверка: в списке должен присутствовать только ваш пользователь + icacls "$env:USERPROFILE\.ssh" + ``` + + **macOS и Linux** (Терминал): + ```bash + chmod 700 ~/.ssh + chmod 600 ~/.ssh/config + # Если владельцем папки является другой пользователь: + sudo chown -R "$USER" ~/.ssh + # Проверка + ls -ld ~/.ssh && ls -l ~/.ssh + ``` + +6. Щёлкните по кнопке с изображением стрелки (`Connect in Current Window`) рядом с появившимся хостом. Если `VS Code` запросит платформу удалённого узла, укажите `Linux` (независимо от операционной системы локального компьютера). + +7. При запросе пароля от учётной записи введите его. Дождитесь установки соединения с кластером и завершения настройки удалённого сервера. + +8. Установите в окне `VS Code` **на удалённом сервере** расширение [`Kilo Code`](https://marketplace.visualstudio.com/items?itemName=kilocode.Kilo-Code) тем же способом, что и ранее: на странице расширения нажмите кнопку `Install in SSH: cluster.vstu.ru`. + +> Начиная с этого шага, расширение `Kilo Code` и его конфигурационные файлы располагаются на кластере (ОС Linux), поэтому дальнейшие действия не зависят от операционной системы локального компьютера (за исключением сочетаний клавиш). + +9. Откройте файл пользовательских настроек `VS Code`: `Ctrl+Shift+P` → **Preferences: Open User Settings (JSON)**. Добавьте в корневой объект `JSON`-файла следующий фрагмент (не забудьте поставить запятую после предыдущего параметра): + +```jsonc +{ + // ... существующие параметры ... + "json.schemaDownload.trustedDomains": { + "https://opencode.ai/": true, + "https://models.dev/": true + } +} +``` + +10. Перезагрузите окно `VS Code`: `Ctrl+Shift+P` → **Developer: Reload Window**. + +11. Откройте страницу настроек `Kilo Code` и нажмите кнопку «**Global config (Глобальный конфиг)**». Если открывшийся конфигурационный файл пуст, вставьте в него приведённый ниже фрагмент целиком; если файл уже содержит параметры, добавьте недостающие ключи в существующий объект: + +```jsonc +{ + "$schema": "https://opencode.ai/config.json", + "disabled_providers": [], + "provider": { + "local-provider": { + "npm": "@ai-sdk/openai-compatible", + "name": "Local Provider", + "options": { + "baseURL": "http://sglang-host:30000/v1" + }, + "models": { + "RedHatAI/Qwen3.8-27B-INT4": { + "id": "RedHatAI/Qwen3.8-27B-INT4", + "name": "Qwen3.8-27B INT4", + "tool_call": true, + "reasoning": true, + "limit": { + "context": 160000, + "output": 32000 + } + } + } + } + } +} +``` + +12. Перезагрузите окно `VS Code`: `Ctrl+Shift+P` → **Developer: Reload Window**. Дождитесь завершения загрузки. + +13. Откройте в настройках `Kilo Code` раздел «Провайдеры» → «Подключённые провайдеры» → `Local Provider` → **«Редактировать провайдера»**. В открывшемся окне укажите `API key` для сервера моделей, **выданный вам системным администратором**. **Убедитесь в отсутствии сообщений об ошибках.** + +![api-key](images/web-key.png) + +14. Перезагрузите окно `VS Code`: `Ctrl+Shift+P` → **Developer: Reload Window**. Дождитесь завершения загрузки. + +15. **Инструмент готов к работе.** В окне чата можно выбрать соответствующую роль, указать доступную модель и уровень рассуждения, после чего приступить к разработке. + +![chat](images/chat.png) + +> Для эффективного использования `Kilo Code` рекомендуется настроить его в соответствии с вашими задачами. Документация к инструменту доступна по адресу: [`Kilo Code Docs`](https://kilo.ai/docs/). + +> Полезные ресурсы по `Kilo Code`: +> * [Kilo Framework example](https://github.com/h-nasu/kilo-framework) +> * [Kilo Marketplace](https://github.com/Kilo-Org/kilo-marketplace) + +> **Обратите внимание!** Все файлы проекта располагаются на кластере. При необходимости их можно скопировать на локальный компьютер одним из следующих способов: +> * **Все ОС:** в панели `Explorer` окна `VS Code`, подключённого к кластеру, щёлкните правой кнопкой мыши по файлу или папке и выберите **Download...**; +> * **Все ОС** (терминал; в Windows — PowerShell): +> ```bash +> scp -P 57322 -r user@cluster.vstu.ru:~/<папка_проекта> ./ +> # или, с использованием записи из файла ~/.ssh/config: +> scp -r cluster.vstu.ru:~/<папка_проекта> ./ +> ``` +> * **Windows:** [WinSCP](https://winscp.net/eng/download.php); +> * **macOS:** [Cyberduck](https://cyberduck.io/) или [FileZilla](https://filezilla-project.org/); +> * **Linux:** `rsync`, [FileZilla](https://filezilla-project.org/) или встроенная поддержка `sftp://` в файловом менеджере (Nautilus, Dolphin).