Files
site/WESP_REL/install/assistant

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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 или галка в админке.