Spaces:
Sleeping
Sleeping
| from pathlib import Path | |
| import click | |
| from second_brain_online.application.agents import get_agent | |
| from second_brain_online.application.ui.custom_gradio_ui import CustomGradioUI | |
| def main(retriever_config_path: Path, ui: bool, query: str) -> None: | |
| """Run the agent either in Gradio UI or CLI mode. | |
| Args: | |
| ui: If True, launches Gradio UI. If False, runs in CLI mode | |
| query: Query string to run in CLI mode | |
| """ | |
| agent = get_agent(retriever_config_path=Path(retriever_config_path)) | |
| if ui: | |
| # Get the actual agent from the wrapper | |
| actual_agent = agent._AgentWrapper__agent | |
| CustomGradioUI(actual_agent).launch() | |
| else: | |
| assert query, "Query is required in CLI mode" | |
| result = agent.run(query) | |
| # DEBUG: Print raw result | |
| print("\n" + "="*80) | |
| print("DEBUG: RAW AGENT RESULT") | |
| print("="*80) | |
| print(f"Type: {type(result)}") | |
| print(f"Full Content:\n{result}") | |
| print("="*80) | |
| # DEBUG: Check agent object attributes | |
| print("\n" + "="*80) | |
| print("DEBUG: AGENT OBJECT ATTRIBUTES") | |
| print("="*80) | |
| print(f"Agent type: {type(agent)}") | |
| print(f"Agent attributes: {dir(agent)}") | |
| if hasattr(agent, '_AgentWrapper__agent'): | |
| actual_agent = agent._AgentWrapper__agent | |
| print(f"Actual agent type: {type(actual_agent)}") | |
| print(f"Actual agent attributes: {dir(actual_agent)}") | |
| if hasattr(actual_agent, 'conversation_history'): | |
| print(f"Conversation history: {actual_agent.conversation_history}") | |
| if hasattr(actual_agent, 'messages'): | |
| print(f"Messages: {actual_agent.messages}") | |
| if hasattr(actual_agent, 'logs'): | |
| print(f"Logs: {actual_agent.logs}") | |
| if hasattr(actual_agent, 'state'): | |
| print(f"State: {actual_agent.state}") | |
| print("="*80) | |
| # Parse the result using the same logic as the UI | |
| ui_instance = CustomGradioUI(None) # We don't need the agent for parsing | |
| # Get agent logs if available | |
| agent_logs = [] | |
| if hasattr(agent, '_AgentWrapper__agent'): | |
| actual_agent = agent._AgentWrapper__agent | |
| if hasattr(actual_agent, 'logs'): | |
| agent_logs = actual_agent.logs | |
| answer, sources, tools_used = ui_instance.parse_agent_response(result, agent_logs) | |
| print("\n" + "="*80) | |
| print("DEBUG: PARSED RESULTS") | |
| print("="*80) | |
| print(f"Answer: {answer}") | |
| print(f"Sources ({len(sources)}): {sources}") | |
| print(f"Tools Used: {tools_used}") | |
| print("="*80) | |
| print("\n" + "="*80) | |
| print("FINAL OUTPUT") | |
| print("="*80) | |
| # Format the answer for better display | |
| formatted_answer = ui_instance.format_answer(answer) | |
| print(formatted_answer) | |
| if __name__ == "__main__": | |
| main() | |