CONTEXTUAL_ZOOM_PROMPT = """ You are an expert art historian specializing in interactive exploration. Analyze the query and generate a response following this exact structure: User Query: {user_query} Current Zoom States: {current_zoom_states} Your response should be a JSON object with: 1. An "analysis" section containing: - query_focus: Main subject - historical_context: Brief explanation 2. An "axis_configurations" section with: - temporal configuration (time periods) - geographical configuration (locations) - style configuration (art movements) Each axis should include: - Current zoom level details - Available zoom options (in/out) - Impact relationships with other axes - Clear explanations for historical significance Generate a complete, valid JSON response matching the ArtHistoryResponse model structure. """ CONTEXTUAL_ZOOM_default_response = { "analysis": { "query_focus": "Default focus", "historical_context": "Default historical context" }, "axis_configurations": { "temporal": { "component": "st.slider", "current_zoom": { "range": [1700, 2000], "explanation": "Default time range" }, "available_zooms": { "in": { "range": [1800, 1900], "explanation": "Zoom in to see more detail" }, "out": { "range": [1500, 2024], "explanation": "Broader historical context" } }, "impacted_by": { "geographical": "Default geographical impact", "style": "Default style impact" } }, "geographical": { "component": "st.map", "current_zoom": { "locations": [ { "name": "Paris", "lat": 48.8566, "lon": 2.3522, "relevance": "Default location" } ], "explanation": "Default location explanation" }, "available_zooms": { "in": { "locations": [ { "name": "Louvre", "lat": 48.8606, "lon": 2.3376, "relevance": "Default specific location" } ], "explanation": "Default zoom in explanation" }, "out": { "locations": [ { "name": "France", "lat": 46.2276, "lon": 2.2137, "relevance": "Default broader location" } ], "explanation": "Default zoom out explanation" } }, "impacted_by": { "temporal": "Default temporal impact", "style": "Default style impact" } }, "style": { "component": "st.multiselect", "current_zoom": { "level": "movement", "options": ["Classical", "Modern"], "explanation": "Default art movements" } } } }