## Problem Description and Formulation

The problem is a linear programming optimization problem. Eta Auto produces two types of cars: hybrid and electric. The goal is to maximize profit by determining the optimal number of hybrid (y1) and electric (y2) models to produce daily.

### Given Parameters:
- Profit per hybrid model: $4500
- Profit per electric model: $5500
- Maximum daily demand for hybrid models: 9
- Maximum daily demand for electric models: 5
- Maximum total cars produced per day: 10
- y1, y2 ≥ 0 (non-negativity constraint)

### Objective Function:
Maximize Profit = 4500*y1 + 5500*y2

### Constraints:
1. y1 ≤ 9 (hybrid demand constraint)
2. y2 ≤ 5 (electric demand constraint)
3. y1 + y2 ≤ 10 (total production constraint)
4. y1, y2 ≥ 0 (non-negativity constraints)

## Gurobi Code

```python
import gurobi

def solve_eta_auto_problem():
    # Create a new model
    model = gurobi.Model()

    # Define variables
    y1 = model.addVar(lb=0, ub=9, name="hybrid_models")
    y2 = model.addVar(lb=0, ub=5, name="electric_models")

    # Objective function: Maximize profit
    model.setObjective(4500*y1 + 5500*y2, gurobi.GRB.MAXIMIZE)

    # Constraints
    model.addConstr(y1 <= 9, name="hybrid_demand_constraint")
    model.addConstr(y2 <= 5, name="electric_demand_constraint")
    model.addConstr(y1 + y2 <= 10, name="total_production_constraint")

    # Optimize
    model.optimize()

    # Print solution
    if model.status == gurobi.GRB.OPTIMAL:
        print(f"Optimal number of hybrid models: {y1.varValue}")
        print(f"Optimal number of electric models: {y2.varValue}")
        print(f"Maximum profit: {model.objVal}")
    else:
        print("No optimal solution found.")

solve_eta_auto_problem()
```

However, to adhere strictly to the format requested and provide a cleaner separation between explanation and code:

The problem is formulated with the goal to maximize profit under given constraints. 

```python
import gurobi

def solve_eta_auto_problem():
    model = gurobi.Model()

    y1 = model.addVar(lb=0, ub=9, name="hybrid_models")
    y2 = model.addVar(lb=0, ub=5, name="electric_models")

    model.setObjective(4500*y1 + 5500*y2, gurobi.GRB.MAXIMIZE)

    model.addConstr(y1 <= 9, name="hybrid_demand_constraint")
    model.addConstr(y2 <= 5, name="electric_demand_constraint")
    model.addConstr(y1 + y2 <= 10, name="total_production_constraint")

    model.optimize()

    if model.status == gurobi.GRB.OPTIMAL:
        print(f"Optimal number of hybrid models: {y1.varValue}")
        print(f"Optimal number of electric models: {y2.varValue}")
        print(f"Maximum profit: {model.objVal}")
    else:
        print("No optimal solution found.")

solve_eta_auto_problem()
```