Spaces:
Running
Running
Charles Grandjean
commited on
Commit
Β·
47fa0a5
1
Parent(s):
102353e
force tool call more logs
Browse files- subagents/doc_editor.py +3 -1
- subagents/pdf_analyzer.py +27 -0
subagents/doc_editor.py
CHANGED
|
@@ -40,7 +40,9 @@ class DocumentEditorAgent:
|
|
| 40 |
self.llm = llm
|
| 41 |
# All tools are LangChain tools with @tool decorator
|
| 42 |
self.tools = [replace_html, add_html, delete_html, inspect_document, attempt_completion]
|
| 43 |
-
|
|
|
|
|
|
|
| 44 |
self.workflow = self._build_workflow()
|
| 45 |
|
| 46 |
def _build_workflow(self) -> StateGraph:
|
|
|
|
| 40 |
self.llm = llm
|
| 41 |
# All tools are LangChain tools with @tool decorator
|
| 42 |
self.tools = [replace_html, add_html, delete_html, inspect_document, attempt_completion]
|
| 43 |
+
# Force at least one tool call at each iteration using tool_choice="any"
|
| 44 |
+
self.llm_with_tools = self.llm.bind_tools(self.tools, tool_choice="any")
|
| 45 |
+
logger.info("π§ Tool binding configured with tool_choice='any' to force tool calls")
|
| 46 |
self.workflow = self._build_workflow()
|
| 47 |
|
| 48 |
def _build_workflow(self) -> StateGraph:
|
subagents/pdf_analyzer.py
CHANGED
|
@@ -173,6 +173,15 @@ class PDFAnalyzerAgent:
|
|
| 173 |
intermediate_steps.append(response)
|
| 174 |
state["actors"] = response.content
|
| 175 |
state["intermediate_steps"] = intermediate_steps
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 176 |
logger.info("β
Actors extracted")
|
| 177 |
|
| 178 |
return state
|
|
@@ -193,6 +202,15 @@ class PDFAnalyzerAgent:
|
|
| 193 |
intermediate_steps.append(response)
|
| 194 |
state["key_details"] = response.content
|
| 195 |
state["intermediate_steps"] = intermediate_steps
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 196 |
logger.info("β
Key details extracted")
|
| 197 |
|
| 198 |
return state
|
|
@@ -214,6 +232,15 @@ class PDFAnalyzerAgent:
|
|
| 214 |
state["summary"] = response.content
|
| 215 |
state["intermediate_steps"] = intermediate_steps
|
| 216 |
state["processing_status"] = "complete"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 217 |
logger.info("β
Summary generated")
|
| 218 |
|
| 219 |
return state
|
|
|
|
| 173 |
intermediate_steps.append(response)
|
| 174 |
state["actors"] = response.content
|
| 175 |
state["intermediate_steps"] = intermediate_steps
|
| 176 |
+
|
| 177 |
+
# Log detailed LLM response
|
| 178 |
+
logger.info("=" * 80)
|
| 179 |
+
logger.info("π€ LLM RESPONSE (extract_actors)")
|
| 180 |
+
logger.info("=" * 80)
|
| 181 |
+
logger.info(f"π Response length: {len(response.content)} characters")
|
| 182 |
+
logger.info(f"π Content preview (first 300 chars):")
|
| 183 |
+
logger.info(response.content[:300] + ("..." if len(response.content) > 300 else ""))
|
| 184 |
+
logger.info("=" * 80)
|
| 185 |
logger.info("β
Actors extracted")
|
| 186 |
|
| 187 |
return state
|
|
|
|
| 202 |
intermediate_steps.append(response)
|
| 203 |
state["key_details"] = response.content
|
| 204 |
state["intermediate_steps"] = intermediate_steps
|
| 205 |
+
|
| 206 |
+
# Log detailed LLM response
|
| 207 |
+
logger.info("=" * 80)
|
| 208 |
+
logger.info("π€ LLM RESPONSE (extract_key_details)")
|
| 209 |
+
logger.info("=" * 80)
|
| 210 |
+
logger.info(f"π Response length: {len(response.content)} characters")
|
| 211 |
+
logger.info(f"π Content preview (first 300 chars):")
|
| 212 |
+
logger.info(response.content[:300] + ("..." if len(response.content) > 300 else ""))
|
| 213 |
+
logger.info("=" * 80)
|
| 214 |
logger.info("β
Key details extracted")
|
| 215 |
|
| 216 |
return state
|
|
|
|
| 232 |
state["summary"] = response.content
|
| 233 |
state["intermediate_steps"] = intermediate_steps
|
| 234 |
state["processing_status"] = "complete"
|
| 235 |
+
|
| 236 |
+
# Log detailed LLM response
|
| 237 |
+
logger.info("=" * 80)
|
| 238 |
+
logger.info("π€ LLM RESPONSE (generate_summary)")
|
| 239 |
+
logger.info("=" * 80)
|
| 240 |
+
logger.info(f"π Response length: {len(response.content)} characters")
|
| 241 |
+
logger.info(f"π Content preview (first 300 chars):")
|
| 242 |
+
logger.info(response.content[:300] + ("..." if len(response.content) > 300 else ""))
|
| 243 |
+
logger.info("=" * 80)
|
| 244 |
logger.info("β
Summary generated")
|
| 245 |
|
| 246 |
return state
|