Nxtgauge AI Assistant
- Add LiteLLM provider with LLM_PROVIDER env var support - Add Fake LLM provider for testing - Add action registry with 17 AI actions - Add permission checker with role verification - Add UI events in chat responses (fill_form, open_preview, etc) - Add versioned prompt files system - Add confirm action endpoint - Add 80 unit tests New endpoints: - POST /api/ai/actions/confirm New files: - src/handlers/actions.rs - src/handlers/confirm_action.rs - src/services/action_confirmation.rs - src/prompts.rs - src/tests.rs - prompts/v1/*.txt |
||
|---|---|---|
| .forgejo | ||
| .gitea/workflows | ||
| .github/workflows | ||
| migrations | ||
| prompts/v1 | ||
| seeds | ||
| src | ||
| .env.example | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| Dockerfile | ||
| README.md | ||
nxtgauge-ai-assistant
Backend-only Rust service for Nxtgauge AI workflows.
Scope (MVP)
- Job description generation
- Form filling assistance
- Help article retrieval
- Support ticket creation via chatbot
Stack
- Rust + Axum
- Ollama (default local runtime)
- Postgres scaffolding via
sqlx - Provider abstractions for future runtime swaps
Run
cp .env.example .env
cargo run
Endpoints
GET /healthPOST /api/v1/chat/messagePOST /api/v1/jobs/generate-descriptionPOST /api/v1/forms/extractPOST /api/v1/tickets/createPOST /api/v1/help/search
Environment
APP_HOSTAPP_PORTDATABASE_URLOLLAMA_BASE_URLOLLAMA_CHAT_MODEL(defaultsmollm2:360m)OLLAMA_EMBED_MODEL(defaultnomic-embed-text)HELP_CENTER_SEED_PATHTICKETS_SOURCE
Architecture
chat/: workflow-oriented orchestrationjobs/,forms/,tickets/: domain modulesproviders/llm:AiProvider+ Ollama implementationproviders/tickets:TicketProvider+ mock adapterproviders/help_center:HelpCenterProvider+ local seed implementationretrieval/embeddings: embedding abstraction + Ollama adapterdb/: DB connection, entities, repository helpersroutes/,handlers/: API layer
Notes
- Service starts even if Ollama model is unavailable; provider returns graceful fallback responses.
- STT (
faster-whisper) is intentionally deferred to phase 2.
CI (Woodpecker)
Required secrets:
REGISTRY_USERNAMEREGISTRY_PASSWORD