try:
if '/dp/' in message.text:
product_id = message.text.split('/')[4]
else:
product_id = message.text.split('/')[-1]
answer = requests.get(f'API{product_id}')
except Exception:
bot.send_message(message.chat.id, 'Product not Evaluated yet.')
import numpy as np
arr = bgr
# Выстраиваем пиксели в ряд.
arr = arr.reshape(-1, arr.shape[-1])
# Сортируем по "возрастанию" цвета, чтобы одинаковые пиксели шли подряд
sorted_arr = arr[np.lexsort(arr.T), :]
# Используем разницу между соседями, чтобы понять, где заканчивается "цепочка" одинаковых пикселей
diff_idx = np.where(np.any(np.diff(sorted_arr, axis=0), 1))[0]
# Получаем набор уникальных пикселей
unique_rows = [sorted_arr[i] for i in diff_idx] + [sorted_arr[-1]]
# считаем, сколько раз встретился каждый уникальный пиксель
counts = np.diff(
np.append(np.insert(diff_idx, 0, -1), sorted_arr.shape[0] - 1))
# строим словарь вида "кортеж с цветом - количество".
counter = dict(zip(map(tuple, unique_rows), counts))
(message.text == '1') or (message.text == '2')
message.text in ('1', '2', '3', '4', '5')
На глаз ошибку заметить трудно.