Spaces:
Sleeping
Sleeping
| """ | |
| Workflow execution wrapper with LangSmith tracing. | |
| """ | |
| from langsmith import traceable | |
| from src.workflow.graph import app | |
| def run_self_correcting_workflow( | |
| company_name: str = "Tesla", | |
| ticker: str = "", | |
| strategy_focus: str = "Cost Leadership", | |
| workflow_id: str = None, | |
| progress_store: dict = None | |
| ): | |
| """ | |
| Execute the complete self-correcting SWOT analysis workflow. | |
| Args: | |
| company_name: Name of the company to analyze | |
| ticker: Stock ticker symbol | |
| strategy_focus: Strategic focus for analysis | |
| workflow_id: Optional workflow ID for progress tracking | |
| progress_store: Optional dict for storing progress updates | |
| Returns: | |
| Final workflow state with analysis results | |
| """ | |
| # Initialize state with default values | |
| initial_state = { | |
| "company_name": company_name, | |
| "ticker": ticker or company_name, | |
| "strategy_focus": strategy_focus, | |
| "raw_data": None, | |
| "draft_report": None, | |
| "critique": None, | |
| "revision_count": 0, | |
| "messages": [], | |
| "score": 0, | |
| "data_source": "live", | |
| "provider_used": None, | |
| "sources_failed": [], | |
| "workflow_id": workflow_id, | |
| "progress_store": progress_store, | |
| "error": None | |
| } | |
| # Execute the workflow | |
| output = app.invoke(initial_state, config={ | |
| "configurable": { | |
| "workflow_id": workflow_id, | |
| "progress_store": progress_store | |
| } | |
| }) | |
| return output | |