Spaces:
Sleeping
Sleeping
Charles Grandjean commited on
Commit Β·
4aac7f6
1
Parent(s): d3e78b7
add logging
Browse files- agent_api.py +53 -0
- agents/chat_agent.py +2 -1
agent_api.py
CHANGED
|
@@ -340,6 +340,20 @@ class CyberLegalAPI:
|
|
| 340 |
error=result.get("error")
|
| 341 |
)
|
| 342 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 343 |
logger.info(f"π€ Returning response to user")
|
| 344 |
return response
|
| 345 |
|
|
@@ -416,6 +430,28 @@ class CyberLegalAPI:
|
|
| 416 |
error=result.get("error")
|
| 417 |
)
|
| 418 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 419 |
logger.info(f"β
PDF analysis completed in {processing_time:.2f}s")
|
| 420 |
return response
|
| 421 |
|
|
@@ -539,6 +575,23 @@ class CyberLegalAPI:
|
|
| 539 |
error=None if result['success'] else result.get('message')
|
| 540 |
)
|
| 541 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 542 |
logger.info("=" * 80)
|
| 543 |
logger.info("β
DOCUMENT EDITING COMPLETED SUCCESSFULLY")
|
| 544 |
logger.info("=" * 80)
|
|
|
|
| 340 |
error=result.get("error")
|
| 341 |
)
|
| 342 |
|
| 343 |
+
# Log detailed response being sent to client
|
| 344 |
+
logger.info("=" * 80)
|
| 345 |
+
logger.info("π€ SENDING CHAT RESPONSE TO CLIENT")
|
| 346 |
+
logger.info("=" * 80)
|
| 347 |
+
logger.info(f"π€ User ID: {request.userId}")
|
| 348 |
+
logger.info(f"π
Timestamp: {response.timestamp}")
|
| 349 |
+
logger.info(f"β±οΈ Processing time: {response.processing_time:.2f}s")
|
| 350 |
+
logger.info(f"π Response length: {len(response.response)} characters")
|
| 351 |
+
logger.info(f"π¬ Response preview (first 200 chars): {response.response}")
|
| 352 |
+
if response.error:
|
| 353 |
+
logger.warning(f"β οΈ Error in response: {response.error}")
|
| 354 |
+
logger.info(f"π’ Full response object: {response.model_dump()}")
|
| 355 |
+
logger.info("=" * 80)
|
| 356 |
+
|
| 357 |
logger.info(f"π€ Returning response to user")
|
| 358 |
return response
|
| 359 |
|
|
|
|
| 430 |
error=result.get("error")
|
| 431 |
)
|
| 432 |
|
| 433 |
+
# Log detailed response being sent to client
|
| 434 |
+
logger.info("=" * 80)
|
| 435 |
+
logger.info("π€ SENDING ANALYZE_PDF RESPONSE TO CLIENT")
|
| 436 |
+
logger.info("=" * 80)
|
| 437 |
+
logger.info(f"π€ User ID: {request.userId}")
|
| 438 |
+
logger.info(f"π Filename: {request.filename}")
|
| 439 |
+
logger.info(f"π
Timestamp: {response.timestamp}")
|
| 440 |
+
logger.info(f"β±οΈ Processing time: {response.processing_time:.2f}s")
|
| 441 |
+
logger.info(f"π Actors: {response.actors}")
|
| 442 |
+
logger.info(f"π Key details: {response.key_details}")
|
| 443 |
+
logger.info(f"π Summary: {response.summary}")
|
| 444 |
+
if response.extracted_text:
|
| 445 |
+
logger.info(f"π Extracted text length: {len(response.extracted_text)} characters")
|
| 446 |
+
logger.info(f"π Extracted text preview (first 200 chars): {response.extracted_text[:200]}...")
|
| 447 |
+
logger.info(f"π Extracted text preview (last 200 chars): ...{response.extracted_text[-200:]}")
|
| 448 |
+
else:
|
| 449 |
+
logger.info("π Extracted text: None")
|
| 450 |
+
if response.error:
|
| 451 |
+
logger.warning(f"β οΈ Error in response: {response.error}")
|
| 452 |
+
logger.info(f"π’ Full response object: {response.model_dump()}")
|
| 453 |
+
logger.info("=" * 80)
|
| 454 |
+
|
| 455 |
logger.info(f"β
PDF analysis completed in {processing_time:.2f}s")
|
| 456 |
return response
|
| 457 |
|
|
|
|
| 575 |
error=None if result['success'] else result.get('message')
|
| 576 |
)
|
| 577 |
|
| 578 |
+
# Log detailed response being sent to client
|
| 579 |
+
logger.info("=" * 80)
|
| 580 |
+
logger.info("π€ SENDING DOC_CREATOR RESPONSE TO CLIENT")
|
| 581 |
+
logger.info("=" * 80)
|
| 582 |
+
logger.info(f"π€ User ID: {request.userId}")
|
| 583 |
+
logger.info(f"π
Timestamp: {response.timestamp}")
|
| 584 |
+
logger.info(f"β±οΈ Processing time: {response.processing_time:.2f}s")
|
| 585 |
+
logger.info(f"π¬ Response message: {response.response}")
|
| 586 |
+
if response.modifiedDocument:
|
| 587 |
+
logger.info(f"π Modified document size: {len(response.modifiedDocument)} bytes")
|
| 588 |
+
logger.info(f"π Document preview (first 200 chars): {response.modifiedDocument[:200]}...")
|
| 589 |
+
logger.info(f"π Document preview (last 200 chars): ...{response.modifiedDocument[-200:]}")
|
| 590 |
+
else:
|
| 591 |
+
logger.info("π Modified document: None")
|
| 592 |
+
if response.error:
|
| 593 |
+
logger.warning(f"β οΈ Error in response: {response.error}")
|
| 594 |
+
logger.info(f"π’ Full response object: {response.model_dump()}")
|
| 595 |
logger.info("=" * 80)
|
| 596 |
logger.info("β
DOCUMENT EDITING COMPLETED SUCCESSFULLY")
|
| 597 |
logger.info("=" * 80)
|
agents/chat_agent.py
CHANGED
|
@@ -24,7 +24,8 @@ class CyberLegalAgent:
|
|
| 24 |
self.tools_facade = tools_facade
|
| 25 |
self.llm = llm
|
| 26 |
self.performance_monitor = PerformanceMonitor()
|
| 27 |
-
|
|
|
|
| 28 |
self.workflow = self._build_workflow()
|
| 29 |
|
| 30 |
def _build_workflow(self) -> StateGraph:
|
|
|
|
| 24 |
self.tools_facade = tools_facade
|
| 25 |
self.llm = llm
|
| 26 |
self.performance_monitor = PerformanceMonitor()
|
| 27 |
+
# Constrain to one tool call at a time
|
| 28 |
+
self.llm_with_tools = self.llm.bind_tools(self.tools_facade, parallel_tool_calls=False)
|
| 29 |
self.workflow = self._build_workflow()
|
| 30 |
|
| 31 |
def _build_workflow(self) -> StateGraph:
|