Spaces:
Running
Running
Update agent.py
Browse files
agent.py
CHANGED
@@ -11,6 +11,7 @@ import time
|
|
11 |
import logging
|
12 |
import traceback
|
13 |
import json
|
|
|
14 |
from langchain_core.tools import tool
|
15 |
from langchain.prompts import PromptTemplate
|
16 |
from langgraph.prebuilt import create_react_agent
|
@@ -94,6 +95,9 @@ def truth_classifier(query, evidence):
|
|
94 |
"confidence": confidence,
|
95 |
"results": classification_results
|
96 |
}
|
|
|
|
|
|
|
97 |
|
98 |
# Convert to JSON string for consistent handling
|
99 |
return json.dumps(result)
|
@@ -266,6 +270,14 @@ def process_claim(claim, agent=None, recursion_limit=20):
|
|
266 |
# Log performance
|
267 |
elapsed = time.time() - start_time
|
268 |
logger.info(f"Claim processed in {elapsed:.2f} seconds")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
269 |
|
270 |
return result
|
271 |
|
@@ -349,7 +361,6 @@ def format_response(response):
|
|
349 |
result["evidence_count"] = len(message.content)
|
350 |
elif isinstance(message.content, str) and message.content.startswith("[") and message.content.endswith("]"):
|
351 |
try:
|
352 |
-
import ast
|
353 |
parsed_content = ast.literal_eval(message.content)
|
354 |
if isinstance(parsed_content, list):
|
355 |
result["evidence"] = parsed_content
|
@@ -372,10 +383,9 @@ def format_response(response):
|
|
372 |
logger.info(f"Truth classifier content type: {type(message.content)}")
|
373 |
logger.info(f"Truth classifier content: {message.content}")
|
374 |
|
375 |
-
# Handle JSON formatted result from truth_classifier
|
376 |
if isinstance(message.content, str):
|
377 |
try:
|
378 |
-
import json
|
379 |
# Parse the JSON string
|
380 |
parsed_content = json.loads(message.content)
|
381 |
|
@@ -416,9 +426,7 @@ def format_response(response):
|
|
416 |
if found_tools["evidence_retriever"] and not found_tools["truth_classifier"]:
|
417 |
logger.info("Truth classifier was not called by the agent, executing fallback classification")
|
418 |
|
419 |
-
try:
|
420 |
-
from modules.classification import classify_with_llm, aggregate_evidence
|
421 |
-
|
422 |
# Get the evidence from the results
|
423 |
evidence = result["evidence"]
|
424 |
claim = result["claim"] or "Unknown claim"
|
@@ -451,9 +459,7 @@ def format_response(response):
|
|
451 |
if (found_tools["truth_classifier"] or result["classification"] != "Uncertain") and not found_tools["explanation_generator"]:
|
452 |
logger.info("Explanation generator was not called by the agent, using fallback explanation generation")
|
453 |
|
454 |
-
try:
|
455 |
-
from modules.explanation import generate_explanation
|
456 |
-
|
457 |
# Get the necessary inputs for explanation generation
|
458 |
claim = result["claim"] or "Unknown claim"
|
459 |
evidence = result["evidence"]
|
|
|
11 |
import logging
|
12 |
import traceback
|
13 |
import json
|
14 |
+
import ast
|
15 |
from langchain_core.tools import tool
|
16 |
from langchain.prompts import PromptTemplate
|
17 |
from langgraph.prebuilt import create_react_agent
|
|
|
95 |
"confidence": confidence,
|
96 |
"results": classification_results
|
97 |
}
|
98 |
+
|
99 |
+
# Log confidence score
|
100 |
+
performance_tracker.log_confidence_score(confidence)
|
101 |
|
102 |
# Convert to JSON string for consistent handling
|
103 |
return json.dumps(result)
|
|
|
270 |
# Log performance
|
271 |
elapsed = time.time() - start_time
|
272 |
logger.info(f"Claim processed in {elapsed:.2f} seconds")
|
273 |
+
|
274 |
+
# Track processing time and overall success
|
275 |
+
performance_tracker.log_processing_time(start_time)
|
276 |
+
performance_tracker.log_claim_processed()
|
277 |
+
|
278 |
+
# Track confidence if available
|
279 |
+
if result and "confidence" in result:
|
280 |
+
performance_tracker.log_confidence_score(result["confidence"])
|
281 |
|
282 |
return result
|
283 |
|
|
|
361 |
result["evidence_count"] = len(message.content)
|
362 |
elif isinstance(message.content, str) and message.content.startswith("[") and message.content.endswith("]"):
|
363 |
try:
|
|
|
364 |
parsed_content = ast.literal_eval(message.content)
|
365 |
if isinstance(parsed_content, list):
|
366 |
result["evidence"] = parsed_content
|
|
|
383 |
logger.info(f"Truth classifier content type: {type(message.content)}")
|
384 |
logger.info(f"Truth classifier content: {message.content}")
|
385 |
|
386 |
+
# Handle JSON formatted result from truth_classifier()
|
387 |
if isinstance(message.content, str):
|
388 |
try:
|
|
|
389 |
# Parse the JSON string
|
390 |
parsed_content = json.loads(message.content)
|
391 |
|
|
|
426 |
if found_tools["evidence_retriever"] and not found_tools["truth_classifier"]:
|
427 |
logger.info("Truth classifier was not called by the agent, executing fallback classification")
|
428 |
|
429 |
+
try:
|
|
|
|
|
430 |
# Get the evidence from the results
|
431 |
evidence = result["evidence"]
|
432 |
claim = result["claim"] or "Unknown claim"
|
|
|
459 |
if (found_tools["truth_classifier"] or result["classification"] != "Uncertain") and not found_tools["explanation_generator"]:
|
460 |
logger.info("Explanation generator was not called by the agent, using fallback explanation generation")
|
461 |
|
462 |
+
try:
|
|
|
|
|
463 |
# Get the necessary inputs for explanation generation
|
464 |
claim = result["claim"] or "Unknown claim"
|
465 |
evidence = result["evidence"]
|