Update app.py
Browse files
app.py
CHANGED
|
@@ -823,47 +823,18 @@ def generate_answer_langchain(
|
|
| 823 |
if not retrieved_docs:
|
| 824 |
return "I couldn't find relevant information to answer your question."
|
| 825 |
|
| 826 |
-
#
|
| 827 |
-
|
| 828 |
-
|
| 829 |
-
|
| 830 |
-
|
| 831 |
-
|
| 832 |
-
|
| 833 |
-
|
| 834 |
-
|
| 835 |
-
|
| 836 |
-
break
|
| 837 |
-
else:
|
| 838 |
-
if attempt < max_attempts:
|
| 839 |
-
logger.warning(f" β Attempt {attempt}/{max_attempts} failed, retrying...")
|
| 840 |
-
|
| 841 |
-
if not llm_answer:
|
| 842 |
-
logger.error(f" β All {max_attempts} LLM attempts failed")
|
| 843 |
-
|
| 844 |
-
# Try scaffold-and-polish as fallback
|
| 845 |
-
try:
|
| 846 |
-
logger.info(" β Attempting scaffold-and-polish using PHI model")
|
| 847 |
-
polished = scaffold_and_polish(query, retrieved_docs, llm_client)
|
| 848 |
-
if polished:
|
| 849 |
-
logger.info(" β
Scaffold-and-polish produced an answer")
|
| 850 |
-
return polished
|
| 851 |
-
except Exception as e:
|
| 852 |
-
logger.error(f" β Scaffold-and-polish error: {e}")
|
| 853 |
-
|
| 854 |
-
# Final fallback: extractive templated answer (guaranteed deterministic & FAST)
|
| 855 |
-
try:
|
| 856 |
-
logger.info(" β Using extractive fallback generator")
|
| 857 |
-
fallback = generate_extractive_answer(query, retrieved_docs)
|
| 858 |
-
if fallback:
|
| 859 |
-
logger.info(" β
Extractive fallback produced an answer")
|
| 860 |
-
return fallback
|
| 861 |
-
except Exception as e:
|
| 862 |
-
logger.error(f" β Extractive fallback error: {e}")
|
| 863 |
-
|
| 864 |
-
return "I apologize, but I'm having trouble generating a response. Please try rephrasing your question or ask something else."
|
| 865 |
|
| 866 |
-
return
|
| 867 |
|
| 868 |
# ============================================================================
|
| 869 |
# GRADIO INTERFACE
|
|
@@ -889,16 +860,12 @@ def fashion_chatbot(message: str, history: List[List[str]]):
|
|
| 889 |
|
| 890 |
yield f"π Generating answer ({len(retrieved_docs)} sources found)..."
|
| 891 |
|
| 892 |
-
|
| 893 |
-
|
| 894 |
-
|
| 895 |
-
llm_answer = generate_llm_answer(message.strip(), retrieved_docs, llm_client, attempt)
|
| 896 |
-
|
| 897 |
-
if llm_answer:
|
| 898 |
-
break
|
| 899 |
|
| 900 |
if not llm_answer:
|
| 901 |
-
logger.error(f" β
|
| 902 |
yield "I apologize, but I'm having trouble generating a response. Please try rephrasing your question."
|
| 903 |
return
|
| 904 |
|
|
|
|
| 823 |
if not retrieved_docs:
|
| 824 |
return "I couldn't find relevant information to answer your question."
|
| 825 |
|
| 826 |
+
# Use extractive answer as PRIMARY method - reliable and high-quality
|
| 827 |
+
# Small LLMs (DistilGPT2) produce nonsensical output on CPU
|
| 828 |
+
logger.info(" β Using extractive answer generator (primary method)")
|
| 829 |
+
try:
|
| 830 |
+
extractive_answer = generate_extractive_answer(query, retrieved_docs)
|
| 831 |
+
if extractive_answer:
|
| 832 |
+
logger.info(" β
Extractive answer generated successfully")
|
| 833 |
+
return extractive_answer
|
| 834 |
+
except Exception as e:
|
| 835 |
+
logger.error(f" β Extractive answer error: {e}")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 836 |
|
| 837 |
+
return "I apologize, but I'm having trouble generating a response. Please try rephrasing your question or ask something else."
|
| 838 |
|
| 839 |
# ============================================================================
|
| 840 |
# GRADIO INTERFACE
|
|
|
|
| 860 |
|
| 861 |
yield f"π Generating answer ({len(retrieved_docs)} sources found)..."
|
| 862 |
|
| 863 |
+
# Use extractive answer - reliable and high-quality
|
| 864 |
+
logger.info(" β Generating extractive answer")
|
| 865 |
+
llm_answer = generate_extractive_answer(message.strip(), retrieved_docs)
|
|
|
|
|
|
|
|
|
|
|
|
|
| 866 |
|
| 867 |
if not llm_answer:
|
| 868 |
+
logger.error(f" β Extractive answer generation failed")
|
| 869 |
yield "I apologize, but I'm having trouble generating a response. Please try rephrasing your question."
|
| 870 |
return
|
| 871 |
|