Files
agr-assistent/agr-assistent.spec
mrleo1nidandClaude Opus 5 04029f3750 Этап 8: настраиваемые команды
- commands.yaml с рабочими примерами: медиа, громкость, поиск, папки, блокировка;
  перечитывается автоматически, ошибки не ломают остальные команды
- Действия run / open / http / keys; вывод и ответы возвращаются модели
- Вызов через модель (tool calling) и мгновенно по точным фразам, в том числе с параметрами
- Подтверждение «да/нет» для опасных команд, после голосового вопроса микрофон включается сам
- Безопасность: запуск без оболочки, защита аргументов cmd/PowerShell/.bat,
  переменные окружения раскрываются только в шаблоне
- Вкладка «Команды» в настройках
- Тесты разбора, действий, фраз и полных сценариев через Assistant

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-17 04:38:57 +03:00

48 lines
1.5 KiB
RPMSpec

# -*- mode: python ; coding: utf-8 -*-
# Сборка: uv run pyinstaller agr-assistent.spec --noconfirm
# Результат: dist/agr-assistent/agr-assistent.exe (папка целиком переносима)
from pathlib import Path
import nvidia
from PyInstaller.utils.hooks import collect_data_files, collect_dynamic_libs, collect_submodules
datas = [
("src/agr_assistent/default_config.yaml", "agr_assistent"),
("src/agr_assistent/default_commands.yaml", "agr_assistent"),
]
datas += collect_data_files("silero_vad")
datas += collect_data_files("faster_whisper")
binaries = collect_dynamic_libs("vosk") + collect_dynamic_libs("ctranslate2")
# cuBLAS и cuDNN для распознавания на видеокарте; путь к ним добавляет stt/whisper.py
for package_dir in nvidia.__path__:
for dll in Path(package_dir).glob("*/bin/*.dll"):
binaries.append((str(dll), f"nvidia/{dll.parent.parent.name}/bin"))
# num2words подключает языковые модули динамически
hiddenimports = collect_submodules("num2words")
a = Analysis(
["packaging/launcher.py"],
pathex=["src"],
binaries=binaries,
datas=datas,
hiddenimports=hiddenimports,
excludes=["tkinter", "matplotlib", "IPython", "pytest"],
noarchive=False,
)
pyz = PYZ(a.pure)
exe = EXE(
pyz,
a.scripts,
[],
exclude_binaries=True,
name="agr-assistent",
icon="packaging/icon.ico",
console=False,
upx=False,
)
coll = COLLECT(exe, a.binaries, a.datas, name="agr-assistent", upx=False)