Roberto 17bf2d9fcb
Some checks failed
Tests / PHP 8.4 (push) Failing after 2m16s
Tests / PHP 8.3 (push) Failing after 2m20s
Tests / PHP 8.5 (push) Failing after 1m22s
chore: Remove unused @emnapi packages and mark dependencies as peer
2026-05-15 20:42:58 +02:00
2026-04-28 17:28:33 +00:00
2026-04-28 17:28:33 +00:00
2026-04-28 17:28:33 +00:00
2026-04-28 17:28:33 +00:00
2026-04-28 17:28:33 +00:00
2026-04-28 17:28:33 +00:00
2026-04-28 17:28:33 +00:00
2026-04-28 17:28:33 +00:00
2026-04-28 17:28:33 +00:00
2026-04-28 17:28:33 +00:00

TicketAssistant (Laravel 13 + pgvector + external Ollama)

AI-powered customer support ticket system using semantic retrieval + LLM re-ranking.

Requirements

  • Docker Desktop
  • Docker Compose v2
  • Ollama running on a reachable network server

Quick Start (Docker)

  1. Create environment file
cp .env.docker.example .env
  1. Set the external Ollama URL in .env
OLLAMA_BASE_URL=http://<OLLAMA_SERVER_IP_OR_HOSTNAME>:11434
  1. Build and start containers
docker compose up -d --build
  1. Install PHP dependencies in app container
docker compose exec app composer install
  1. Generate app key and run database setup
docker compose exec app php artisan key:generate
docker compose exec app php artisan migrate --seed

API base URL: http://localhost:8090/api Admin dashboard: http://localhost:8090/admin/dashboard

Admin Dashboard (Blade + Livewire)

  • /admin/dashboard: KPI cards + recente tickets + recente AI decisions
  • /admin/articles: artikel aanmaken + artikeloverzicht
  • /admin/tickets: tickets met AI-classificatie-overzicht

Business logic is isolated in service classes:

  • App\Services\AdminDashboardService
  • App\Services\AdminArticleService
  • App\Services\AdminTicketService

Services

  • web: Nginx (public endpoint)
  • app: PHP-FPM Laravel runtime
  • worker: queue worker for async jobs
  • postgres: PostgreSQL 17 + pgvector

Notes

  • No external AI APIs are used.
  • Ollama runs outside Docker on your network.
  • Set QUEUE_EMBEDDINGS=true for async article embedding generation.

Helpdesk Scraper Command

Importeer artikelen vanaf InternetToday Helpdesk (categorieen + subcategorieen):

docker compose exec app php artisan helpdesk:import

Opties:

# test zonder schrijven
docker compose exec app php artisan helpdesk:import --dry-run

# verwerk alleen eerste N artikelen
docker compose exec app php artisan helpdesk:import --limit=25

# custom base-url
docker compose exec app php artisan helpdesk:import --base-url=https://www.internettoday.nl/helpdesk
Description
No description provided
Readme 265 KiB
Languages
PHP 57%
Blade 42.7%
JavaScript 0.1%