Нейросеть выдала в чат такой ответ:
["\u041a\u0430\u043a\u043e\u0432\u0430 \u043c\u0430\u0441\u0441\u0430 \u0438\u043e\u043d\u0430?", "\u0427\u0442\u043e\u0431\u044b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043c\u0430\u0441\u0441\u0443 \u0438\u043e\u043d\u0430, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0437\u043d\u0430\u0442\u044c, \u043e \u043a\u0430\u043a\u043e\u043c \u0438\u043c\u0435\u043d\u043d\u043e \u0438\u043e\u043d\u0435 \u0438\u0434\u0435\u0442 \u0440\u0435\u0447\u044c, \u0442\u0430\u043a \u043a\u0430\u043a \u043c\u0430\u0441\u0441\u0430 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0435\u0433\u043e \u0445\u0438\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0441\u043e\u0441\u0442\u0430\u0432\u0430 \u0438 \u0437\u0430\u0440\u044f\u0434\u0430. \u0412\u043e\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u043c\u0430\u0441\u0441 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0451\u043d\u043d\u044b\u0445 \u0438\u043e\u043d\u043e\u0432 (\u043c\u0430\u0441\u0441\u044b \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u044b \u0432 \u0430\u0442\u043e\u043c\u043d\u044b\u0445 \u0435\u0434\u0438\u043d\u0438\u0446\u0430\u0445 \u043c\u0430\u0441\u0441\u044b, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0432 \u0433\u0440\u0430\u043c\u043c\u0430\u0445 \u043d\u0430 \u043c\u043e\u043b\u044c):\n\n1. **\u0418\u043e\u043d \u043d\u0430\u0442\u0440\u0438\u044f (Na\u207a)**\n   - **\u0410\u0442\u043e\u043c\u043d\u0430\u044f \u043c\u0430\u0441\u0441\u0430:** \u2248 22.99 \u0430.\u0435.\u043c.\n   - **\u041c\u043e\u043b\u044f\u0440\u043d\u0430\u044f \u043c\u0430\u0441\u0441\u0430:** \u2248 22.99 \u0433/\u043c\u043e\u043b\u044c\n\n2. **\u0418\u043e\u043d \u0445\u043b\u043e\u0440\u0430 (Cl\u207b)**\n   - **\u0410\u0442\u043e\u043c\u043d\u0430\u044f \u043c\u0430\u0441\u0441\u0430:** \u2248 35.45 \u0430.\u0435.\u043c.\n   - **\u041c\u043e\u043b\u044f\u0440\u043d\u0430\u044f \u043c\u0430\u0441\u0441\u0430:** \u2248 35.45 \u0433/\u043c\u043e\u043b\u044c\n\n3. **\u0418\u043e\u043d \u043a\u0430\u043b\u044c\u0446\u0438\u044f (Ca\u00b2\u207a)**\n   - **\u0410\u0442\u043e\u043c\u043d\u0430\u044f \u043c\u0430\u0441\u0441\u0430:** \u2248 40.08 \u0430.\u0435.\u043c.\n   - **\u041c\u043e\u043b\u044f\u0440\u043d\u0430\u044f \u043c\u0430\u0441\u0441\u0430:** \u2248 40.08 \u0433/\u043c\u043e\u043b\u044c\n\n4. **\u0418\u043e\u043d \u0441\u0443\u043b\u044c\u0444\u0430\u0442\u0430 (SO\u2084\u00b2\u207b)**\n   - **\u041c\u043e\u043b\u0435\u043a\u0443\u043b\u044f\u0440\u043d\u0430\u044f \u043c\u0430\u0441\u0441\u0430:** \u2248 96.06 \u0430.\u0435.\u043c.\n   - **\u041c\u043e\u043b\u044f\u0440\u043d\u0430\u044f \u043c\u0430\u0441\u0441\u0430:** \u2248 96.06 \u0433/\u043c\u043e\u043b\u044c\n\n\u0415\u0441\u043b\u0438 \u0432\u0430\u0441 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u0435\u0442 \u0434\u0440\u0443\u0433\u043e\u0439 \u0438\u043e\u043d, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0443\u0442\u043e\u0447\u043d\u0438\u0442\u0435 \u0435\u0433\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0438\u043b\u0438 \u0445\u0438\u043c\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0444\u043e\u0440\u043c\u0443\u043b\u0443, \u0438 \u044f \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044e \u0431\u043e\u043b\u0435\u0435 \u0442\u043e\u0447\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0435\u0433\u043e \u043c\u0430\u0441\u0441\u0435."]
```python
import os
import string
import random
import sqlite3
import asyncio
import logging
from telegram import (
    Update,
    ReplyKeyboardMarkup,
    ReplyKeyboardRemove,
)
from telegram.ext import (
    ApplicationBuilder,
    CommandHandler,
    MessageHandler,
    ContextTypes,
    filters,
)
from dotenv import load_dotenv
from gradio_client import Client

# Настройка логирования
logging.basicConfig(
    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
    level=logging.INFO
)
logger = logging.getLogger(__name__)

# Загрузка переменных окружения из .env файла
load_dotenv()

BOT_TOKEN = os.getenv('BOT_TOKEN')
ADMIN_USER_ID = os.getenv('ADMIN_USER_ID')
SBERBANK_NUMBER = os.getenv('SBERBANK_NUMBER')
SBERBANK_AMOUNT = os.getenv('SBERBANK_AMOUNT')
O1MINI_CLIENT_URL = os.getenv('O1MINI_CLIENT_URL')  # Добавьте URL вашего нейросетевого API в .env

if not all([BOT_TOKEN, ADMIN_USER_ID, SBERBANK_NUMBER, SBERBANK_AMOUNT, O1MINI_CLIENT_URL]):
    raise ValueError("Пожалуйста, убедитесь, что все переменные окружения корректно настроены.")

# Инициализация базы данных
def init_db():
    conn = sqlite3.connect('payments.db')
    conn.row_factory = sqlite3.Row
    cursor = conn.cursor()
    cursor.execute('''
    CREATE TABLE IF NOT EXISTS payments (
        user_id INTEGER PRIMARY KEY,
        unique_id TEXT,
        payment_status TEXT,
        requests_left INTEGER DEFAULT 0
    )
    ''')
    conn.commit()
    return conn, cursor

conn, cursor = init_db()

def generate_unique_id(length=8):
    characters = string.ascii_letters + string.digits
    return ''.join(random.choice(characters) for _ in range(length))

# Инициализация клиента для нейросети
client = Client(O1MINI_CLIENT_URL)

async def start(update: Update, context: ContextTypes.DEFAULT_TYPE):
    user_id = update.effective_user.id
    username = update.effective_user.username or "Неведомый пользователь"

    # Проверка, если пользователь уже оплатил
    cursor.execute("SELECT payment_status FROM payments WHERE user_id=?", (user_id,))
    result = cursor.fetchone()
    if result and result['payment_status'] == 'paid':
        await update.message.reply_text(
            "Вы уже оплатили. Добро пожаловать! Вы можете начать общение с нейросетью с помощью команды /ask."
        )
    else:
        unique_id = generate_unique_id()
        cursor.execute("INSERT OR REPLACE INTO payments (user_id, unique_id, payment_status, requests_left) VALUES (?, ?, ?, ?)", 
                       (user_id, unique_id, 'pending', 0))
        conn.commit()

        payment_instructions = (
            "Чтобы получить доступ к функциям бота и общению с нейросетью, пожалуйста, совершите перевод на следующую карту Сбербанк:\n\n"
            f"📱 Номер для перевода: {SBERBANK_NUMBER}\n"
            f"💰 Сумма: {SBERBANK_AMOUNT} рублей\n"
            f"🆔 Уникальный ID: {unique_id}\n\n"
            "Введите Ваш Уникальный ID в комментарии к переводу.\n\n"
            "После совершения перевода, нажмите кнопку с вашим уникальным ID для подтверждения оплаты."
        )
        await update.message.reply_text(
            payment_instructions,
            reply_markup=ReplyKeyboardMarkup([[unique_id]], one_time_keyboard=True),
        )

async def confirm_payment(update: Update, context: ContextTypes.DEFAULT_TYPE):
    user_id = update.effective_user.id
    user_message = update.message.text.strip()

    # Получение информации о пользователе
    cursor.execute("SELECT unique_id, payment_status FROM payments WHERE user_id=?", (user_id,))
    result = cursor.fetchone()

    if not result:
        await update.message.reply_text("Вы не запрашивали оплату. Введите /start для начала.")
        return

    unique_id, payment_status = result['unique_id'], result['payment_status']
    if payment_status == 'paid':
        await update.message.reply_text("Вы уже подтвердили оплату. Добро пожаловать!")
        return

    if user_message == unique_id:
        await update.message.reply_text(
            "Ваш уникальный ID получен. Ожидайте подтверждения оплаты администратором.",
            reply_markup=ReplyKeyboardRemove(),
        )
        # Уведомление администратора
        admin_message = (
            f"Пользователь @{update.effective_user.username} (ID: {user_id}) отправил свой уникальный ID для подтверждения оплаты:\n\n"
            f"🆔 Уникальный ID: {unique_id}"
        )
        try:
            await context.bot.send_message(chat_id=ADMIN_USER_ID, text=admin_message)
        except Exception as e:
            logger.error(f"Ошибка при отправке сообщения администратору: {e}")
    else:
        await update.message.reply_text("Неверный уникальный ID. Пожалуйста, попробуйте снова.")

async def protected_command(update: Update, context: ContextTypes.DEFAULT_TYPE):
    user_id = update.effective_user.id
    cursor.execute("SELECT payment_status, requests_left FROM payments WHERE user_id=?", (user_id,))
    result = cursor.fetchone()

    if result and result['payment_status'] == 'paid':
        requests_left = result['requests_left']
        if requests_left > 0:
            # Пример защищенного контента
            await update.message.reply_text("Вот ваш доступный контент.")

            # Уменьшаем количество запросов
            cursor.execute("UPDATE payments SET requests_left = requests_left - 1 WHERE user_id=?", (user_id,))
            conn.commit()
        else:
            await update.message.reply_text("У вас закончились запросы. Пожалуйста, продлите подписку.")
    else:
        await update.message.reply_text(
            "Для доступа, пожалуйста, оплатите.",
            reply_markup=ReplyKeyboardMarkup([["Отправить ID"]], one_time_keyboard=True),
        )

async def ask_neural_network(update: Update, context: ContextTypes.DEFAULT_TYPE):
    user_id = update.effective_user.id
    user_input_text = update.message.text.strip()

    # Исключить команду /ask из запроса
    if user_input_text.startswith('/ask'):
        user_query = user_input_text[4:].strip()
    else:
        user_query = user_input_text

    if not user_query:
        await update.message.reply_text("Пожалуйста, задайте свой вопрос после команды /ask.")
        return

    # Проверка количества оставшихся запросов
    cursor.execute("SELECT payment_status, requests_left FROM payments WHERE user_id=?", (user_id,))
    result = cursor.fetchone()

    if not result or result['payment_status'] != 'paid':
        await update.message.reply_text(
            "Для доступа, пожалуйста, оплатите.",
            reply_markup=ReplyKeyboardMarkup([["Отправить ID"]], one_time_keyboard=True),
        )
        return

    requests_left = result['requests_left']
    if requests_left <= 0:
        await update.message.reply_text("У вас закончились запросы. Пожалуйста, продлите подписку.")
        return

    # Отправка запроса к нейросети
    await update.message.reply_text("Обрабатываю ваш запрос...")

    try:
        # Поскольку gradio_client синхронный, выполняем его в отдельном потоке
        loop = asyncio.get_event_loop()
        response = await loop.run_in_executor(None, lambda: client.predict(
            inputs=user_query,
            top_p=1,
            temperature=1,
            chat_counter=0,
            chatbot=[],
            api_name="/predict"
        ))

        # Логирование полного ответа для отладки
        logger.info(f"Полный ответ от нейросети: {response}")

        # Обработка ответа в соответствии со структурой
        if response and isinstance(response, (list, tuple)) and len(response) > 0:
            first_element = response[0]
            if isinstance(first_element, (list, tuple)) and len(first_element) > 0:
                neural_response = first_element[0]  # Корректируйте индекс согласно структуре
                await update.message.reply_text(neural_response)
            else:
                await update.message.reply_text("Получен некорректный ответ от нейросети.")
        else:
            await update.message.reply_text("Получен пустой ответ от нейросети.")

        # Уменьшаем количество запросов
        cursor.execute("UPDATE payments SET requests_left = requests_left - 1 WHERE user_id=?", (user_id,))
        conn.commit()

    except Exception as e:
        logger.error(f"Ошибка при взаимодействии с нейросетью: {e}")
        await update.message.reply_text("Произошла ошибка при обработке вашего запроса. Пожалуйста, попробуйте позже.")

def main():
    application = ApplicationBuilder().token(BOT_TOKEN).build()

    application.add_handler(CommandHandler("start", start))
    application.add_handler(CommandHandler("protected", protected_command))
    application.add_handler(CommandHandler("ask", ask_neural_network))
    application.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, confirm_payment))

    logger.info("Бот запущен...")
    application.run_polling()

if __name__ == '__main__':
    main()
```