Интеграция чат-бота на основе LLM в Telegram бесплатно

Пошаговое руководство
huggingface + telegram

В этом руководстве мы покажем вам, как создать Telegram-бота на базе бесплатной большой языковой модели (LLM). Предварительный опыт не требуется. Мы будем использовать бесплатные инструменты, такие как Telegram, Hugging Face и Python.

Поехали!

Что вам понадобится:

• Аккаунт Telegram

• Аккаунт Hugging Face (бесплатный)

• Базовая настройка Python (установленный Python и, желательно, настроенная виртуальная среда)

Шаг 1: Создайте Telegram-бота

1. Откройте Telegram на своем устройстве.

2. Найдите BotFather и нажмите на верифицированный аккаунт с галочкой ☑️.

3. Напишите /newbot и следуйте инструкциям:

Придумайте имя для своего бота

Создайте имя пользователя которое заканчивается на bot

4. BotFather отправит вам токен бота. Скопируйте этот токен — он вам скоро понадобится.

Шаг 2: Получите бесплатный API-ключ LLM от Hugging Face

1. Перейдите на сайт huggingface.co и зарегистрируйтесь (бесплатно).

2. Нажмите на значок своего профиля → Access Tokens.

3. Нажмите New Token, дайте ему имя (например, "LLMBotToken") и создайте его с правом записи - write.

4. Скопируйте API-токен.

5. Выберите бесплатную модель в центре моделей Hugging Face. Бесплатные модели имеют открытую лицензию (например, MIT, Apache 2.0). В этом руководстве мы будем использовать DeepSeek-R1-Distill-Qwen-1.5B.

Имейте в виду, это рассудительная модель, поэтому она довольно многословна. Вы можете "поиграться" с моделью прямо на сайте, или выбрать другую.

6. Нажмите Deploy → Inference Providers. Здесь можно выбрать «инференс‑провайдера» для выбранной модели (поставщика услуг по работе с развёрнутыми моделями), и получить доступ к примерам кода на Python, JavaScript и cURL.

Шаг 3: Установите необходимые библиотеки

1. Создайте новую папку для своего проекта и откройте ее в терминале.

2. Вам нужно установить следующие библиотеки для взаимодействия с API Telegram-бота и Hugging Face:

pip install python-telegram-bot huggingface_hub

Шаг 4: Пишем Python-скрипт для Telegram-бота

1. Создайте файл с именем bot.py.

2. Вставьте следующий код в файл:


from telegram import Update
from telegram.ext import ApplicationBuilder, CommandHandler, MessageHandler, ContextTypes, filters
from huggingface_hub import InferenceClient

TELEGRAM_TOKEN = 'YOUR_TELEGRAM_BOT_TOKEN'
HF_API_KEY = 'YOUR_HF_API_TOKEN'

client = InferenceClient(
    provider="hf-inference",
    api_key=HF_API_KEY,
)

user_conversations = {}

async def start(update: Update, context: ContextTypes.DEFAULT_TYPE):
    await update.message.reply_text('Hello! Send me a message and I will reply using AI!')

async def handle_message(update: Update, context: ContextTypes.DEFAULT_TYPE):
    user_id = update.message.chat_id
    user_message = update.message.text
    await update.message.reply_text('Thinking... 🤔')

    if user_id not in user_conversations:
        user_conversations[user_id] = []

    user_conversations[user_id].append({"role": "user", "content": user_message})

    try:
        completion = client.chat.completions.create(
            model="deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B",
            messages=user_conversations[user_id],
            max_tokens=500,
        )

        response_text = completion.choices[0].message["content"]
        user_conversations[user_id].append({"role": "assistant", "content": response_text})

        await update.message.reply_text(response_text)

    except Exception as e:
        print(f"Error: {e}")
        await update.message.reply_text('Something went wrong! 😥')

def main():
    app = ApplicationBuilder().token(TELEGRAM_TOKEN).build()

    app.add_handler(CommandHandler("start", start))
    app.add_handler(MessageHandler(filters.TEXT & (~filters.COMMAND), handle_message))

    print("Bot is running...")
    app.run_polling()

if __name__ == '__main__':
    main()
                    

3. Замените YOUR_TELEGRAM_BOT_TOKEN и YOUR_HF_API_TOKEN на свои токены.

Шаг 5: Запустите своего чат-бота

1. В терминале выполните команду:

python bot.py

2. Там же вы должны увидеть:

Bot is running...

3. Теперь перейдите в Telegram, найдите своего бота (по имени пользователя) и начните общение! Он должен отвечать на основе выходных данных LLM.

Устранение неполадок:

Примечание: Популярные модели Hugging Face могут испытывать высокую нагрузку. Если модель сильно используется, ответ может занять больше времени или модель может быть временно недоступна. Пожалуйста, проявите терпение и попробуйте позже.

Если бот не отвечает, проверьте следующее:

Убедитесь, что токен Telegram и API-ключ Hugging Face указаны правильно.

Убедитесь, что модель Hugging Face доступна и работает (вы можете проверить документацию Hugging Face для получения более подробной информации).

Убедитесь, что ваш бот добавлен в чат и вы взаимодействуете с ним.

Март 2025

Придаем жизнь Вашим идеям

Наши Услуги