Интегрирован wesp в сайт
CI / quality (push) Canceled after 0s

This commit is contained in:
влад
2026-07-17 12:57:18 +03:00
parent 5dfa06ddbe
commit 355c0ef9f1
883 changed files with 194576 additions and 177 deletions
+72
View File
@@ -0,0 +1,72 @@
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 или галка в админке.