'I am at the restaurant' locates you in the town. You are at the restaurant, not the train station, for example. I am in the restaurant' locates you in a smaller space. For example you are in (inside) the restaurant, not in the restaurant's garden. Or perhaps you are on holiday in a hotel and you are in the hotel's restaurant, not the spa centre.