Вот еще один вариант решения:
```python
def handle_message(message):
if message.text == 'Поздороваться':
markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
btn1 = types.KeyboardButton('Вики')
markup.add(btn1)
bot.send_message(message.from_user.id, 'Задайте вопрос', reply_markup=markup)
elif message.text == 'Вики':
bot.send_message(message.chat.id, 'Отправьте мне любое слово, и я найду его значение на Wikipedia')
else:
bot.send_message(message.chat.id, getwiki(message.text))
@bot.message_handler(commands=['start'])
def start(message):
markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
btn1 = types.KeyboardButton("Поздороваться")
markup.add(btn1)
bot.send_message(message.from_user.id, "Привет! Я твой бот-помощник!", reply_markup=markup)
@bot.message_handler(content_types=['text'])
def handle_text(message):
handle_message(message)
```
В этом решении оба обработчика (handler) вынесены в отдельную функцию `handle_message()`. Затем первый обработчик `/start` вызывает функцию `handle_message()` с передачей ему параметра `message`. Второй обработчик `handle_text()` также вызывает эту же функцию. Это позволяет использовать один и тот же код обработки сообщений в обоих обработчиках.