Локальный конспект встреч: Chrome-расширение пишет звук вкладки + микрофон → сервер на вашей машине делает GigaAM ASR (речь→текст) и LLM-конспект (например Qwen в LAN).
Аудио и текст не уходят в облако расширения — только на ваш 127.0.0.1 (или указанный сервер) и на настроенный LLM.
| Каталог | Что это |
|---|---|
extension/ |
Chrome MV3: запись, mute микрофона, upload jobs |
server/ |
FastAPI: ASR (GigaAM via onnx-asr) + summarize → conspect.md / conspect.html |
openspec/ |
Спеки / milestones (для разработки) |
Подробности: extension/README.md · server/README.md
Нужен Python 3.11+. Если нет — см. server/README.md.
cd server
python3 -m venv .venv
.venv/bin/pip install -e ".[dev]" # Windows: .venv\Scripts\pip …
cp .env.example .env # OLLAMA_URL / OLLAMA_MODEL и т.д.
.venv/bin/python -m uvicorn app.main:app --host 127.0.0.1 --port 8765Остановка: Ctrl+C. Проверка: curl http://127.0.0.1:8765/health
Модель GigaAM по умолчанию не качается при старте — при первой job (нужен интернет один раз). Нужен системный ffmpeg. Подробнее — в server README.
Нужен Bun. Если нет — см. extension/README.md (bun.sh).
cd extension
bun install
bun run buildChrome → chrome://extensions → режим разработчика → «Загрузить нераспакованное» → extension/dist.
- Откройте http(s) вкладку со звуком (не
chrome://). - Popup Conspector: адрес сервера, вкладка, Старт (микрофон при первом разе).
- Во время записи можно выключить/включить микрофон в миксе (звук вкладки пишется всегда).
- Стоп → сервер: GigaAM → LLM → файлы в
server/data/jobs/<id>/. - Открыть конспект → HTML со сворачиваемым транскриптом (
conspect.html). Рядом лежитconspect.md.
| macOS | Linux | Windows | |
|---|---|---|---|
| Сервер | да | да | да |
| Расширение (Chrome / Chromium / Edge) | да | да | да |
| Firefox | нет (tabCapture / offscreen — Chrome-only) |
После статуса done:
server/data/jobs/<id>/conspect.html— смотреть в браузере (сворачивание транскрипта)server/data/jobs/<id>/conspect.md— исходник / архивaudio.webm,meta.json
open http://127.0.0.1:8765/v1/jobs/<id>/conspect.html- Сервер:
server/.env←server/.env.example(ASR_*,OLLAMA_*,DATA_DIR, …) - Расширение: опционально
extension/.env←VITE_DEFAULT_SERVER_URL
Секреты и server/data/ в git не попадают.