Skip to content

Repository files navigation

GolAi

CI

Agent IA de recommandation de jeux vidéo. GolAi analyse votre bibliothèque, vos préférences et le contexte de la conversation pour suggérer quoi jouer ensuite — avec des recommandations actionnables (jaquettes, métadonnées, liens stores) directement dans le chat.

Démo live · À propos · Contact

Aperçu GolAi


Fonctionnalités

Chat agentique

  • Conversation naturelle avec l'assistant, streaming SSE en temps réel
  • L'agent recherche et raisonne dans votre bibliothèque avant de répondre
  • Mode anonyme sans compte (bibliothèque fictive fournie)

Import de bibliothèque

  • Import automatique depuis Steam, PSN et Xbox
  • Synchronisation des statuts (terminé, en cours, abandonné, backlog)

RAG hybride

  • Recherche lexicale pg_trgm + similarité vectorielle pgvector
  • Embeddings multilingues BGE-M3 (CPU-only, pas de dépendance cloud)
  • Données enrichies : IGDB, SteamSpy, RAWG, OpenCritic, HowLongToBeat

Mutations IA confirmées

  • L'agent propose des actions (ajouter, noter, changer statut) sous forme de cartes cliquables
  • L'utilisateur confirme ou refuse avant que la bibliothèque soit modifiée

Production readiness

  • Rate limiting Postgres FOR UPDATE
  • Traces LLM complètes via Langfuse
  • Monitoring erreurs Sentry
  • Backups Postgres automatiques vers Backblaze B2

Stack

Couche Technologies
Backend Python 3.12 · FastAPI · SQLAlchemy async · Alembic
Agent IA Pydantic AI · Anthropic Haiku 4.5 · prompt caching · LiteLLM
Recherche PostgreSQL 16 · pgvector · pg_trgm · BGE-M3
Sources données Steam · PSN · Xbox · IGDB · SteamSpy · RAWG · HowLongToBeat
Frontend React 18 · TypeScript · Vite · Tailwind CSS v4
Observabilité Langfuse · Sentry
Ops Docker Compose · nginx · GitHub Actions · Backblaze B2

Architecture

flowchart LR
    U[Utilisateur] --> N[nginx]
    N --> F[Frontend React]
    N --> A[API FastAPI]
    F --> A
    A --> DB[(PostgreSQL + pgvector)]
    A --> AG[Agent Pydantic AI]
    AG --> LLM[Anthropic Haiku 4.5]
    AG --> DB
    A --> LF[Langfuse]
    A --> SE[Sentry]
Loading

Le flux RAG : à chaque message, l'agent récupère les jeux pertinents de la bibliothèque (hybride lexical + vectoriel), les injecte dans le contexte avec prompt caching, puis streame la réponse en SSE.


Lancer en local

Prérequis : Docker, Python 3.12, Node 22.

cp .env.example .env
# Renseigner au minimum : ANTHROPIC_API_KEY

Avec Docker Compose (recommandé) :

docker compose up

Accès : frontend http://localhost:5173, API http://localhost:8000.

Sans Docker (développement) :

# Base de données uniquement
docker compose up -d db

# Backend
backend/venv/bin/alembic upgrade head
backend/venv/bin/python -m uvicorn app.main:app --app-dir backend --reload

# Frontend (depuis le dossier frontend/)
nvm use 22
npm ci
npm run dev

Tests backend :

backend/venv/bin/python -m pytest

Documentation


Auteur

Construit par David Gola, ingénieur IA / backend Python.

GitHub · LinkedIn · golaichat@outlook.com

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages