Одно и тоже значение randint в inline режиме Telegram бота

Недавно начал изучать создание телеграм ботов через pyTelegramBotAPI.

Делаю бота, который работает только в Inline режиме.

При вызове бота в группе через @ он показывает доступные команды, при выборе команды выводится соответствующий этой команде результат.

Я сделал команду, которая генерирует случайное число от 1 до 100.

Но столкнулся с проблемой - результат (случайное число) одно и тоже при разном вызове команды через inline режим.

Как сделать так, чтобы при вызове моей команды из inline режима бота всегда генерировалось новое случайное число?

Мой код:

import telebot
from telebot import types
from random import randint

TOKEN = "Токен бота"
bot = telebot.TeleBot(TOKEN)

def rand():
    return randint(1, 100)

@bot.inline_handler(lambda query: query.query == '')
def default_query(inline_query):
    try:
        r4 = types.InlineQueryResultArticle(4, 'случайное число', types.InputTextMessageContent(f'{rand()}'), thumb_url = 'https://i.ibb.co/xF9nrXP/image.png')
        bot.answer_inline_query(inline_query.id, [r4])
    except Exception as ex:
        print(ex)
    

if (__name__ == '__main__'):
    while True:
        try:
            bot.polling(none_stop = True)
        except Exception as ex:
            print(ex)

Ответы (1 шт):

Автор решения: Violet

cache_time:

Максимальное время в секундах, в течение которого результат встроенного запроса может быть кэширован на сервере. По умолчанию 300.

bot.answer_inline_query(inline_query.id, [r4], cache_time=0)

Укажите cache_time=0 и через некоторое время Вы будете получать случайное значение каждый раз при вызове бота из инлайн-режима.

Ссылку на этот параметр можно увидеть в настройках Inline feedback у Отца Ботов: введите сюда описание изображения

→ Ссылка