Ошибка `NameError: имя 'chat' не определено` возникает из-за того, что вы используете переменную `message` вне функции `summa`.
Чтобы исправить эту ошибку, вы можете переместить код, который использует переменную `message`, внутрь функции `summa()`. Вот исправленный код:
```python
import telebot
from currency_converter import CurrencyConverter
from telebot import types
bot = telebot.TeleBot("Api ключ поставлен")
currency = CurrencyConverter()
amount = 0
@bot.message_handler(commands=['start'])
def start(message):
bot.send_message(message.chat.id, 'Привет, введите сумму')
bot.register_next_step_handler(message, summa)
def summa(message):
global amount
try:
amount = int(message.text.strip())
except ValueError:
bot.send_message(message.chat.id, 'Неверный формат. Впишите сумму')
bot.register_next_step_handler(message, summa)
return
if amount > 1:
markup = types.InlineKeyboardMarkup(row_width=2)
btn1 = types.InlineKeyboardButton('USD/EUR', callback_data='usd/eur')
btn2 = types.InlineKeyboardButton('EUR/USD', callback_data='eur/usd')
btn3 = types.InlineKeyboardButton('USD/GBP', callback_data='usd/gbp')
btn4 = types.InlineKeyboardButton('Другое значение', callback_data='else')
markup.add(btn1, btn2, btn2, btn3, btn4)
bot.send_message(message.chat.id, 'Выберите пару валют', reply_markup=markup)
else:
bot.send_message(message.chat.id, "Число должно быть больше 1. Введите число")
bot.register_next_step_handler(message, summa)
bot.polling(none_stop=True)
```
Этот исправленный код должен избавить вас от ошибки `NameError: имя 'chat' не определено`.