Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
|
@@ -378,12 +378,27 @@ Please provide a thorough, well-structured answer that directly addresses the qu
|
|
| 378 |
if response.status_code == 200:
|
| 379 |
ai_response = response.json()['choices'][0]['message']['content'].strip()
|
| 380 |
ai_answer = ai_response if len(ai_response) > 10 else extracted_answer
|
| 381 |
-
elif response.status_code == 402:
|
| 382 |
-
st.warning("π³ OpenRouter credits exhausted. Using extracted answers only.")
|
| 383 |
-
elif response.status_code == 429:
|
| 384 |
-
st.warning("β±οΈ Rate limit reached. Using extracted answers only.")
|
| 385 |
else:
|
| 386 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 387 |
|
| 388 |
except requests.exceptions.Timeout:
|
| 389 |
st.warning("β±οΈ API timeout. Using extracted answers only.")
|
|
@@ -435,12 +450,24 @@ def get_general_ai_response(query, unlimited_tokens=False):
|
|
| 435 |
|
| 436 |
if response.status_code == 200:
|
| 437 |
return response.json()['choices'][0]['message']['content'].strip()
|
| 438 |
-
elif response.status_code == 402:
|
| 439 |
-
return "Sorry, OpenRouter credits exhausted. Please add more credits or ask document-specific questions."
|
| 440 |
-
elif response.status_code == 429:
|
| 441 |
-
return "Rate limit reached. Please try again in a moment."
|
| 442 |
else:
|
| 443 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 444 |
|
| 445 |
except requests.exceptions.Timeout:
|
| 446 |
return "Request timeout. Please try again."
|
|
@@ -721,8 +748,8 @@ if prompt := st.chat_input("Ask questions about your documents..."):
|
|
| 721 |
# Search documents first
|
| 722 |
search_results = rag_system.search(prompt, n_results=3)
|
| 723 |
|
| 724 |
-
# Check if we found relevant documents (
|
| 725 |
-
if search_results and search_results[0]['similarity'] > 0.
|
| 726 |
# Generate document-based answer
|
| 727 |
result = rag_system.generate_answer(
|
| 728 |
prompt,
|
|
@@ -735,9 +762,18 @@ if prompt := st.chat_input("Ask questions about your documents..."):
|
|
| 735 |
if use_ai_enhancement and result['has_both']:
|
| 736 |
answer_text = result['ai_answer']
|
| 737 |
st.markdown(f"π€ **AI Enhanced Answer:** {answer_text}")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 738 |
else:
|
| 739 |
answer_text = result['extracted_answer']
|
| 740 |
st.markdown(f"π **Document Answer:** {answer_text}")
|
|
|
|
|
|
|
|
|
|
|
|
|
| 741 |
|
| 742 |
# Show RAG info
|
| 743 |
if show_sources and result['sources']:
|
|
|
|
| 378 |
if response.status_code == 200:
|
| 379 |
ai_response = response.json()['choices'][0]['message']['content'].strip()
|
| 380 |
ai_answer = ai_response if len(ai_response) > 10 else extracted_answer
|
|
|
|
|
|
|
|
|
|
|
|
|
| 381 |
else:
|
| 382 |
+
# Log the actual error for debugging
|
| 383 |
+
error_detail = ""
|
| 384 |
+
try:
|
| 385 |
+
error_detail = response.json().get('error', {}).get('message', '')
|
| 386 |
+
except:
|
| 387 |
+
pass
|
| 388 |
+
|
| 389 |
+
if response.status_code == 402:
|
| 390 |
+
st.warning("π³ OpenRouter credits exhausted. Using extracted answers only.")
|
| 391 |
+
elif response.status_code == 429:
|
| 392 |
+
st.warning("β±οΈ Rate limit reached. Using extracted answers only.")
|
| 393 |
+
elif response.status_code == 401:
|
| 394 |
+
st.error("π Invalid API key. Check your OpenRouter key.")
|
| 395 |
+
elif response.status_code == 400:
|
| 396 |
+
st.error(f"β Bad request: {error_detail}")
|
| 397 |
+
else:
|
| 398 |
+
st.warning(f"API Error {response.status_code}: {error_detail}. Using extracted answers only.")
|
| 399 |
+
|
| 400 |
+
# Debug info for troubleshooting
|
| 401 |
+
st.info(f"Debug: Status {response.status_code}, Error: {error_detail}")
|
| 402 |
|
| 403 |
except requests.exceptions.Timeout:
|
| 404 |
st.warning("β±οΈ API timeout. Using extracted answers only.")
|
|
|
|
| 450 |
|
| 451 |
if response.status_code == 200:
|
| 452 |
return response.json()['choices'][0]['message']['content'].strip()
|
|
|
|
|
|
|
|
|
|
|
|
|
| 453 |
else:
|
| 454 |
+
# Get detailed error information
|
| 455 |
+
error_detail = ""
|
| 456 |
+
try:
|
| 457 |
+
error_detail = response.json().get('error', {}).get('message', '')
|
| 458 |
+
except:
|
| 459 |
+
pass
|
| 460 |
+
|
| 461 |
+
if response.status_code == 402:
|
| 462 |
+
return "Sorry, OpenRouter credits exhausted. Please add more credits or top up your account."
|
| 463 |
+
elif response.status_code == 429:
|
| 464 |
+
return "Rate limit reached. Please try again in a moment."
|
| 465 |
+
elif response.status_code == 401:
|
| 466 |
+
return "Invalid API key. Please check your OpenRouter API key configuration."
|
| 467 |
+
elif response.status_code == 400:
|
| 468 |
+
return f"Bad request: {error_detail}. Please try rephrasing your question."
|
| 469 |
+
else:
|
| 470 |
+
return f"API error (Status: {response.status_code}): {error_detail}. Please try again."
|
| 471 |
|
| 472 |
except requests.exceptions.Timeout:
|
| 473 |
return "Request timeout. Please try again."
|
|
|
|
| 748 |
# Search documents first
|
| 749 |
search_results = rag_system.search(prompt, n_results=3)
|
| 750 |
|
| 751 |
+
# Check if we found relevant documents (lower threshold for better coverage)
|
| 752 |
+
if search_results and search_results[0]['similarity'] > 0.005: # Even lower threshold
|
| 753 |
# Generate document-based answer
|
| 754 |
result = rag_system.generate_answer(
|
| 755 |
prompt,
|
|
|
|
| 762 |
if use_ai_enhancement and result['has_both']:
|
| 763 |
answer_text = result['ai_answer']
|
| 764 |
st.markdown(f"π€ **AI Enhanced Answer:** {answer_text}")
|
| 765 |
+
|
| 766 |
+
# Also show extracted answer for comparison if different
|
| 767 |
+
if result['extracted_answer'] != answer_text:
|
| 768 |
+
with st.expander("π View Extracted Answer"):
|
| 769 |
+
st.markdown(result['extracted_answer'])
|
| 770 |
else:
|
| 771 |
answer_text = result['extracted_answer']
|
| 772 |
st.markdown(f"π **Document Answer:** {answer_text}")
|
| 773 |
+
|
| 774 |
+
# Show why AI enhancement wasn't used
|
| 775 |
+
if use_ai_enhancement and not result['has_both']:
|
| 776 |
+
st.info("π‘ AI enhancement failed - showing extracted answer from documents")
|
| 777 |
|
| 778 |
# Show RAG info
|
| 779 |
if show_sources and result['sources']:
|