Fix: Gestion robuste des valeurs None dans .lower()
Problème:
- AttributeError: 'NoneType' object has no attribute 'lower'
- Se produisait quand section.get("title") retournait None au lieu de ""
Corrections:
- llm_classifier.py:
* is_excluded_section(): (section.get("title") or "").lower()
* filter_indexable_sections(): (s.get("chapterTitle") or "").lower()
* validate_classified_sections(): Idem pour chapter_title et section_title
- llm_validator.py:
* apply_corrections(): Ajout de vérification "if title and ..."
- llm_chat.py:
* call_llm(): Ajout d'une exception si provider est None/vide
Pattern de correction:
AVANT: section.get("title", "").lower() # Échoue si None
APRÈS: (section.get("title") or "").lower() # Sûr avec None
Raison:
.get(key, default) retourne le default SEULEMENT si la clé n'existe pas.
Si la clé existe avec valeur None, .get() retourne None, pas le default!
Donc: {"title": None}.get("title", "") -> None (pas "")
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -56,6 +56,9 @@ def call_llm(
|
||||
>>> for token in call_llm("Test", "ollama", "qwen2.5:7b"):
|
||||
... print(token, end="")
|
||||
"""
|
||||
if not provider:
|
||||
raise LLMError("Provider cannot be None or empty")
|
||||
|
||||
provider = provider.lower()
|
||||
|
||||
logger.info(f"[LLM Call] Provider: {provider}, Model: {model}, Stream: {stream}")
|
||||
|
||||
Reference in New Issue
Block a user