Spaces:
Sleeping
Sleeping
Priyanshi Saxena
commited on
Commit
Β·
923b4b3
1
Parent(s):
a4b05e9
fix: Add comprehensive response cleaning validation
Browse files- Added version tracking for deployment debugging
- Enhanced logging to track content extraction process
- Added critical safety check for LangChain metadata in final responses
- Improved debugging for Hugging Face Spaces deployment issues
- Added explicit validation to prevent raw metadata from being returned
- src/agent/research_agent.py +16 -0
- version.py +2 -0
src/agent/research_agent.py
CHANGED
|
@@ -16,6 +16,13 @@ from src.utils.ai_safety import ai_safety
|
|
| 16 |
|
| 17 |
logger = get_logger(__name__)
|
| 18 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 19 |
class Web3ResearchAgent:
|
| 20 |
def __init__(self):
|
| 21 |
self.llm = None
|
|
@@ -513,8 +520,10 @@ Respond with only the tool names, comma-separated (no explanations)."""
|
|
| 513 |
# Extract content from Gemini response object
|
| 514 |
if hasattr(final_response, 'content'):
|
| 515 |
response_content = final_response.content
|
|
|
|
| 516 |
else:
|
| 517 |
response_content = str(final_response)
|
|
|
|
| 518 |
|
| 519 |
# AI Safety Check: Validate response
|
| 520 |
clean_response, response_safe, response_reason = ai_safety.validate_gemini_response(response_content)
|
|
@@ -526,6 +535,7 @@ Respond with only the tool names, comma-separated (no explanations)."""
|
|
| 526 |
})
|
| 527 |
clean_response = f"## Cryptocurrency Analysis\n\nBased on the available data:\n\n{context[:1000]}\n\n*Response filtered for safety*"
|
| 528 |
|
|
|
|
| 529 |
final_response = clean_response
|
| 530 |
|
| 531 |
except asyncio.TimeoutError:
|
|
@@ -534,6 +544,12 @@ Respond with only the tool names, comma-separated (no explanations)."""
|
|
| 534 |
|
| 535 |
logger.info("β
Research successful with Gemini + tools")
|
| 536 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 537 |
return {
|
| 538 |
"success": True,
|
| 539 |
"query": query,
|
|
|
|
| 16 |
|
| 17 |
logger = get_logger(__name__)
|
| 18 |
|
| 19 |
+
# Add version logging for debugging
|
| 20 |
+
try:
|
| 21 |
+
from version import VERSION
|
| 22 |
+
logger.info(f"π§ Research Agent Version: {VERSION}")
|
| 23 |
+
except ImportError:
|
| 24 |
+
logger.info("π§ Research Agent Version: Unknown")
|
| 25 |
+
|
| 26 |
class Web3ResearchAgent:
|
| 27 |
def __init__(self):
|
| 28 |
self.llm = None
|
|
|
|
| 520 |
# Extract content from Gemini response object
|
| 521 |
if hasattr(final_response, 'content'):
|
| 522 |
response_content = final_response.content
|
| 523 |
+
logger.info(f"β
Extracted clean content: {response_content[:200]}...")
|
| 524 |
else:
|
| 525 |
response_content = str(final_response)
|
| 526 |
+
logger.warning(f"β οΈ Fallback to str() conversion: {response_content[:200]}...")
|
| 527 |
|
| 528 |
# AI Safety Check: Validate response
|
| 529 |
clean_response, response_safe, response_reason = ai_safety.validate_gemini_response(response_content)
|
|
|
|
| 535 |
})
|
| 536 |
clean_response = f"## Cryptocurrency Analysis\n\nBased on the available data:\n\n{context[:1000]}\n\n*Response filtered for safety*"
|
| 537 |
|
| 538 |
+
logger.info(f"π Final clean response: {clean_response[:200]}...")
|
| 539 |
final_response = clean_response
|
| 540 |
|
| 541 |
except asyncio.TimeoutError:
|
|
|
|
| 544 |
|
| 545 |
logger.info("β
Research successful with Gemini + tools")
|
| 546 |
|
| 547 |
+
# Final safety check: ensure we're not returning raw LangChain objects
|
| 548 |
+
if isinstance(final_response, str):
|
| 549 |
+
if "additional_kwargs" in final_response or "response_metadata" in final_response:
|
| 550 |
+
logger.error("π¨ CRITICAL: Raw LangChain metadata detected in final response!")
|
| 551 |
+
final_response = "Response contains technical metadata and has been filtered for safety."
|
| 552 |
+
|
| 553 |
return {
|
| 554 |
"success": True,
|
| 555 |
"query": query,
|
version.py
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Version identifier for debugging
|
| 2 |
+
VERSION = "1.2.1-response-cleanup-fix"
|