Update summarizer/summarizer.py
Browse files- summarizer/summarizer.py +13 -7
summarizer/summarizer.py
CHANGED
@@ -38,30 +38,36 @@ class Summarizer:
|
|
38 |
return f"Translation failed: {str(e)}"
|
39 |
def summarize_text(self, text: str, target_lang: str = 'en') -> str:
|
40 |
"""Detect language, translate if needed, summarize, format, and retranslate if needed."""
|
41 |
-
|
42 |
-
|
43 |
# Translate if not in English
|
44 |
-
|
45 |
-
|
46 |
-
# Summarize using Hugging Face API
|
47 |
payload = {
|
48 |
-
"inputs":
|
49 |
}
|
50 |
response = requests.post(self.summarizer_api_url, headers=self.headers, json=payload, timeout=30)
|
51 |
response.raise_for_status()
|
|
|
52 |
response_data = response.json()
|
|
|
53 |
if isinstance(response_data, list) and "generated_text" in response_data[0]:
|
54 |
summary = response_data[0]["generated_text"]
|
55 |
else:
|
56 |
return "Unexpected response format from Hugging Face API."
|
|
|
57 |
formatted_summary = self.format_summary(summary)
|
|
|
58 |
# Translate back to target language if needed
|
59 |
if target_lang != 'en':
|
60 |
formatted_summary = self.translate_text(formatted_summary, target_lang)
|
|
|
61 |
return formatted_summary
|
|
|
62 |
except requests.exceptions.Timeout:
|
63 |
return "Summarization request timed out."
|
64 |
except requests.exceptions.RequestException as e:
|
65 |
return f"Summarization request failed: {str(e)}"
|
66 |
except Exception as e:
|
67 |
-
return f"An error occurred during summarization: {str(e)}"
|
|
|
38 |
return f"Translation failed: {str(e)}"
|
39 |
def summarize_text(self, text: str, target_lang: str = 'en') -> str:
|
40 |
"""Detect language, translate if needed, summarize, format, and retranslate if needed."""
|
41 |
+
try:
|
42 |
+
cleaned_text = self.clean_text(text)
|
43 |
# Translate if not in English
|
44 |
+
if target_lang != 'en':
|
45 |
+
cleaned_text = self.translate_text(cleaned_text, "en")
|
46 |
+
# Summarize using Hugging Face API
|
47 |
payload = {
|
48 |
+
"inputs": f"summarize the clinical case with diagnosis, comorbidities, and treatment plan: {cleaned_text}"
|
49 |
}
|
50 |
response = requests.post(self.summarizer_api_url, headers=self.headers, json=payload, timeout=30)
|
51 |
response.raise_for_status()
|
52 |
+
|
53 |
response_data = response.json()
|
54 |
+
|
55 |
if isinstance(response_data, list) and "generated_text" in response_data[0]:
|
56 |
summary = response_data[0]["generated_text"]
|
57 |
else:
|
58 |
return "Unexpected response format from Hugging Face API."
|
59 |
+
|
60 |
formatted_summary = self.format_summary(summary)
|
61 |
+
|
62 |
# Translate back to target language if needed
|
63 |
if target_lang != 'en':
|
64 |
formatted_summary = self.translate_text(formatted_summary, target_lang)
|
65 |
+
|
66 |
return formatted_summary
|
67 |
+
|
68 |
except requests.exceptions.Timeout:
|
69 |
return "Summarization request timed out."
|
70 |
except requests.exceptions.RequestException as e:
|
71 |
return f"Summarization request failed: {str(e)}"
|
72 |
except Exception as e:
|
73 |
+
return f"An error occurred during summarization: {str(e)}"
|