73 lines
5.4 KiB
Plaintext
73 lines
5.4 KiB
Plaintext
WESP: локальный LLM (llama-server + GGUF Qwen2.5-1.5B-Instruct)
|
||
===============================================================
|
||
|
||
Запускайте скрипты из КОРНЯ репозитория (где лежат папки app/, data/, install/).
|
||
|
||
1) Каталоги (логи, кэш, models):
|
||
Linux/macOS: sh install/assistant/create_layout.sh
|
||
Windows: powershell -ExecutionPolicy Bypass -File install\assistant\create_layout.ps1
|
||
|
||
Если вы уже в папке install\, путь к скрипту другой:
|
||
powershell -ExecutionPolicy Bypass -File assistant\download_model.ps1
|
||
|
||
По умолчанию корень: <репозиторий>/data/assistant
|
||
Или: set WESP_ASSISTANT_DIR=...
|
||
|
||
2) Скачать веса (~1.3 GB для q5_k_m):
|
||
pip install -U huggingface_hub
|
||
sh install/assistant/download_model.sh
|
||
или download_model.ps1
|
||
|
||
3) Запуск llama-server
|
||
Linux/macOS: sh install/assistant/run_llama_server.sh
|
||
Windows (авто, ~15 MiB с GitHub):
|
||
powershell -ExecutionPolicy Bypass -File install\assistant\download_llama_server.ps1
|
||
Кладёт exe и все .dll из архива в <репо>\tools\ (run_llama_server.ps1 найдёт сам).
|
||
Если llama-server сразу падает с кодом -1073741515 — не хватало DLL рядом с exe:
|
||
powershell -ExecutionPolicy Bypass -File install\assistant\sync_llama_tools.ps1
|
||
«Всё сразу» (отдельное окно llama + WESP с LLM):
|
||
powershell -ExecutionPolicy Bypass -File .\start_chat.ps1
|
||
Вручную: https://github.com/ggml-org/llama.cpp/releases — архив llama-*-bin-win-cpu-x64.zip,
|
||
из него llama-server.exe в tools\ или в PATH, либо:
|
||
$env:LLAMA_SERVER = "C:\полный\путь\llama-server.exe"
|
||
Запуск из папки install:
|
||
.\assistant\run_llama_server.ps1
|
||
Из корня репозитория:
|
||
powershell -ExecutionPolicy Bypass -File install\assistant\run_llama_server.ps1
|
||
(Без .\ в начале PowerShell пытается загрузить «модуль» install — ошибка.)
|
||
|
||
4) Переменные для WESP (пример; API LLM в админке по умолчанию включён):
|
||
set WESP_LLM_BASE_URL=http://127.0.0.1:8080
|
||
set WESP_LLM_MODEL=qwen2.5-1.5b-instruct-q5_k_m.gguf
|
||
Выключить LLM: set WESP_ADMIN_LLM_ENABLED=0 или галка в админке → data/wesp_security_settings.json (admin_llm_enabled).
|
||
|
||
Автозапуск llama-server вместе с python run.py / gunicorn (дочерний процесс, при выходе WESP завершается):
|
||
по умолчанию ВКЛ; выключить: set WESP_LLM_AUTOSTART=0 или галка в админке (llm_autostart).
|
||
Нужны: LLM включён в админке, файл .gguf в data/assistant/models/, llama-server в tools/ или LLAMA_SERVER=...
|
||
|
||
Порт в run_* должен совпадать с WESP_LLM_BASE_URL. Имя модели в WESP_LLM_MODEL — как в API (часто имя файла .gguf).
|
||
|
||
Чат в админке (экономия ресурсов llama-server): по умолчанию WESP_LLM_CHAT_MAX_TOKENS=512, WESP_LLM_CHAT_TIMEOUT_SEC=45 — см. config.py.
|
||
Лимит «не чаще раз в N сек» для чата отдельный: WESP_ADMIN_LLM_CHAT_RATE_LIMIT_SEC (по умолчанию 0 — без паузы). Для сводки/ping: WESP_ADMIN_LLM_RATE_LIMIT_SEC (по умолчанию 12).
|
||
Чат с данными БД в промпте (среда + PRAGMA по файлам SQLite, без строк таблиц ORM): галка в админке или WESP_LLM_CHAT_INCLUDE_DB_CONTEXT=1, ключ llm_chat_db_context в wesp_security_settings.json. Строки справочников — только «Снимок диагностики».
|
||
|
||
5) Slim-tools в чате (оркестратор LLM)
|
||
По умолчанию ВКЛ на боевом config; в pytest выключено (WESP_LLM_TOOLS_ENABLED=0 в TestingConfig).
|
||
Галка в админке «Инструменты в чате» / ключ llm_tools_enabled в wesp_security_settings.json /
|
||
переменная WESP_LLM_TOOLS_ENABLED (env имеет приоритет над файлом).
|
||
|
||
Модель может вызывать функции OpenAI-формата (нужна поддержка tool_calls в вашей сборке llama-server):
|
||
slim_sql (только SELECT/WITH … SELECT, bind recipes|reports),
|
||
slim_extract / slim_summary / slim_xsum / slim_sentiment / slim_emotions для server_log, client_log или raw_text.
|
||
|
||
Режим SQL в UI/API:
|
||
- preview — только EXPLAIN QUERY PLAN (без строк таблиц);
|
||
- execute — чтение строк в SQLite через подключение mode=ro, лимит строк WESP_LLM_SQL_MAX_ROWS (по умолчанию 200).
|
||
|
||
Лимиты и таймауты (см. также config.py):
|
||
WESP_LLM_TOOL_MAX_ROUNDS, WESP_LLM_LOG_MAX_BYTES, WESP_LLM_LOG_TAIL_LINES.
|
||
|
||
Платформы: прод обычно Ubuntu; разработка и тесты — Windows/macOS/Linux. Тесты не требуют живого llama-server.
|
||
Если ваш llama-server отвечает 400 на поле tools в /v1/chat/completions — отключите инструменты:
|
||
WESP_LLM_TOOLS_ENABLED=0 или галка в админке.
|