Le but : vous donnez un dossier Google Drive (ou glissez des fichiers), vous obtenez un assistant qui répond à partir de ces documents, avec les sources, et qui reste à jour tout seul (ajouts, modifications, suppressions). Tout est managé sur Google Cloud, déployable en une commande.
Dossier Drive ─┐ ┌───────────────────────────────┐
Glisser-déposer┼─► synchro (10 min) ─► │ Vertex AI RAG Engine (corpus) │ ◄─ agent ADK (Gemini) ◄─ vous
│ + bouton └───────────────────────────────┘ interface web privée
Testé en vrai le 14/10/2026 sur
main-project-511608(compte Gmail, sans organisation, sans Workspace) : déploiement Terraform et shell, synchro Drive (sous-dossiers), dépôt, modification, suppression, chat cité, relance sans changement, suppression. Test automatique :scripts/test_e2e.py.
Démarrage en 5 commandes
Raccourci :
./ragkit status,./ragkit deploy,./ragkit ouvrir(docs/11).
cd gcp_rag/01-rag-engine-sync
cp config/test.env config/moi.env && nano config/moi.env # PROJECT_ID, USERS, DRIVE_FOLDERS
gcloud services enable cloudresourcemanager.googleapis.com --project=<PROJET>
source scripts/config.sh config/moi.env # affiche les 2 adresses de partage Drive
(cd terraform && terraform init && terraform apply) # ≈ 4 min
bash scripts/ouvrir_interface.sh # http://localhost:8080Puis, au choix : Se connecter avec Google (après l'étape console de 04-bis) et choisir « Tout mon Drive » ou des dossiers ; ou partager un dossier avec les 2 adresses affichées (04). Posez vos questions.
Les tutos
| # | Document | Pour |
|---|---|---|
| 00 | Spécification | Exigences, architecture, choix, faits vérifiés |
| 01 | Comprendre et choisir | Le RAG, le marché (Gemini Enterprise, RAG Engine, SaaS), les 3 approches |
| 02 | Prérequis | Poste, compte, projet, région |
| 03-1 | Déployer : shell | gcloud seul, sans Terraform |
| 03-2 | Déployer : Terraform | Recommandé |
| 03-3 | Déployer : console | À la souris + Cloud Shell |
| 04 | Connecter Drive : dossier partagé | Sans connexion : partage avec 2 adresses |
| 04-bis | Connexion Google | « Se connecter avec Google », tout mon Drive ou des dossiers, synchro auto (push) |
| 05 | Utiliser l'interface | Écran, questions, messages, mode local |
| 06 | Synchro et exploitation | Algorithme, fréquence, surveillance, limites |
| 07 | Droits (IAM) | Matrice complète, variantes, IAP |
| 08 | Coûts | Coût fixe RagManagedDb, coûts à l'usage, exemple |
| 09 | Dépannage | Toutes les erreurs rencontrées, avec leur solution |
| 10 | Tout supprimer | Destroy, arrêt du coût fixe, partages |
| 11 | CLI ragkit | Activer/désactiver les briques, déployer, synchro, journaux, tests |
Le code
| Fichier | Rôle |
|---|---|
| app/kit.py | Sources (config dans le bucket), listing Drive, synchro, recherche avec reranking |
| app/gdrive.py | Comptes Google connectés (OAuth), miroir GCS, API changes, canaux push |
| app/hook.py | Service public des notifications push Drive |
| app/sync_job.py | Le job Cloud Run : une passe de synchro |
| app/agents/assistant_documents/agent.py | L'agent ADK : répond uniquement avec les documents, cite ses sources |
| app/main.py | Serveur : API ADK (/run_sse…) + /api/* (sources, dépôt, documents, synchro) + page |
| app/static/index.html | L'interface (une page, sans framework ni build) |
| terraform/ | Toute l'infrastructure |
| scripts/ | config.sh, deployer_shell.sh, supprimer_shell.sh, ouvrir_interface.sh, connexion_google.sh, test_e2e.py |
| tests/test_sync.py | Tests de la logique de synchro (sans réseau) : pytest -q tests/ |
Versions testées : google-adk 2.10.0, google-cloud-aiplatform 1.165.1 (imposé par ADK), Terraform 1.16,
provider hashicorp/google 8.7, gcloud 587, modèle gemini-2.5-flash (europe-west4, option gemini-3.5-flash sur global), embeddings text-multilingual-embedding-002.
Voir aussi : 02 Gemini Enterprise natif (droits par utilisateur), 03 hybride (ce kit + une app Gemini Enterprise), 04 local (sans GCP, avec Claude).