chore: improve output message from detect_language tool
Browse files
app.py
CHANGED
@@ -50,7 +50,7 @@ def conversational_utterance(user_content:str)-> str:
|
|
50 |
|
51 |
@tool
|
52 |
def language_detection(text:str)-> str:
|
53 |
-
"""Detects the language of the input text.
|
54 |
Args:
|
55 |
text: the input message or wording to detect language from.
|
56 |
"""
|
@@ -61,12 +61,18 @@ def language_detection(text:str)-> str:
|
|
61 |
pred = preds[0]
|
62 |
language_probabilities_dict = {p["label"]: float(p["score"]) for p in pred}
|
63 |
predicted_language_code = max(language_probabilities_dict, key=language_probabilities_dict.get)
|
64 |
-
|
|
|
|
|
65 |
try:
|
66 |
predicted_language = pycountry.languages.get(alpha_2=predicted_language_code)
|
67 |
-
|
68 |
-
|
|
|
69 |
return predicted_language_code_str
|
|
|
|
|
|
|
70 |
else:
|
71 |
return "None"
|
72 |
|
|
|
50 |
|
51 |
@tool
|
52 |
def language_detection(text:str)-> str:
|
53 |
+
"""Detects the language of the input text using basic xlm-roberta-base-language-detection.
|
54 |
Args:
|
55 |
text: the input message or wording to detect language from.
|
56 |
"""
|
|
|
61 |
pred = preds[0]
|
62 |
language_probabilities_dict = {p["label"]: float(p["score"]) for p in pred}
|
63 |
predicted_language_code = max(language_probabilities_dict, key=language_probabilities_dict.get)
|
64 |
+
tool_prediction_confidence = language_probabilities_dict[predicted_language_code]
|
65 |
+
confidence_str = f"Tool Confidence: {tool_prediction_confidence}"
|
66 |
+
predicted_language_code_str = f"Predicted language code (ISO 639): {predicted_language_code}/n{confidence_str}"
|
67 |
try:
|
68 |
predicted_language = pycountry.languages.get(alpha_2=predicted_language_code)
|
69 |
+
if predicted_language:
|
70 |
+
predicted_language_str = f"Predicted language: {predicted_language.name}/n{confidence_str}"
|
71 |
+
return predicted_language_str
|
72 |
return predicted_language_code_str
|
73 |
+
|
74 |
+
except Exception as e:
|
75 |
+
return f"Error mapping country code to name (pycountry): {str(e)}/n{predicted_language_code_str}"
|
76 |
else:
|
77 |
return "None"
|
78 |
|