input: Write a function to design a neural network in Python to predict a customer’s annual income based on their age and education level. The function should build, compile, and fit the model, then predict the annual income for a given age and education level. If the given input is invalid, the function should return an appropriate message.
  assert predict_annual_income([[25, 0], [30, 0], [35, 0], [40, 0], [45, 1], [45, 2], [50, 1], [50, 2], [55, 1], [55, 2], [50, 3], [60, 3]], [15000, 20000, 25000, 30000, 40000, 45000, 50000, 60000, 65000, 70000, 80000, 90000], 50, 3) == [[80000]]
  assert predict_annual_income([[25, 0], [30, 0], [35, 0]], [15000, 20000, 25000], 30, 0) == [[20000]]
  assert predict_annual_income([], [], 50, 3) == "Invalid input data"
  assert predict_annual_income([[25, 0], [30, 0], [35, 0]], [15000, 20000, 25000], -1, 3) == "Invalid age or education level"
  assert predict_annual_income([[25, 0], [30, 0], [35, 0]], [15000, 20000, 25000], 30, 4) == "Invalid age or education level"
output: def predict_annual_income(X, y, age, education_level):
      if not X or not y:
          return "Invalid input data"
      if age < 0 or education_level < 0 or education_level > 3:
          return "Invalid age or education level"
      
      import tensorflow as tf
      from tensorflow.keras.models import Sequential
      from tensorflow.keras.layers import Dense
  
      model = Sequential([
          Dense(10, input_dim=2, activation='relu'),
          Dense(1)
      ])
      
      model.compile(optimizer='adam', loss='mean_squared_error')
      model.fit(X, y, epochs=100, verbose=0)
      
      prediction = model.predict([[age, education_level]])
      return prediction