hamxaameer commited on
Commit
a62a145
Β·
verified Β·
1 Parent(s): 9e4bdce

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +15 -48
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
- # Natural mode: allow 2 attempts for quality
827
- max_attempts = 2
828
-
829
- llm_answer = None
830
- for attempt in range(1, max_attempts + 1):
831
- logger.info(f"\n πŸ€– LLM Generation Attempt {attempt}/{max_attempts}")
832
- llm_answer = generate_llm_answer(query, retrieved_docs, llm_client, attempt)
833
-
834
- if llm_answer:
835
- logger.info(f" βœ… LLM answer generated successfully")
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 llm_answer
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
- llm_answer = None
893
- for attempt in range(1, 3):
894
- logger.info(f"\n πŸ€– LLM Generation Attempt {attempt}/2")
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" βœ— All LLM attempts failed")
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