- Потоковая озвучка: ответ режется на фразы, синтез и воспроизведение в отдельных потоках - Подготовка текста: числа словами, без markdown, ссылок и блоков кода - Модель Silero скачивается в LOCALAPPDATA и прогревается при старте - Состояние «говорю», переключатель озвучки в трее, «Стоп» прерывает речь - Тесты нарезки текста и оркестратора озвучки Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
45 lines
1.9 KiB
Markdown
45 lines
1.9 KiB
Markdown
# agr-assistent
|
|
|
|
Минимальный AI-ассистент, живущий в системном трее.
|
|
|
|
- LLM: локальные модели (Ollama, LM Studio, llama.cpp) или OpenRouter — через единый OpenAI-совместимый API
|
|
- Текстовый чат со стримингом ответа
|
|
- Озвучка ответов голосом Silero: фразы проговариваются по мере генерации, блоки кода пропускаются
|
|
- В планах: голосовой ввод (faster-whisper), слово активации
|
|
|
|
## Запуск
|
|
|
|
Нужен [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`.
|
|
|
|
Модель Silero (~145 МБ) скачивается при первом запуске в `%LOCALAPPDATA%\agr-assistent\models`.
|
|
Голос и модель задаются в секции `tts` конфига; озвучку можно выключить в меню значка.
|
|
Silero читает только кириллицу: числа переводятся в слова, латиница пропускается.
|
|
|
|
Закрытие окна сворачивает приложение в трей. Клик по значку открывает чат, в меню значка —
|
|
переключение провайдера, новый диалог и выход.
|
|
|
|
## Разработка
|
|
|
|
```bash
|
|
uv run pytest
|
|
```
|