Flamehaven FileSearch — moteur open source de recherche documentaire RAG auto-hébergeable
(github.com/flamehaven01)🔥Flamehaven FileSearch
- Flamehaven FileSearch est un moteur open source de recherche sémantique auto-hébergeable qui permet à n’importe qui de mettre en place en 5 minutes un système RAG (Retrieval-Augmented Generation) basé sur des documents.
- Construit sur Python, FastAPI et SQLite, il utilise Google Gemini Embedding pour effectuer des questions-réponses en langage naturel à partir de divers documents comme PDF/DOCX/TXT/MD.
Pourquoi l’avoir créé ?
- La plupart des implémentations open source de RAG fonctionnent bien dans des environnements Colab ou Jupyter, mais leur structure est souvent trop complexe ou leur stabilité insuffisante pour un déploiement réel sur serveur.
- Flamehaven FileSearch a été conçu avec pour objectif une « pile RAG légère qui fonctionne réellement », afin que chercheurs, startups et développeurs indépendants puissent expérimenter immédiatement la recherche sémantique sur leurs propres données.
Pourquoi faut-il y prêter attention ?
- Autonomie totale : aucune dépendance à un serveur externe ou au cloud, toutes les données sont stockées en local.
- Architecture pensée pour les développeurs : SDK Python + API REST, documentation Swagger fournie automatiquement via FastAPI.
- Distribution en package PyPI : installation immédiate depuis PyPI — installation entièrement automatisée en une seule ligne avec
pip install flamehaven-filesearch[api]. - Exécution immédiate : après l’installation, le serveur se lance directement avec la commande
flamehaven-api, et l’API peut être testée dans le navigateur via/docs. - Extensibilité : stockage SQLite, architecture à plugins, prise en charge du déploiement Docker.
- Adapté à l’enseignement et à la recherche : utilise les embeddings Gemini, idéal pour des travaux pratiques de recherche sémantique fondée sur les LLM les plus récents.
Que contient-il ? (points forts)
-
SDK Python :
from flamehaven_filesearch import FlamehavenFileSearch→ fournit toutes les fonctions d’upload de documents, de recherche et de gestion des stores.
-
API REST : endpoints
/upload,/search,/stores+ interface Swagger UI. -
Prise en charge de Docker :
docker run -e GEMINI_API_KEY=... -p 8000:8000 flamehaven/filesearch:latest -
Structure :
core(moteur)/api(FastAPI)/data(SQLite)/examples/docs
Essai rapide
1️⃣ Package PyPI
Flamehaven FileSearch peut être installé directement via PyPI.
Dernière version : https://pypi.org/project/flamehaven-filesearch
pip install flamehaven-filesearch[api]
2️⃣ Installation
pip install flamehaven-filesearch[api]
export GEMINI_API_KEY="your-google-gemini-key"
flamehaven-api
3️⃣ Upload de documents et recherche
curl -X POST "http://localhost:8000/upload" -F "file=@handbook.pdf"
curl "http://localhost:8000/search?q=vacation+policy"
4️⃣ Exemple d’utilisation du SDK
from flamehaven_filesearch import FlamehavenFileSearch
fs = FlamehavenFileSearch()
fs.upload_file("handbook.pdf")
print(fs.search("vacation policy")["answer"])
Performances & spécifications
- Environnement : Ubuntu 22.04 / 2vCPU / 4GB RAM / SSD
- Upload d’un PDF de 10MB → environ 5 secondes
- Temps de réponse moyen en recherche → 2 secondes (avec citation de 5 sources)
- Suppression/création de store → moins d’1 seconde
- Surcharge de stockage → environ 5 % de la taille du document
Feuille de route
- v1.1 : gestion du cache et des quotas
- v1.2 : recherche par lots + streaming WebSocket
- v2.0 : prise en charge des documents multilingues, tableau de bord analytique
- À venir : intégration de bases vectorielles Pinecone/Weaviate, OCR, stores collaboratifs
Licence
- Licence MIT (entièrement open source)
🛡️ Avis de sécurité GitHub et de compte Flamehaven
Des tentatives de connexion suspectes ont récemment été détectées sur le compte GitHub Flamehaven (ce compte), ce qui a conduit à sa suspension. Le problème est actuellement en cours de vérification avec l’équipe de sécurité de GitHub.
À la suite de cet incident, les comptes comprenant notamment dir2md, flashrecord, crom-efficient et Arr-medic-cyp3a4 sont temporairement hors service.
Nous vous présentons nos sincères excuses pour la gêne occasionnée et vous remercions de votre compréhension jusqu’à la fin des vérifications de sécurité.
4 commentaires
Mise à jour : sortie de la v1.2.2
Depuis la publication du message initial, la version a été mise à jour jusqu’à la v1.2.2 à ce jour.
Pour résumer brièvement les changements :
Renforcement des tests et de la stabilité
Service de chiffrement : test d’aller-retour encrypt/decrypt basé sur une clé env + test du chemin invalid token
Recherche par lot : file de priorité parallèle, service non initialisé → 503, isolation des exceptions par requête
Cache Redis : tests get/set/delete/clear + disponibilité avec un fake client en mémoire
cache_redis.py, qui n’était jusqu’ici pas couvert, a été ajouté au périmètre de couverturePréparation du service (Service readiness)
Lors du premier démarrage du serveur, création automatique du store par défaut et d’un petit document de fallback
Même sans rien téléverser,
/searchet/healthrenvoient immédiatement une réponse 200→ utilisable tout de suite pour les démos, les health checks CI et le démarrage d’agents
Ajustements côté exploitation
La chaîne de version, les métadonnées de logs, les labels Prometheus et le titre OpenAPI ont été harmonisés en v1.2.2
Redis reste optionnel et, s’il est absent, le système bascule naturellement sur un cache LRU in-process
Aucun breaking change : les utilisateurs existants peuvent faire la mise à niveau telle quelle.
Le projet est progressivement peaufiné pour devenir quelque chose de « directement utilisable en production ».
🚀 Sortie de Flamehaven Filesearch v1.2.1 !
Nous dévoilons la dernière version de Flamehaven Filesearch, v1.2.1, améliorée en continu depuis la précédente mise à jour. Cette release met l’accent sur le renforcement de la sécurité, l’extension des outils d’administration et l’amélioration de la facilité d’exploitation.
🔐 Principales mises à jour
🔺Ajout des Admin Cache Controls
Consultation de l’état du cache et vidage possibles via les routes /api/admin/cache/stats et /api/admin/cache/flush (réservé aux admins)
🔺Renforcement des permissions des API Key
Les clés sans privilège admin renvoient un 403 lors de l’utilisation de fonctions d’administration
Les nouvelles API keys incluent par défaut le privilège admin
🔺Introduction du hook IAMProvider
Préparation de l’architecture en vue de l’intégration future de backends OIDC/IAM
🔺Extension des métriques
Ajout de Cache, health_status et d’un placeholder prometheus pour améliorer l’exploitation du dashboard
🔺Mise à jour du frontend
Connexion des pages Cache / Metrics au backend
Connexion de la fonctionnalité de saisie de Token sur les pages Upload / Admin
Réorganisation des nouvelles pages Landing et Dashboard
🔺Renforcement des tests
Ajout de test_admin_cache.py pour introduire des tests des API d’administration liées au cache
🔺Mise à jour de la documentation
Mise à jour de la version dans le README et renforcement du guide de sécurité, avec inclusion de la variable d’environnement FLAMEHAVEN_ENC_KEY
🐛 Correctifs
Blocage de l’accès (403) lors d’une demande de fonction d’administration sans privilège admin
🔗 GitHub: https://github.com/flamehaven01/Flamehaven-Filesearch
Cette version consolide également les bases en vue de la future intégration IAM et de l’amélioration avancée du dashboard.
J’ai publié hier Flamehaven FileSearch v1.2.0. Cette version se concentre sur la transformation de l’ensemble du service, d’une « API publique » vers une plateforme de niveau entreprise axée sur la sécurité et la scalabilité.
Les principaux changements sont les suivants :
Ajout d’un système d’authentification et d’autorisations API
Tous les endpoints protégés nécessitent une authentification par Bearer Token.
Les API Keys prennent en charge des autorisations granulaires pour l’upload, la recherche, le stockage, la suppression, etc., avec rate limiting par clé, journaux d’audit et stockage sous forme de hash SHA256 (sans conservation de la clé d’origine).
Ajout d’un Admin Dashboard
Il s’agit d’une interface web permettant de créer, consulter et révoquer des API Keys, ainsi que de visualiser les statistiques de requêtes et la répartition de l’utilisation des endpoints.
Entièrement autonome en HTML/CSS/JS, sans dépendance externe.
Batch Search API
Traite de 1 à 100 requêtes en un seul appel.
Propose des modes d’exécution parallèles/séquentiels, un tri basé sur la priorité, une isolation des erreurs par requête et des métriques de timing détaillées.
Backend de cache Redis
Option de cache distribué pour les environnements multi-workers.
Latence de consultation <10 ms, fallback LRU automatique et réduction de 40 à 60 % du volume d’appels LLM.
Mise à disposition de modèles de déploiement (Docker/Kubernetes)
Inclut des exemples Docker, Docker Compose et Kubernetes (ConfigMap/Secret/Deployment) pour un déploiement immédiat.
Résumé des performances :
Cache hit : <10 ms
Cache miss (appel LLM) : ~0.5–3s
Batch Search (10) : ~2–5s
GitHub : https://github.com/flamehaven01/Flamehaven-Filesearch
Les retours sur la conception de la sécurité, l’ergonomie de l’API ou l’architecture de déploiement sont les bienvenus.
Les versions v1.2.1 (amélioration de l’authentification admin, UI de configuration Redis) et v1.3.0 (rotation des clés + OAuth2/OIDC) sont également en préparation.
Nous avons publié aujourd’hui la v1.1.0.
Cette version inclut principalement un correctif pour une vulnérabilité de traversée de chemin, des mises à jour de sécurité FastAPI/Starlette, le traçage des ID de requête, la limitation de débit, la mise en cache (hit en <10 ms) et l’ajout de métriques Prometheus. Elle fonctionne de manière bien plus stable que les versions précédentes.
Cette mise à jour reste toujours axée sur une architecture légère et auto-hébergeable. Merci.