## Symbolic Representation

To solve the given optimization problem, we first need to convert the natural language description into a symbolic representation.

Let's denote:
- $x_1$ as the number of LED signs made by team A
- $x_2$ as the number of neon signs made by team B

The objective is to maximize profit. Given that the profit per LED sign is $1500 and the profit per neon sign is $1450, the objective function can be represented as:

Maximize: $1500x_1 + 1450x_2$

The constraints based on the problem description are:
- Team A can make at most 3 LED signs a day: $x_1 \leq 3$
- Team B can make at most 4 neon signs a day: $x_2 \leq 4$
- The senior QC inspector can check at most 7 signs total a day: $x_1 + x_2 \leq 7$
- Non-negativity constraints: $x_1 \geq 0, x_2 \geq 0$ and $x_1, x_2$ are integers.

## Symbolic Representation in JSON Format

```json
{
    'sym_variables': [('x1', 'LED signs'), ('x2', 'neon signs')],
    'objective_function': '1500*x1 + 1450*x2',
    'constraints': [
        'x1 <= 3',
        'x2 <= 4',
        'x1 + x2 <= 7',
        'x1 >= 0',
        'x2 >= 0'
    ]
}
```

## Gurobi Code in Python

```python
import gurobi

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

    # Define variables
    x1 = model.addVar(name='LED_signs', vtype=gurobi.GRB.INTEGER, lb=0)
    x2 = model.addVar(name='neon_signs', vtype=gurobi.GRB.INTEGER, lb=0)

    # Objective function: Maximize profit
    model.setObjective(1500 * x1 + 1450 * x2, gurobi.GRB.MAXIMIZE)

    # Constraints
    model.addConstr(x1 <= 3, name='Team_A_capacity')
    model.addConstr(x2 <= 4, name='Team_B_capacity')
    model.addConstr(x1 + x2 <= 7, name='QC_inspector_capacity')

    # Solve the model
    model.optimize()

    # Print the solution
    if model.status == gurobi.GRB.OPTIMAL:
        print(f"Optimal solution: LED signs = {x1.varValue}, neon signs = {x2.varValue}")
        print(f"Max Profit: ${1500*x1.varValue + 1450*x2.varValue}")
    else:
        print("The model is infeasible")

solve_sign_problem()
```