Spaces:
Sleeping
Sleeping
| # Restaurant Intelligence Agent - Planning Flow | |
| ## π UNIVERSAL SYSTEM - Works with ANY Restaurant | |
| **CRITICAL**: This agent is designed to work with **ANY OpenTable restaurant URL** without modification. | |
| - β NOT hardcoded for specific restaurants | |
| - β Discovers menu items dynamically from reviews | |
| - β Discovers relevant aspects dynamically | |
| - β Adapts to restaurant type automatically (fine dining, casual, fast food, etc.) | |
| **Examples of restaurants this works with:** | |
| - Japanese (Miku) β | |
| - Italian (any pasta place) β | |
| - American (burgers, steaks) β | |
| - Fast food (McDonald's competitor) β | |
| - Coffee shops β | |
| - ANY restaurant on OpenTable β | |
| --- | |
| ## π― High-Level Overview | |
| This shows how the agent works from start to finish **for ANY restaurant**: | |
| ``` | |
| βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| β USER INPUT β | |
| β Paste ANY OpenTable URL: β | |
| β β’ https://opentable.ca/r/ANY-RESTAURANT β | |
| β β’ Agent doesn't need to know restaurant in advance β | |
| ββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββββββ | |
| β | |
| βΌ | |
| βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| β AGENT PLANNING PHASE β | |
| β β’ Agent receives the URL (any restaurant) β | |
| β β’ Agent thinks about what needs to be done β | |
| β β’ Agent creates a UNIVERSAL step-by-step plan β | |
| β β | |
| β Universal Plan (works for ALL restaurants): β | |
| β Step 1: Scrape reviews from URL β | |
| β Step 2: Discover menu items (extracts from reviews) β | |
| β Step 3: Discover aspects (learns what matters here) β | |
| β Step 4: Analyze sentiment β | |
| β Step 5: Detect any problems β | |
| β Step 6: Generate insights β | |
| β Step 7: Save report to Google Drive β | |
| β Step 8: Send alerts if problems found β | |
| ββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββββββ | |
| β | |
| βΌ | |
| βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| β AGENT EXECUTION PHASE β | |
| β β’ Agent executes each step β | |
| β β’ ADAPTS to whatever it discovers β | |
| β β’ No assumptions about restaurant type β | |
| β β | |
| β Example 1 - Japanese Restaurant: β | |
| β β Discovered: sushi, sashimi, tempura β | |
| β β Aspects: presentation, freshness, authenticity β | |
| β β | |
| β Example 2 - Italian Restaurant: β | |
| β β Discovered: pasta, pizza, risotto β | |
| β β Aspects: sauce quality, portion size, authenticity β | |
| β β | |
| β Example 3 - Fast Food: β | |
| β β Discovered: burgers, fries, shakes β | |
| β β Aspects: speed, value, consistency β | |
| ββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββββββ | |
| β | |
| βΌ | |
| βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| β OUTPUTS (Custom per Restaurant) β | |
| β β’ PDF Report (customized to that restaurant) β | |
| β β’ Slack Alert (if issues detected) β | |
| β β’ Q&A Interface (ask questions about reviews) β | |
| β β’ Visualizations (based on discovered items/aspects) β | |
| βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| ``` | |
| ## π§ How the Agent "Thinks" (Works for ANY Restaurant) | |
| ### Step 1: Analyze the Input (Universal) | |
| **Example 1: User provides Japanese restaurant URL** | |
| ``` | |
| Agent's thoughts: | |
| "I received: https://opentable.ca/r/some-sushi-place | |
| What I know: | |
| - This is an OpenTable URL | |
| - I need to analyze customer reviews | |
| What I DON'T know (will discover): | |
| - Restaurant type (Japanese? Italian? American?) | |
| - Menu items (sushi? pasta? burgers?) | |
| - What customers care about (presentation? speed? value?) | |
| My approach: | |
| 1. Get the data first | |
| 2. Let the REVIEWS tell me what matters | |
| 3. Don't assume anything" | |
| ``` | |
| **Example 2: User provides Italian restaurant URL** | |
| ``` | |
| Agent's thoughts: | |
| "I received: https://opentable.ca/r/some-italian-place | |
| Same approach - I don't assume: | |
| - Menu could be pizza, pasta, seafood, or all | |
| - Customers might care about: sauce, portions, wine, authenticity | |
| - I'll discover everything from the reviews" | |
| ``` | |
| **Example 3: User provides fast food URL** | |
| ``` | |
| Agent's thoughts: | |
| "I received: https://opentable.ca/r/some-burger-chain | |
| Different restaurant type, same approach: | |
| - Menu likely: burgers, fries, drinks | |
| - Customers probably care about: speed, value, consistency | |
| - But I won't assume - I'll discover from reviews" | |
| ``` | |
| ### Step 2: Create Universal Plan | |
| The agent creates THE SAME PLAN for every restaurant: | |
| ```python | |
| # This plan works for Japanese, Italian, Mexican, Fast Food, ANY type: | |
| plan = [ | |
| { | |
| "step": 1, | |
| "action": "scrape_reviews", | |
| "params": {"url": user_provided_url}, # ANY URL works | |
| "reason": "I need review data before I can analyze anything" | |
| }, | |
| { | |
| "step": 2, | |
| "action": "discover_menu_items", | |
| "params": {"reviews": "scraped_data"}, | |
| "reason": "I don't know what's on the menu - customers will tell me in reviews" | |
| # Will find: sushi OR pasta OR burgers (whatever is mentioned) | |
| }, | |
| { | |
| "step": 3, | |
| "action": "discover_aspects", | |
| "params": {"reviews": "scraped_data"}, | |
| "reason": "I need to learn what matters to THIS restaurant's customers" | |
| # Might find: "presentation" OR "portion size" OR "speed" (depends on restaurant) | |
| }, | |
| { | |
| "step": 4, | |
| "action": "analyze_sentiment", | |
| "params": {"reviews": "scraped_data"}, | |
| "reason": "Universal - every restaurant needs sentiment analysis" | |
| }, | |
| # ... remaining steps are also universal | |
| ] | |
| ``` | |
| ## π Example: Agent Handles Different Restaurant Types | |
| ### Scenario A: Japanese Fine Dining | |
| ``` | |
| [10:00:00] Received URL: https://opentable.ca/r/sushi-restaurant | |
| [10:00:01] Creating universal analysis plan (8 steps) | |
| [10:00:06] STEP 2 COMPLETE: Discovered menu items | |
| Found: salmon sushi (89 mentions), miso soup (67 mentions), tempura (45 mentions) | |
| [10:00:50] STEP 3 COMPLETE: Discovered aspects customers care about | |
| Aspects: presentation, freshness, authenticity, service attentiveness | |
| [10:01:30] Agent adapted to: Fine dining Japanese restaurant | |
| ``` | |
| ### Scenario B: Italian Casual Dining | |
| ``` | |
| [10:00:00] Received URL: https://opentable.ca/r/italian-bistro | |
| [10:00:01] Creating universal analysis plan (8 steps) | |
| [10:00:06] STEP 2 COMPLETE: Discovered menu items | |
| Found: carbonara (112 mentions), margherita pizza (89 mentions), tiramisu (56 mentions) | |
| [10:00:50] STEP 3 COMPLETE: Discovered aspects customers care about | |
| Aspects: sauce quality, portion size, value for money, wine selection | |
| [10:01:30] Agent adapted to: Casual Italian restaurant | |
| ``` | |
| ### Scenario C: Fast Casual (Burgers) | |
| ``` | |
| [10:00:00] Received URL: https://opentable.ca/r/burger-joint | |
| [10:00:01] Creating universal analysis plan (8 steps) | |
| [10:00:06] STEP 2 COMPLETE: Discovered menu items | |
| Found: cheeseburger (156 mentions), fries (134 mentions), milkshake (67 mentions) | |
| [10:00:50] STEP 3 COMPLETE: Discovered aspects customers care about | |
| Aspects: speed of service, value, consistency, cleanliness | |
| [10:01:30] Agent adapted to: Fast casual burger restaurant | |
| ``` | |
| ## π Why This Is TRULY Universal | |
| ### β Bad Approach (What we're NOT doing): | |
| ```python | |
| # Hardcoded - only works for one restaurant | |
| menu_items = ["salmon roll", "tuna sashimi", "miso soup"] # Japanese only! | |
| aspects = ["food quality", "service", "ambience"] # Generic, misses specifics | |
| # This breaks when you analyze an Italian or Mexican restaurant | |
| ``` | |
| ### β Our Approach (What we ARE doing): | |
| ```python | |
| # Dynamic - works for ANY restaurant | |
| menu_items = discover_from_reviews(reviews) # Finds whatever customers mention | |
| aspects = discover_from_reviews(reviews) # Learns what matters HERE | |
| # Examples of what it discovers: | |
| # Japanese: menu_items = ["sushi", "sashimi"], aspects = ["freshness", "presentation"] | |
| # Italian: menu_items = ["pasta", "pizza"], aspects = ["sauce", "portions"] | |
| # Mexican: menu_items = ["tacos", "burritos"], aspects = ["spice level", "authenticity"] | |
| ``` | |
| ## π― Key Principles (Universal Design) | |
| 1. **NEVER assume restaurant type** - Let reviews tell us | |
| 2. **NEVER hardcode menu items** - Discover from customer mentions | |
| 3. **NEVER use generic aspects** - Learn what THIS restaurant's customers care about | |
| 4. **ALWAYS adapt** - Japanese needs different analysis than fast food | |
| 5. **ONE codebase** - Same code handles ALL restaurant types |