В этом руководстве мы покажем вам, как создать Telegram-бота на базе бесплатной большой языковой модели (LLM). Предварительный опыт не требуется. Мы будем использовать бесплатные инструменты, такие как Telegram, Hugging Face и Python.
Поехали!
• Аккаунт Telegram
• Аккаунт Hugging Face (бесплатный)
• Базовая настройка Python (установленный Python и, желательно, настроенная виртуальная среда)
1. Откройте Telegram на своем устройстве.
2. Найдите BotFather и нажмите на верифицированный аккаунт с галочкой ☑️.
3. Напишите /newbot
и следуйте инструкциям:
• Придумайте имя для своего бота
• Создайте имя пользователя которое заканчивается на bot
4. BotFather отправит вам токен бота. Скопируйте этот токен — он вам скоро понадобится.
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.
1. Создайте новую папку для своего проекта и откройте ее в терминале.
2. Вам нужно установить следующие библиотеки для взаимодействия с API Telegram-бота и Hugging Face:
pip install python-telegram-bot huggingface_hub
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
на свои токены.
1. В терминале выполните команду:
python bot.py
2. Там же вы должны увидеть:
Bot is running...
3. Теперь перейдите в Telegram, найдите своего бота (по имени пользователя) и начните общение! Он должен отвечать на основе выходных данных LLM.
Примечание: Популярные модели Hugging Face могут испытывать высокую нагрузку. Если модель сильно используется, ответ может занять больше времени или модель может быть временно недоступна. Пожалуйста, проявите терпение и попробуйте позже.
Если бот не отвечает, проверьте следующее:
• Убедитесь, что токен Telegram и API-ключ Hugging Face указаны правильно.
• Убедитесь, что модель Hugging Face доступна и работает (вы можете проверить документацию Hugging Face для получения более подробной информации).
• Убедитесь, что ваш бот добавлен в чат и вы взаимодействуете с ним.
Март 2025
Соцсети