Contexte :
ChatDoc est un gpt-like qui permet aux utilisateurs d’interagir avec le contenu d’un document qu’ils ont eux-mêmes fourni. L’application est construite avec FastAPI côté back-end et repose sur une authentification via Firebase. Les documents chargés sont automatiquement transformés en texte exploitable (markdown) puis découpés en sections pour être stockés dans une base vectorielle (Chroma) afin d’optimiser les recherches. Le projet est conçu pour être déployé en environnement conteneurisé avec Docker et automatisé en production via un workflow GitOps avec ArgoCD et Kubernetes.
Reproductibilité :
Dans l’ensemble, le README est clair et bien structuré : toutes les étapes pour lancer l’application en local sont expliquées, ce qui permet de suivre facilement le processus d’installation, malgré une petite erreur sur l’URL de clonage. Concernant la reproductibilité, la documentation précise clairement qu’il faut demander le fichier firebase_config.json pour pouvoir lancer l’application. C’est donc bien indiqué. Cependant, devoir contacter quelqu’un reste une limite pour une reproduction totalement autonome du projet. Ajouter un fichier firebase_config.example.json avec des champs vides, accompagné d’une explication pour générer sa propre configuration, permettrait de rendre l’installation vraiment fluide et indépendante, si réalisable. Enfin, l’installation demande plusieurs étapes manuelles (création de l’environnement virtuel, installation des dépendances, etc.), un script install.sh pourrait automatiser tout ça et rendre la mise en place encore plus rapide et fiable.
Bonnes pratiques :
Globalement, les bonnes pratiques sont bien respectées. Le travail est propre et beaucoup d’éléments attendus sont en place. J’aimerais tout de même pointer la structure du projet qui, dans son ensemble, est très bien construite mais pourrait être améliorée sur quelques détails. Le projet est organisé de manière claire avec un dossier app/ bien séparé, ce qui facilite la lecture du code. Le fait d'avoir un dépôt distinct pour le déploiement GitOps avec ArgoCD est aussi une très bonne pratique, car cela permet de séparer proprement le code applicatif de l'infrastructure. Il reste quelques petits détails à corriger : quelques artefacts comme example_images copy sont présents dans le dépôt et pourraient être nettoyés et mieux filtrés via le .gitignore pour garder le projet plus propre. Concernant la modularité, le découpage du projet est cohérent avec des dossiers pour le backend, les templates, les fichiers statiques et les tests, ce qui est appréciable. Cependant, même si le code est bien rangé, certaines fonctions principales manquent de docstrings ou de commentaires explicatifs. Ça rend parfois la compréhension un peu plus difficile quand on suit le traitement des documents ou l’appel aux APIs. Ajouter quelques explications internes rendrait le projet encore plus lisible pour un futur contributeur. Côté CI/CD, une action GitHub est bien mise en place pour lancer automatiquement les tests et vérifier le formattage du code avec Black à chaque push, ce qui est un vrai plus pour garder un code propre et homogène sans effort. La gestion des secrets est également bien automatisée dans la CI, ce qui est un très bon point pour la confidentialité.
Pistes d’amélioration :
Pour vous donner quelques suggestions :
-
En premier, il faudra penser à corriger le README pour avoir la bonne URL de clonage.
-
Ensuite, effectuer un nettoyage de votre repo en supprimant les artefacts inutiles permettrait de l’alléger et d’éviter la pollution, en les listant, par exemple, dans le .gitignore. Si vous souhaitez tout de même les garder, peut-être les regrouper dans un dossier dédié en le spécifiant dans la documentation pour que ce soit plus lisible.
-
Pour simplifier encore davantage l'installation, ça pourrait être utile d'ajouter un script install.sh pour automatiser la création de l'environnement virtuel et l'installation des dépendances.
-
Enfin, pour la configuration Firebase, ajouter comme autre option un fichier firebase_config.example.json avec des champs vides (ou des valeurs d'exemple) et une explication dans le README permettrait de rendre l'installation totalement autonome et fluide pour les utilisateurs qui souhaitent tout configurer eux-mêmes.
Côté user end, pour rendre l’expérience encore plus agréable si vous continuez à développer cette application, ça serait cool d’ajouter les aspects suivants :
-
Le modèle fonctionne bien sur les documents techniques ou de recherche (type articles scientifiques Axis), mais rencontre des difficultés avec des documents plus personnels, comme un mémoire de fin d’étude. Vous pourriez donc entraîner ou adapter le modèle à une plus grande diversité de types de documents afin d’assurer une performance homogène sur des contenus variés.
-
Lorsqu’on télécharge un nouveau document, l’application ne démarre pas automatiquement une nouvelle conversation mais reste sur la même. Une amélioration intéressante serait de démarrer un nouveau fil de discussion distinct à chaque fois qu’un utilisateur charge un document différent, afin d'éviter toute confusion ou perte de contexte.
Vous avez produit un super travail en si peu de temps. Bravo à toute l’équipe ! 🔥👏
Contexte :
ChatDoc est un gpt-like qui permet aux utilisateurs d’interagir avec le contenu d’un document qu’ils ont eux-mêmes fourni. L’application est construite avec FastAPI côté back-end et repose sur une authentification via Firebase. Les documents chargés sont automatiquement transformés en texte exploitable (markdown) puis découpés en sections pour être stockés dans une base vectorielle (Chroma) afin d’optimiser les recherches. Le projet est conçu pour être déployé en environnement conteneurisé avec Docker et automatisé en production via un workflow GitOps avec ArgoCD et Kubernetes.
Reproductibilité :
Dans l’ensemble, le README est clair et bien structuré : toutes les étapes pour lancer l’application en local sont expliquées, ce qui permet de suivre facilement le processus d’installation, malgré une petite erreur sur l’URL de clonage. Concernant la reproductibilité, la documentation précise clairement qu’il faut demander le fichier
firebase_config.jsonpour pouvoir lancer l’application. C’est donc bien indiqué. Cependant, devoir contacter quelqu’un reste une limite pour une reproduction totalement autonome du projet. Ajouter un fichierfirebase_config.example.jsonavec des champs vides, accompagné d’une explication pour générer sa propre configuration, permettrait de rendre l’installation vraiment fluide et indépendante, si réalisable. Enfin, l’installation demande plusieurs étapes manuelles (création de l’environnement virtuel, installation des dépendances, etc.), un scriptinstall.shpourrait automatiser tout ça et rendre la mise en place encore plus rapide et fiable.Bonnes pratiques :
Globalement, les bonnes pratiques sont bien respectées. Le travail est propre et beaucoup d’éléments attendus sont en place. J’aimerais tout de même pointer la structure du projet qui, dans son ensemble, est très bien construite mais pourrait être améliorée sur quelques détails. Le projet est organisé de manière claire avec un dossier
app/bien séparé, ce qui facilite la lecture du code. Le fait d'avoir un dépôt distinct pour le déploiement GitOps avec ArgoCD est aussi une très bonne pratique, car cela permet de séparer proprement le code applicatif de l'infrastructure. Il reste quelques petits détails à corriger : quelques artefacts commeexample_images copysont présents dans le dépôt et pourraient être nettoyés et mieux filtrés via le.gitignorepour garder le projet plus propre. Concernant la modularité, le découpage du projet est cohérent avec des dossiers pour le backend, les templates, les fichiers statiques et les tests, ce qui est appréciable. Cependant, même si le code est bien rangé, certaines fonctions principales manquent de docstrings ou de commentaires explicatifs. Ça rend parfois la compréhension un peu plus difficile quand on suit le traitement des documents ou l’appel aux APIs. Ajouter quelques explications internes rendrait le projet encore plus lisible pour un futur contributeur. Côté CI/CD, une action GitHub est bien mise en place pour lancer automatiquement les tests et vérifier le formattage du code avec Black à chaque push, ce qui est un vrai plus pour garder un code propre et homogène sans effort. La gestion des secrets est également bien automatisée dans la CI, ce qui est un très bon point pour la confidentialité.Pistes d’amélioration :
Pour vous donner quelques suggestions :
En premier, il faudra penser à corriger le README pour avoir la bonne URL de clonage.
Ensuite, effectuer un nettoyage de votre repo en supprimant les artefacts inutiles permettrait de l’alléger et d’éviter la pollution, en les listant, par exemple, dans le
.gitignore. Si vous souhaitez tout de même les garder, peut-être les regrouper dans un dossier dédié en le spécifiant dans la documentation pour que ce soit plus lisible.Pour simplifier encore davantage l'installation, ça pourrait être utile d'ajouter un script
install.shpour automatiser la création de l'environnement virtuel et l'installation des dépendances.Enfin, pour la configuration Firebase, ajouter comme autre option un fichier
firebase_config.example.jsonavec des champs vides (ou des valeurs d'exemple) et une explication dans le README permettrait de rendre l'installation totalement autonome et fluide pour les utilisateurs qui souhaitent tout configurer eux-mêmes.Côté user end, pour rendre l’expérience encore plus agréable si vous continuez à développer cette application, ça serait cool d’ajouter les aspects suivants :
Le modèle fonctionne bien sur les documents techniques ou de recherche (type articles scientifiques Axis), mais rencontre des difficultés avec des documents plus personnels, comme un mémoire de fin d’étude. Vous pourriez donc entraîner ou adapter le modèle à une plus grande diversité de types de documents afin d’assurer une performance homogène sur des contenus variés.
Lorsqu’on télécharge un nouveau document, l’application ne démarre pas automatiquement une nouvelle conversation mais reste sur la même. Une amélioration intéressante serait de démarrer un nouveau fil de discussion distinct à chaque fois qu’un utilisateur charge un document différent, afin d'éviter toute confusion ou perte de contexte.
Vous avez produit un super travail en si peu de temps. Bravo à toute l’équipe ! 🔥👏