Fix AI processor error handling for empty AI service responses

This commit is contained in:
Jarian Cottingham 2026-02-02 10:52:34 -06:00
parent e29e5dbc76
commit 876cfddce7

View File

@ -72,6 +72,7 @@ class FactExtractor:
"""
# Call the AI service with gpt-oss model for fact extraction
try:
response = requests.post(
extraction_url,
json={
@ -86,19 +87,32 @@ class FactExtractor:
headers=self._get_headers(),
timeout=60
)
response.raise_for_status()
except requests.exceptions.RequestException as e:
logger.error(f"Request failed for article '{title}': {e}")
# Return basic structure if request fails
return self._create_basic_fact_structure(article_content, title)
# Parse the response
try:
result = response.json()
extracted_text = result['choices'][0]['message']['content'].strip()
except json.JSONDecodeError as e:
logger.error(f"Failed to parse JSON response from AI service for article '{title}': {e}")
# Return basic structure if response parsing fails
return self._create_basic_fact_structure(article_content, title)
# Check if the response is empty or invalid
if not extracted_text or extracted_text.strip() == "":
logger.warning(f"Empty response from AI service for article '{title}'. Creating basic structure.")
facts = self._create_basic_fact_structure(article_content, title)
else:
# Try to parse the JSON from the response
try:
facts = json.loads(extracted_text)
except json.JSONDecodeError:
except json.JSONDecodeError as e:
# If JSON parsing fails, create a basic structure
logger.warning(f"Failed to parse JSON from AI response for article '{title}'. Creating basic structure.")
logger.warning(f"Failed to parse JSON from AI response for article '{title}': {e}. Creating basic structure.")
facts = self._create_basic_fact_structure(article_content, title)
# Ensure all required fields are present