Nxtgauge AI Assistant
Find a file
Ashwin Kumar Sivakumar f0fbb15e54 Route through LiteLLM's task-specific models and implement missing Ask Ash features
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.
2026-07-02 18:48:43 +05:30
.forgejo Update workflows and source files 2026-07-02 06:51:03 +05:30
.gitea/workflows chore: rebuild all 2026-06-13 20:37:33 +05:30
.github/workflows fix(ci): isolate gitops checkout dir 2026-06-16 03:29:00 +05:30
migrations feat(ai-assistant): bootstrap rust axum backend with providers, routes, and db scaffolding 2026-04-11 15:04:14 +02:00
prompts/v1 feat: add Ask Ash AI assistant implementation 2026-06-14 20:28:17 +02:00
seeds feat(ai-assistant): bootstrap rust axum backend with providers, routes, and db scaffolding 2026-04-11 15:04:14 +02:00
src Route through LiteLLM's task-specific models and implement missing Ask Ash features 2026-07-02 18:48:43 +05:30
.env.example Fix panic-on-missing-env in auth middleware and ticket provider 2026-07-02 18:31:35 +05:30
.gitignore feat(ai-assistant): bootstrap rust axum backend with providers, routes, and db scaffolding 2026-04-11 15:04:14 +02:00
Cargo.lock feat: JWT auth middleware, env-var CORS origins, real user_id in confirm_action 2026-07-02 13:51:41 +02:00
Cargo.toml feat: JWT auth middleware, env-var CORS origins, real user_id in confirm_action 2026-07-02 13:51:41 +02:00
Dockerfile ci: deploy ai assistant via github actions and ghcr 2026-06-14 22:52:50 +05:30
README.md ci: stop treating registry host as secret 2026-04-17 02:39:49 +02:00

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 /health
  • POST /api/v1/chat/message
  • POST /api/v1/jobs/generate-description
  • POST /api/v1/forms/extract
  • POST /api/v1/tickets/create
  • POST /api/v1/help/search

Environment

  • APP_HOST
  • APP_PORT
  • DATABASE_URL
  • OLLAMA_BASE_URL
  • OLLAMA_CHAT_MODEL (default smollm2:360m)
  • OLLAMA_EMBED_MODEL (default nomic-embed-text)
  • HELP_CENTER_SEED_PATH
  • TICKETS_SOURCE

Architecture

  • chat/: workflow-oriented orchestration
  • jobs/, forms/, tickets/: domain modules
  • providers/llm: AiProvider + Ollama implementation
  • providers/tickets: TicketProvider + mock adapter
  • providers/help_center: HelpCenterProvider + local seed implementation
  • retrieval/embeddings: embedding abstraction + Ollama adapter
  • db/: DB connection, entities, repository helpers
  • routes/, 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_USERNAME
  • REGISTRY_PASSWORD