Этап 1: трей, окно чата и текстовый диалог с LLM

- PySide6: значок в трее с индикацией состояния, окно чата со стримингом и markdown
- Единый OpenAI-совместимый клиент (Ollama, LM Studio, OpenRouter)
- config.yaml с автосозданием, слиянием с умолчаниями и подстановкой ${ENV}
- Тесты конфига и сборки сообщений

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
mrleo1nid
2026-09-17 03:04:21 +03:00
co-authored by Claude Opus 5
parent 26a01aa210
commit 7933613234
19 changed files with 1574 additions and 0 deletions
+37
View File
@@ -1,2 +1,39 @@
# agr-assistent
Минимальный AI-ассистент, живущий в системном трее.
- LLM: локальные модели (Ollama, LM Studio, llama.cpp) или OpenRouter — через единый OpenAI-совместимый API
- Текстовый чат со стримингом ответа
- В планах: голосовой ввод (faster-whisper), озвучка ответов (Silero), слово активации
## Запуск
Нужен [uv](https://docs.astral.sh/uv/).
```bash
uv sync
uv run agr-assistent
```
При первом запуске рядом создаётся `config.yaml` (путь можно переопределить переменной
`AGR_ASSISTENT_CONFIG`). В нём выбирается провайдер и модель:
```yaml
llm:
provider: openrouter
providers:
openrouter:
api_key: ${OPENROUTER_API_KEY} # или ключ напрямую
model: openai/gpt-4o-mini
```
Для Ollama достаточно запустить сервер и скачать модель: `ollama pull qwen2.5:7b`.
Закрытие окна сворачивает приложение в трей. Клик по значку открывает чат, в меню значка —
переключение провайдера, новый диалог и выход.
## Разработка
```bash
uv run pytest
```