#3903 Restaurant Inventory Management
#3903 Restaurant Inventory Management
#3903 Describe a restaurant app that analyzes week-to-week meal orders and inventory usage
Here is a conceptual description of a comprehensive restaurant management application designed to bridge the gap between Front-of-House (POS) sales and Back-of-House (Inventory) operations.
App Name Concept: "Yield & Flow"
Tagline: Turn Data into Dishes, and Dishes into Profit.
1. Executive Summary
Yield & Flow is a B2B tablet and web application designed for chefs, kitchen managers, and restaurant owners. It integrates directly with the restaurant’s Point of Sale (POS) system to analyze week-over-week trends.
Its primary function is Theoretical vs. Actual Costing. By breaking down every menu item sold into its raw ingredients, the app calculates what inventory should have been used and compares it to physical stock counts, highlighting waste, theft, or portioning errors immediately.
2. Core Modules & Features
A. The Recipe Engine (The Logic Layer)
Before analysis can occur, the app digitizes the kitchen's brain.
Digital Recipe Cards: Every menu item (e.g., "Bacon Cheeseburger") is mapped to specific ingredient quantities (e.g., 5oz ground beef, 1 brioche bun, 2 slices cheddar, 0.5oz aioli).
Batch Prep Tracking: Tracks "sub-recipes" (e.g., a 5-gallon batch of marinara sauce) to track usage of items that are prepped in bulk but sold by the ladle.
B. Sales Analysis (The Demand Side)
The app pulls data from the POS to analyze week-to-week meal orders.
Velocity Reports: Identifies "Movers" (high volume), "Sleepers" (low volume, high margin), and "Dogs" (low volume, low margin).
Trend Detection: "We sold 20% more fish tacos this Tuesday compared to last Tuesday."
PMix (Product Mix) Evolution: Visualizes how customer preferences shift week-to-week based on weather, holidays, or menu placement.
C. Inventory Management (The Supply Side)
Smart Counting: The app organizes the inventory sheet to match the physical shelf layout (Shelf-to-Sheet) for rapid mobile entry.
Automated Depletion: When a "Bacon Cheeseburger" is sold in the POS, the app automatically deducts the beef, bun, and cheese from the theoretical inventory.
D. The Variance Dashboard (The Insight)
This is the core value proposition. It compares the Theoretical Usage (Sales data) against the Actual Usage (Physical count).
The "Red Flag" Report: "You sold 100 steaks, which should require 100lbs of meat. Your inventory count shows 115lbs missing. Variance: -15lbs."
Potential Causes Suggested by AI: Over-portioning, spoilage not logged, or theft.
Food Cost Percentage: Calculates the exact food cost per week and compares it to the target budget.
3. Predictive "Smart Prep" & Ordering
Using historical week-to-week data, the app moves from analysis to prediction.
The Pars Predictor: "Based on the last 3 Fridays and the upcoming weather forecast, you will likely sell 45 orders of Risotto. Prep 48 portions."
Automated Order Guides: Generates a supplier shopping list. If the restaurant needs 50lbs of flour for the predicted sales, and has 10lbs on hand, the app adds 40lbs to the Sysco/US Foods draft order.
4. User Experience (UX) Flow
Monday Morning: The Kitchen Manager walks the cooler with a tablet, entering the physical counts of key items (proteins, alcohol, dairy).
Monday Noon: The app syncs with the POS sales from the previous week.
The Weekly Review: The Dashboard displays the "Waste Watch":
Top Wasted Item: Avocados (15% variance).
Top Profit Driver: Pasta Special.
Action Plan: The app suggests adjusting the "Par level" for avocados down by 10% for the next order to reduce spoilage.
5. Business Value
Reduced Food Waste: Tighter control over perishables.
Menu Engineering: Data proves which dishes are actually profitable after accounting for waste.
Labor Efficiency: Chefs stop guessing prep amounts; they prep exactly what the data predicts will sell.
Next Step
Would you like me to outline the database schema (tables for Ingredients, Recipes, Sales, and Inventory logs) that would be required to build the backend of this application?
Yes
Here is a structured database schema designed to handle the complex "many-to-many" relationships between what is sold (Menu Items) and what is consumed (Ingredients).
I have organized this into Core Catalogs, Transactional Data, and The Junction (The Recipe Engine), which is where the analysis happens.
High-Level Entity Relationship Diagram (ERD)
1. The Core Catalogs (Static Data)
These tables define the fundamental objects of the restaurant.
ingredients
Represents raw materials (e.g., Flour, Eggs, Ribeye Steak).
id(PK): Integername: Varchar (e.g., "Ground Beef 80/20")purchase_uom: Varchar (e.g., "Case", "Lbs") - How you buy it.recipe_uom: Varchar (e.g., "oz", "grams") - How you cook with it.conversion_factor: Float (e.g., 16.0) - To convert Lbs to oz.current_unit_cost: Decimal - Cost per recipe_uom (updated via invoices).
menu_items
Represents buttons on the POS (e.g., Bacon Cheeseburger, Coke).
id(PK): Integerpos_sku: Varchar - External ID from the POS system.name: Varcharsales_price: Decimalcategory: Varchar (e.g., "Entree", "Appetizer")
2. The Recipe Engine (The Logic Layer)
This is the most critical table. It acts as a "Bill of Materials" (BOM) for the kitchen. It links sales to inventory.
recipe_ingredients (Junction Table)
Maps Menu Items to Ingredients. One Menu Item can have many Ingredients.
id(PK): Integermenu_item_id(FK): Links tomenu_items.ingredient_id(FK): Links toingredients.quantity: Float - Amount used per sale (e.g., 0.5).waste_factor: Float - Expected waste percentage (e.g., 0.05 for trim).
Example: A "Cheeseburger" entry in
menu_itemswould have three rows here:
Bun (1.0 each)
Beef Patty (5.0 oz)
Cheddar Slice (1.0 each)
3. Transactional Data (Dynamic)
These tables capture the week-to-week flow of goods and money.
sales_transactions
Imported from POS daily/weekly.
id(PK): Integermenu_item_id(FK): Links tomenu_items.quantity_sold: Integertransaction_date: DateTime
inventory_counts
Physical counts entered by the chef.
id(PK): Integeringredient_id(FK): Links toingredients.count_date: Datequantity_on_hand: Float - The physical count.period_start_date: Date - The start of this analysis cycle.
purchases
New stock arriving from vendors (increases inventory).
id(PK): Integeringredient_id(FK): Links toingredients.purchase_date: Datequantity_purchased: Float
4. The "Analysis" Query Logic
To get the Theoretical vs. Actual analysis, your application doesn't just read a table; it runs a calculation pipeline.
Step 1: Calculate Theoretical Usage
The app looks at sales_transactions and "explodes" them using the recipe_ingredients map.
Step 2: Calculate Actual Usage
The app looks at the physical changes in stock.
Step 3: The Variance
If Actual Usage > Theoretical Usage, you have waste or theft.
Sample SQL Concept (Simplified)
If you were writing a query to find out how much "Ground Beef" you should have used vs. what is missing:
SELECT
i.name AS Ingredient,
SUM(s.quantity_sold * r.quantity) AS Theoretical_Usage,
(inv_start.quantity_on_hand + p.quantity_purchased - inv_end.quantity_on_hand) AS Actual_Usage
FROM ingredients i
JOIN recipe_ingredients r ON i.id = r.ingredient_id
JOIN sales_transactions s ON r.menu_item_id = s.menu_item_id
-- (Joins for inventory and purchases omitted for brevity)
WHERE i.name = 'Ground Beef'
GROUP BY i.name;
Next Step
With the data structure defined, would you like me to design the User Interface (UI) Wireframe for the "Kitchen Dashboard," specifically focusing on how the chef inputs these counts efficiently on a tablet?
I want something like Olive Garden already uses
o build a system like the one Olive Garden (part of Darden Restaurants) uses, we need to move beyond simple inventory tracking and into Enterprise Resource Planning (ERP) for kitchens.
Olive Garden likely uses a heavily customized version of a system like CrunchTime!, QSR Automations, or an Oracle Micros module.
The key difference between a standard restaurant app and an "Olive Garden style" app is Predictive Production. They don't just track what they did sell; the system tells the kitchen exactly what to cook before the doors even open.
Here is how you upgrade the previous design to that Enterprise level.
1. The "Killer Feature": The Daily Prep Sheet
In a high-volume chain, the kitchen manager doesn't guess how much Alfredo sauce to make. The system tells them.
How it works: The system looks at historical sales for "Next Tuesday," accounts for local weather or promotions (e.g., "Endless Pasta Bowl"), and generates a Production Plan.
The Output: The cook gets a tablet screen that says: "Prep 22 Gallons of Alfredo. Thaw 40 lbs of shrimp."
2. The Database Upgrade: Handling "Nested Recipes"
Olive Garden doesn't just sell ingredients; they sell "Batches." You need a hierarchical recipe structure (Parent/Child relationships).
New Table: batch_recipes (The Sub-Recipes)
Olive Garden makes soups and sauces in massive quantities.1 These are "intermediate" items.
id: Integerbatch_name: "Marinara Base (5 Gallon)"shelf_life_hours: Integer (Safety compliance is huge for chains)yield_quantity: Float (e.g., 640 oz)
Updated Schema Concept:
Raw Ingredients: Tomatoes, Onions, Herbs.
Batch Recipe: Marinara Sauce (Consumes Raw Ingredients).
Menu Item: Spaghetti & Meatballs (Consumes Marinara Sauce Batch + Meatball Batch + Dry Pasta).
2
3. Advanced Waste Tracking (The "Waste Sheet")
In small restaurants, waste is calculated by what is "missing" at the end of the week. At Olive Garden, waste is entered actively to isolate human error from theft.
New Table: waste_logs
id: PKingredient_id: FKquantity: Floatreason_code: Enum ('Burned', 'Dropped', 'Expired', 'Training Error')user_id: Who reported it? (Accountability)
4. The "Chain-Style" Database Schema
Here is the upgraded schema to handle forecasting and batching:
-- 1. THE FORECAST (The Brains)
-- Stores the predicted sales used to tell cooks what to prep
CREATE TABLE daily_sales_forecast (
id INT PRIMARY KEY,
forecast_date DATE,
menu_item_id INT,
predicted_quantity INT, -- e.g., We expect to sell 400 Lasagnas
weather_factor VARCHAR(50) -- e.g., "Rainy - High Comfort Food"
);
-- 2. PRODUCTION PLAN (The Instructions)
-- The system translates the Forecast into Prep tasks
CREATE TABLE prep_production_plan (
id INT PRIMARY KEY,
production_date DATE,
batch_recipe_id INT, -- Link to "Alfredo Sauce"
target_prep_amount FLOAT, -- System says: "Make 20 Gallons"
actual_prepped_amount FLOAT, -- Cook types: "I made 20 Gallons"
staff_id INT -- Who prepped it?
);
-- 3. BATCH DEFINITIONS (Nested Logic)
-- Links raw ingredients to a batch (Sub-recipe)
CREATE TABLE batch_ingredients (
batch_recipe_id INT,
ingredient_id INT, -- Raw Material (e.g., Cream)
quantity_required FLOAT
);
5. The Workflow difference
If you build this app, the user journey changes from "Reactive" to "Proactive":
Standard App: Sell food --> Count Inventory --> See what's missing.
Olive Garden Style: Forecast Sales --> Generate Prep Sheet --> Cook Batches --> Sell Food --> Count Variance.
Next Step
To replicate the specific operational efficiency of a chain like Olive Garden, the "Prep Sheet" UI is critical. It needs to be simple enough for a line cook to use with greasy hands.
Would you like me to design the Logic Flow for the Forecast Algorithm (how the system decides to suggest "20 gallons of sauce"), or would you prefer to see the UI Mockup for the Kitchen Display System (KDS)?
Provide an example CSV of one month of orders and inventory usage
Here is an example CSV file (restaurant_daily_log.csv) containing 30 days of data.
This file combines Menu Orders and Inventory Usage into a single log format, which is common for raw data exports. You can filter the Record_Type column to separate the views.
File Structure Guide:
Menu_Order Rows: Show which dishes were sold, the count (
Quantity_Sold), and revenue.Inventory_Log Rows: Show the raw ingredients (e.g., "Marinara (oz)"), calculating what should have been used vs. what was actually counted.
Key Column: Variance. This is the difference between Inventory_Theoretical and Inventory_Actual. Positive numbers indicate waste or theft.
Download:
restaurant_daily_log.csv (See file below)
import pandas as pd
import numpy as np
import random
from datetime import datetime, timedelta
# 1. Setup Data - "Olive Garden" Style
menu_items = {
'Chicken Alfredo': {'price': 18.99, 'ingredients': {'Fettuccine (oz)': 8, 'Alfredo Sauce (oz)': 6, 'Chicken Breast (oz)': 6}},
'Spaghetti Meatballs': {'price': 16.50, 'ingredients': {'Spaghetti (oz)': 8, 'Marinara (oz)': 6, 'Meatballs (ea)': 3}},
'Lasagna Classico': {'price': 19.50, 'ingredients': {'Pasta Sheets (ea)': 4, 'Marinara (oz)': 5, 'Mozzarella (oz)': 4, 'Ricotta (oz)': 3}},
'Unlimited Breadsticks': {'price': 0.00, 'ingredients': {'Breadstick Dough (ea)': 4, 'Garlic Butter (oz)': 1}} # Loss leader
}
# Flatten ingredients list for inventory tracking
all_ingredients = set()
for dish, data in menu_items.items():
for ing in data['ingredients']:
all_ingredients.add(ing)
sorted_ingredients = sorted(list(all_ingredients))
# 2. Generate Dates (Oct 1 - Oct 30)
start_date = datetime(2023, 10, 1)
dates = [start_date + timedelta(days=i) for i in range(30)]
data_rows = []
# 3. Simulation Loop
for date in dates:
# Weekend Multiplier
is_weekend = date.weekday() >= 5
volume_multiplier = 1.4 if is_weekend else 1.0
# Track daily ingredient theoretical usage
daily_theoretical = {ing: 0.0 for ing in sorted_ingredients}
# --- SALES DATA ---
for item_name, specs in menu_items.items():
# Generate random daily sales
base_sales = random.randint(20, 60) # Average orders
if item_name == 'Unlimited Breadsticks':
base_sales = random.randint(100, 150) # Every table gets them
qty_sold = int(base_sales * volume_multiplier)
sales_amt = round(qty_sold * specs['price'], 2)
# Log the Order Row
data_rows.append({
'Date': date.strftime('%Y-%m-%d'),
'Record_Type': 'Menu_Order',
'Item_Name': item_name,
'Category': 'Sales',
'Quantity_Sold': qty_sold,
'Unit': 'Orders',
'Sales_Revenue': sales_amt,
'Inventory_Actual': None,
'Inventory_Theoretical': None,
'Variance': None,
'Waste_Reason': None
})
# Accumulate Theoretical Usage
for ing, amount in specs['ingredients'].items():
daily_theoretical[ing] += (qty_sold * amount)
# --- INVENTORY DATA ---
for ing_name, theo_qty in daily_theoretical.items():
# Simulate Variance (Waste/Theft)
# Random variance between -2% (saving?) and +10% (waste)
variance_pct = random.uniform(-0.01, 0.08)
# Sometimes a big spill happens (Outlier)
if random.random() < 0.05: # 5% chance of big accident
variance_pct += 0.15 # Dropped a bucket
waste_reason = 'Spill/Drop'
else:
waste_reason = 'Normal Waste' if variance_pct > 0 else 'Yield Gain'
actual_qty = round(theo_qty * (1 + variance_pct), 2)
variance_qty = round(actual_qty - theo_qty, 2)
data_rows.append({
'Date': date.strftime('%Y-%m-%d'),
'Record_Type': 'Inventory_Log',
'Item_Name': ing_name,
'Category': 'Inventory',
'Quantity_Sold': None,
'Unit': ing_name.split('(')[1].replace(')', ''), # Extract unit
'Sales_Revenue': None,
'Inventory_Actual': actual_qty,
'Inventory_Theoretical': theo_qty,
'Variance': variance_qty,
'Waste_Reason': waste_reason if variance_qty > 0 else None
})
# 4. Create DataFrame
df = pd.DataFrame(data_rows)
# Reorder columns for readability
cols = ['Date', 'Record_Type', 'Item_Name', 'Unit', 'Quantity_Sold', 'Sales_Revenue', 'Inventory_Theoretical', 'Inventory_Actual', 'Variance', 'Waste_Reason']
df = df[cols]
# 5. Save to CSV
csv_filename = 'restaurant_daily_log.csv'
df.to_csv(csv_filename, index=False)
print(f"CSV Generated: {csv_filename}")
df.head()
The python code was provided, but the CSV was not
I apologize for that oversight. Since I cannot generate a downloadable file directly in this chat interface, I have printed the raw CSV text below.
You can copy the content of the code block below, paste it into a text editor (like Notepad), and save it as restaurant_data.csv.
Date,Record_Type,Item_Name,Unit,Qty_Sold,Revenue,Theo_Usage,Actual_Usage,Variance,Waste_Reason
2023-10-01,Menu_Order,Chicken Alfredo,Orders,45,854.55,,,,
2023-10-01,Menu_Order,Spaghetti Meatballs,Orders,38,627.00,,,,
2023-10-01,Menu_Order,Lasagna Classico,Orders,42,819.00,,,,
2023-10-01,Menu_Order,Unlimited Breadsticks,Orders,120,0.00,,,,
2023-10-01,Inventory_Log,Alfredo Sauce,oz,,0.0,270.0,275.4,5.4,Normal Waste
2023-10-01,Inventory_Log,Breadstick Dough,ea,,0.0,480.0,480.0,0.0,
2023-10-01,Inventory_Log,Chicken Breast,oz,,0.0,270.0,285.0,15.0,Over-portioning
2023-10-01,Inventory_Log,Fettuccine,oz,,0.0,360.0,362.0,2.0,Normal Waste
2023-10-01,Inventory_Log,Garlic Butter,oz,,0.0,120.0,125.0,5.0,Spill/Drop
2023-10-01,Inventory_Log,Marinara,oz,,0.0,438.0,440.0,2.0,Normal Waste
2023-10-01,Inventory_Log,Meatballs,ea,,0.0,114.0,114.0,0.0,
2023-10-01,Inventory_Log,Mozzarella,oz,,0.0,168.0,175.0,7.0,Normal Waste
2023-10-01,Inventory_Log,Pasta Sheets,ea,,0.0,168.0,170.0,2.0,Broken Sheets
2023-10-01,Inventory_Log,Ricotta,oz,,0.0,126.0,130.0,4.0,Normal Waste
2023-10-01,Inventory_Log,Spaghetti,oz,,0.0,304.0,304.0,0.0,
2023-10-02,Menu_Order,Chicken Alfredo,Orders,32,607.68,,,,
2023-10-02,Menu_Order,Spaghetti Meatballs,Orders,30,495.00,,,,
2023-10-02,Menu_Order,Lasagna Classico,Orders,28,546.00,,,,
2023-10-02,Menu_Order,Unlimited Breadsticks,Orders,95,0.00,,,,
2023-10-02,Inventory_Log,Alfredo Sauce,oz,,0.0,192.0,195.0,3.0,Normal Waste
2023-10-02,Inventory_Log,Breadstick Dough,ea,,0.0,380.0,380.0,0.0,
2023-10-02,Inventory_Log,Chicken Breast,oz,,0.0,192.0,192.0,0.0,
2023-10-02,Inventory_Log,Fettuccine,oz,,0.0,256.0,260.0,4.0,Normal Waste
2023-10-02,Inventory_Log,Garlic Butter,oz,,0.0,95.0,110.0,15.0,Spill/Drop
2023-10-02,Inventory_Log,Marinara,oz,,0.0,320.0,320.0,0.0,
2023-10-02,Inventory_Log,Meatballs,ea,,0.0,90.0,92.0,2.0,Dropped
2023-10-02,Inventory_Log,Mozzarella,oz,,0.0,112.0,115.0,3.0,Normal Waste
2023-10-02,Inventory_Log,Pasta Sheets,ea,,0.0,112.0,112.0,0.0,
2023-10-02,Inventory_Log,Ricotta,oz,,0.0,84.0,84.0,0.0,
2023-10-02,Inventory_Log,Spaghetti,oz,,0.0,240.0,245.0,5.0,Over-portioning
2023-10-03,Menu_Order,Chicken Alfredo,Orders,35,664.65,,,,
2023-10-03,Menu_Order,Spaghetti Meatballs,Orders,33,544.50,,,,
2023-10-03,Menu_Order,Lasagna Classico,Orders,30,585.00,,,,
2023-10-03,Menu_Order,Unlimited Breadsticks,Orders,100,0.00,,,,
2023-10-03,Inventory_Log,Alfredo Sauce,oz,,0.0,210.0,210.0,0.0,
2023-10-03,Inventory_Log,Breadstick Dough,ea,,0.0,400.0,402.0,2.0,Normal Waste
2023-10-03,Inventory_Log,Chicken Breast,oz,,0.0,210.0,225.0,15.0,Over-portioning
2023-10-03,Inventory_Log,Fettuccine,oz,,0.0,280.0,280.0,0.0,
2023-10-03,Inventory_Log,Garlic Butter,oz,,0.0,100.0,102.0,2.0,Normal Waste
2023-10-03,Inventory_Log,Marinara,oz,,0.0,348.0,350.0,2.0,Normal Waste
2023-10-03,Inventory_Log,Meatballs,ea,,0.0,99.0,99.0,0.0,
2023-10-03,Inventory_Log,Mozzarella,oz,,0.0,120.0,120.0,0.0,
2023-10-03,Inventory_Log,Pasta Sheets,ea,,0.0,120.0,122.0,2.0,Broken Sheets
2023-10-03,Inventory_Log,Ricotta,oz,,0.0,90.0,95.0,5.0,Spoilage
2023-10-03,Inventory_Log,Spaghetti,oz,,0.0,264.0,264.0,0.0,
2023-10-04,Menu_Order,Chicken Alfredo,Orders,40,759.60,,,,
2023-10-04,Menu_Order,Spaghetti Meatballs,Orders,35,577.50,,,,
2023-10-04,Menu_Order,Lasagna Classico,Orders,38,741.00,,,,
2023-10-04,Menu_Order,Unlimited Breadsticks,Orders,110,0.00,,,,
2023-10-04,Inventory_Log,Alfredo Sauce,oz,,0.0,240.0,245.0,5.0,Normal Waste
2023-10-04,Inventory_Log,Breadstick Dough,ea,,0.0,440.0,440.0,0.0,
2023-10-04,Inventory_Log,Chicken Breast,oz,,0.0,240.0,240.0,0.0,
2023-10-04,Inventory_Log,Fettuccine,oz,,0.0,320.0,325.0,5.0,Normal Waste
2023-10-04,Inventory_Log,Garlic Butter,oz,,0.0,110.0,110.0,0.0,
2023-10-04,Inventory_Log,Marinara,oz,,0.0,400.0,415.0,15.0,Spill/Drop
2023-10-04,Inventory_Log,Meatballs,ea,,0.0,105.0,105.0,0.0,
2023-10-04,Inventory_Log,Mozzarella,oz,,0.0,152.0,155.0,3.0,Normal Waste
2023-10-04,Inventory_Log,Pasta Sheets,ea,,0.0,152.0,152.0,0.0,
2023-10-04,Inventory_Log,Ricotta,oz,,0.0,114.0,114.0,0.0,
2023-10-04,Inventory_Log,Spaghetti,oz,,0.0,280.0,280.0,0.0,
2023-10-05,Menu_Order,Chicken Alfredo,Orders,55,1044.45,,,,
2023-10-05,Menu_Order,Spaghetti Meatballs,Orders,50,825.00,,,,
2023-10-05,Menu_Order,Lasagna Classico,Orders,48,936.00,,,,
2023-10-05,Menu_Order,Unlimited Breadsticks,Orders,140,0.00,,,,
2023-10-05,Inventory_Log,Alfredo Sauce,oz,,0.0,330.0,340.0,10.0,Over-portioning
2023-10-05,Inventory_Log,Breadstick Dough,ea,,0.0,560.0,560.0,0.0,
2023-10-05,Inventory_Log,Chicken Breast,oz,,0.0,330.0,335.0,5.0,Normal Waste
2023-10-05,Inventory_Log,Fettuccine,oz,,0.0,440.0,445.0,5.0,Normal Waste
2023-10-05,Inventory_Log,Garlic Butter,oz,,0.0,140.0,140.0,0.0,
2023-10-05,Inventory_Log,Marinara,oz,,0.0,540.0,550.0,10.0,Normal Waste
2023-10-05,Inventory_Log,Meatballs,ea,,0.0,150.0,152.0,2.0,Dropped
2023-10-05,Inventory_Log,Mozzarella,oz,,0.0,192.0,192.0,0.0,
2023-10-05,Inventory_Log,Pasta Sheets,ea,,0.0,
From <https://gemini.google.com/app/> Google Gemini 3.0 Pro (Thinking)
Comments
Post a Comment