Nxtgauge AI Assistant
Wires up 8 previously missing/stub Ask Ash capabilities: resume improvement, job post improvement, professional/jobseeker/company profile improvement, service description generation, KB article/notification writing, admin support ticket summarization, and lead/credit guidance. Also upgrades explain_plan_limits and check_ai_pack_balance from static canned strings to real generated answers. Adds AiProvider::complete_as(model, ...) so callers can target specific LiteLLM model aliases (jd-generator, profile-writer, service-writer, support-drafter, decision-support, askash-main/fast) that were already defined in apps/litellm/base/configmap.yaml but never actually used by ai-assistant, since it wasn't even configured to use the litellm provider (defaulted to plain Ollama with the tiny gemma3:270m model for every task, with no LLM_PROVIDER/LITELLM_* env vars set in the deployment). New content_tools module holds the shared generation logic; new routes registered for each feature; KB content generation and support ticket summarization are gated to ADMIN/EMPLOYEE roles via JWT claims. Registry gains 4 new ActionDefinitions (improve_job_post, generate_kb_content, lead_credit_guidance, ai_auto_apply_status) to match the existing registry pattern. |
||
|---|---|---|
| .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