feat:add tesseract option#28
Conversation
Kaiohz
left a comment
There was a problem hiding this comment.
📊 Code Review — Score: 7/10
✅ Points Positifs
-
Architecture améliorée : Le passage d'une config statique module-level vers une config injectable dans le constructeur est un bon pattern — plus flexible, plus testable.
-
Tests à jour : Tous les tests existants sont mis à jour, et un nouveau test couvre le mode tesseract.
-
Documentation : Le
.env.exampleest à jour avec les options documentées. -
Lazy import : L'import
from config import RAGConfigà l'intérieur de la fonction évite les imports circulaires potentiels. -
Renommage propre :
LlmConfig→KreuzbergLlmConfigévite le conflit de noms avec le localLLMConfig.
⚠️ Points à Améliorer
1. Validation du paramètre manquante
if ocr_mode == "vlm":
ocr = OcrConfig(backend="vlm", ...)
else:
ocr = OcrConfig(backend="tesseract")- Problème : Si on passe
ocr_mode="unknown", ça tombe silencieusement dans leelseet utilise tesseract. - Suggestion : Ajouter une validation explicite :
VALID_OCR_MODES = ("vlm", "tesseract")
if ocr_mode not in VALID_OCR_MODES:
raise ValueError(f"Invalid OCR mode: {ocr_mode}. Must be one of {VALID_OCR_MODES}")2. Type hints insuffisants
ocr_mode: str | None = None- Suggestion : Utiliser
Literalpour plus de précision :
from typing import Literal
OCRMode = Literal["vlm", "tesseract"]
def make_extraction_config(ocr_mode: OCRMode | None = None) -> ExtractionConfig:3. Pas de docstrings
Les nouvelles signatures n'ont pas de documentation :
make_extraction_config()— manque docstringKreuzbergAdapter.__init__()— manque docstring
4. Fichier kreuzberg_raganything_parser.py
Juste une ligne vide ajoutée — pourquoi l'avoir inclus dans ce commit ?
📝 Suggestions d'amélioration (optionnelles)
- Enum pour OCRMode : Plus robuste qu'une string :
class OCRMode(str, Enum):
VLM = "vlm"
TESSERACT = "tesseract"- Logs de debug : Ajouter un log au démarrage indiquant quel OCR mode est utilisé.
🎯 Verdict
PR fonctionnelle qui ajoute la flexibilité attendue. Quelques améliorations de robustesse (validation, type hints) mériteraient d'être ajoutées avant merge. Rien de bloquant, mais un quick pass de cleanup améliorerait la maintenabilité.
Recommandation : soit merge tel quel si urgent, soit ajouter validation + type hints dans un follow-up.
No description provided.