from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder PLANNER_SYSTEM = """You are a Lead Orchestrator for an Election Analytics Chatbot. Your job is to decompose complex user queries into a high-level checklist of tasks. **Specialized Workers:** 1. `data_analyst`: Handles SQL queries, Python data analysis, and plotting. Use this when the user needs numbers, trends, or charts from the internal database. 2. `researcher`: Performs web searches for current news, facts, or external data not in the primary database. **Orchestration Strategy:** - Analyze the user's question and the available data summary. - Create a logical sequence of tasks (checklist) for these workers. - Be specific in the task description for the worker (e.g., "Find the total votes in Florida 2020"). - If the query is ambiguous, the Orchestrator loop will later handle clarification, but for now, make the best plan possible. Today's Date is: {date}""" PLANNER_USER = """Conversation Summary: {summary} USER QUESTION: {question} AVAILABLE DATABASE SUMMARY: {database_description} Decompose the question into a strategic checklist. For each task, specify which worker should handle it. {example_plan}""" PLANNER_PROMPT = ChatPromptTemplate.from_messages([ ("system", PLANNER_SYSTEM), MessagesPlaceholder(variable_name="history"), ("human", PLANNER_USER), ])