Преминете към основното съдържание

Архитектурен преглед на Dictaro

Dictaro е SaaS платформа за гласово въвеждане (voice-to-text), състояща се от десктоп клиент, ASR сървър, licensing сървър, маркетинг сайт и мониторинг инфраструктура.

Диаграма на високо ниво

Описание на компонентите

Десктоп клиент (Rust)

Нативно Windows/macOS приложение, написано на Rust. Предоставя:

  • egui GUI -- лек, кросплатформен интерфейс с поддръжка на system tray
  • Запис на аудио -- WASAPI (Windows) / CoreAudio (macOS), 16 kHz mono
  • Глобални hotkeys -- Win32 API / macOS accessibility за активиране на диктовката
  • WebSocket клиент -- изпраща WAV аудио към ASR сървъра чрез tokio-tungstenite
  • Auth Manager -- OAuth browser redirect flow с временен localhost axum сървър
  • Keyring -- съхранение на JWT токени в Windows Credential Manager / macOS Keychain
  • i18n -- локализация чрез rust-i18n с автоматично определяне на системния език
  • Auto-updater -- самоактуализация чрез semver + self-replace

ASR сървър (Python / NVIDIA DGX Spark)

Работи на NVIDIA DGX Spark (10.42.9.37, LAN only), достъпен през Cloudflare Tunnel. Компоненти:

  • FastAPI WebSocket сървър -- приема аудио, връща транскрипция
  • NVIDIA NeMo ASR -- speech recognition модел чрез nemo_toolkit
  • vLLM -- опционален post-processing с Gemma 3 12B IT за подобряване на текста (BYOK Pro feature)
  • Nginx proxy -- обединява ASR и Dashboard на порт 8765
  • Data Collector -- записва аудио в Azure Blob Storage и изпраща метрики в Log Analytics
  • Monitoring exporters -- Node Exporter, DCGM Exporter (GPU), Promtail

Licensing сървър (Go / Azure VM)

Go приложение с Gin framework, работещо на Azure VM dictaro-vm (northeurope). Отговаря за:

  • OAuth2 автентикация -- Google, Azure AD, GitHub + email/password
  • JWT RS256 издаване и валидация -- access tokens с конфигурируем expiry
  • Stripe интеграция -- checkout sessions, webhooks, customer portal
  • Usage tracking и quota -- записване на употреба, rolling quota цикли, cooldown механизъм
  • Email -- верификация и password reset чрез Resend API
  • Prometheus метрики -- вътрешен metrics сървър на порт 9090

Monitoring стек (Azure VM)

Споделя Azure VM с licensing сървъра. Включва:

  • Prometheus -- scrape на метрики от licensing API, ASR сървъра (през Cloudflare Tunnel), node exporters
  • Grafana -- визуализация, достъпна на monitoring.dictaro.ai чрез Cloudflare Tunnel
  • Loki -- агрегация на логове от всички компоненти чрез Promtail
  • Cloudflare Tunnels -- dictaro-monitoring (Grafana), dictaro-loki (Loki ingest)

Уебсайт (Astro)

Маркетинг сайт на dictaro.ai, хостван на Cloudflare Pages:

  • Astro 5 -- static site generator с поддръжка на 25 езика
  • Tailwind CSS 4 -- utility-first CSS framework
  • Cloudflare Pages -- автоматичен deploy от Git

Ключови технологии

ОбластТехнологияПредназначение
Десктоп GUIegui / eframe 0.31Кросплатформен UI (OpenGL/Metal)
Async runtimetokio 1.xAsync I/O, WebSocket, HTTP
WebSockettokio-tungstenite 0.26Комуникация с ASR сървъра
HTTP клиентreqwest 0.12API заявки към licensing сървъра
Аудио записWASAPI 0.22Windows аудио capture
ASR моделNVIDIA NeMo (nemo_toolkit 2.4+)Speech-to-text
Post-processingvLLM + Gemma 3 12B ITAI подобряване на текста
Web framework (API)Gin 1.10HTTP routing, middleware
JWTgolang-jwt/v5 + jsonwebtoken 9RS256 токени
DatabasePostgreSQL (Azure)Потребители, usage, billing
DB driverpgx/v5Go PostgreSQL connection pool
PaymentsStripe (stripe-go/v81)Абонаменти, checkout, webhooks
EmailResendВерификация, password reset
МониторингPrometheus + Grafana + LokiМетрики, логове, дашборди
ИнфраструктураDocker, Cloudflare TunnelsКонтейнеризация, secure access
WebsiteAstro 5 + Tailwind 4Маркетинг сайт
HostingCloudflare Pages, Azure VMDeployment