Skip to content

Test d'une stack IA/RAG auto‑hébergée : microservices Spring Boot (gateway, auth, documents, rag) avec PostgreSQL/Qdrant/Ollama, orchestrés par Docker Compose, et un frontend Angular pour chatter avec un LLM local, gérer documents et profils via JWT.

Notifications You must be signed in to change notification settings

dbeaumont/knowledge-app

Repository files navigation

AI Knowledge Workspace

Plateforme RAG full offline (Mac M1) : microservices Spring Boot + frontend Angular, LLM local via Docker Model Runner, Qdrant pour la recherche vectorielle.

En bref

  • Java 21 / Spring Boot 3.3.x, Spring Cloud 2023.0.x, Spring AI (OpenAI starter)
  • RAG: Model Runner (qwen2.5, mxbai-embed-large) + Qdrant
  • Data: PostgreSQL, JPA + MapStruct
  • Frontend: Angular 18 (BFF OIDC via Gateway)
  • Orchestration: Docker Compose (dev / prod)

Note : Spring AI le plus recent supporte uniquement Spring Boot 3.3.x et Spring Cloud 2023.0.x.

Services

  • frontend : Angular + Nginx, reverse-proxy /api, /oauth2, /login, /logout
  • gateway : BFF Spring Cloud Gateway (OIDC, session, TokenRelay)
  • keycloak + keycloak-certgen : IdP OIDC + generation de cert
  • document-service : CRUD documents, extraction texte, PostgreSQL
  • rag-service : ingestion, embeddings, Qdrant, chat
  • user-service : profil utilisateur (/api/users/me)
  • postgres, qdrant, modelrunner, toolbox

Prerequis (Mac M1)

  • Docker Desktop (+ Model Runner active et TCP host-side)
  • ~12GB RAM pour les modeles
  • Modeles precharges: docker model pull qwen2.5 et docker model pull mxbai-embed-large
  • JDK 21 + Maven 3.9 (si build hors Docker)
  • Node 20 (si build frontend hors Docker)

Demarrage rapide

Option automatique

make ca-root
# Importer la CA locale: docs/ca-import.md
make all

Option pas a pas

make ca-rootvscode, comment effectuer un merge
# Importer la CA locale: docs/ca-import.md
make env
make hosts-keycloak
make pull-models
make run-models
make build up

Endpoints

# Frontend : http://localhost:4200
# Gateway : http://localhost:8080
# Keycloak : https://keycloak.local:8443
# Qdrant : http://localhost:6333
# Model Runner : http://localhost:12434/v1

Auth par defaut

  • admin/admin123 (roles ADMIN,USER)
  • user/user123 (role USER)

API (exemples)

  • Docs: GET /api/documents, POST /api/documents (multipart file ou content)
  • RAG: POST /api/rag/answer {query}, streaming SSE /api/rag/query

Build locaux (sans Docker)

cd backend && mvn clean package
cd frontend && npm install && npm run build

Docs utiles

  • docs/ca-import.md : import de la CA locale
  • docs/rag-call-flow.md : flux RAG (ingestion + query)

About

Test d'une stack IA/RAG auto‑hébergée : microservices Spring Boot (gateway, auth, documents, rag) avec PostgreSQL/Qdrant/Ollama, orchestrés par Docker Compose, et un frontend Angular pour chatter avec un LLM local, gérer documents et profils via JWT.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published