用Python从0搭建一个能聊天的TelegramBot,接入国产DeepSeek-V4-Pro大模型

admin 2026-05-03 05:08:12 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 该文档详细介绍了如何使用Python从零搭建Telegram聊天机器人并集成DeepSeek-V4-Pro大模型。核心步骤包括通过BotFather创建机器人获取Token、使用python-telegram-bot库实现消息处理、采用长轮询机制接收消息,并重点演示了通过/deepseek命令触发AI对话的完整代码实现。文档提供了可立即运行的代码示例和操作指引,适合初学者快速上手。 综合评分: 78 文章分类: 安全开发,AI安全,解决方案,技术标准,移动安全


cover_image

用 Python 从 0 搭建一个能聊天的 Telegram Bot,接入国产DeepSeek-V4-Pro大模型

原创

W不懂安全 W不懂安全

W不懂安全

2026年5月2日 12:46 河北

在小说阅读器读本章

去阅读

很多人第一次接触 Tg Bot,都会卡在两个问题:从哪里开始,以及怎么把“能用”变成“好用”。这篇内容不绕弯,从官方 Bot API 出发,用最简单的一套 Python 方案,在本地跑通一个可交互的聊天机器人。没有复杂部署,没有多余框架,先把核心链路打通,再谈扩展。

一、整体思路(先搞清楚架构)

你要做的其实就三步:

  1. 用 Tg 里的 BotFather 创建机器人 → 拿到 Token
  2. 用 Python 写程序 → 调用 Tg Bot API
  3. 本地运行 → 用“长轮询(long polling)”接收消息

👉 不需要服务器,不需要公网 IP,适合你现在的需求

如果你想在服务器部署,那就需要另一个方案,需要准备的是:

  • 一台1核 1G运行内存配置的服务器
  • 一个域名,WebHook强制要求HTTPS,不能使用http

二、创建Bot(用 BotFather)

步骤:

  1. 打开 Tg
  2. 搜索:@BotFather,一定要选择带有蓝色√的,这是官方标志。

3.输入:

/start/newbot

然后按提示走:

  • 起名字(随便)

  • 用户名(必须以_bot结尾),这个用户名是机器人的用户名,后期搜索查找机器人就用这个,相当于唯一标识ID。

创建成功后你会得到一个:

HTTP API Token:123456789:ABCxxxxx

⚠️ 这个 Token 很重要,相当于密码,别泄露

三、使用Python方案

虽然可以直接用 requests 调 HTTP,但更推荐用官方生态库:

python-telegram-bot

优点:

  • 基本贴合官方 API
  • 文档成熟
  • 支持异步(性能好)
  • 很多人用

四、环境准备

在本地Python环境中需要安装此依赖:

pip install python-telegram-bot --upgrade

五、简单可运行Bot(核心代码)

直接复制粘贴以下代码就能跑:

from telegram import Updatefrom telegram.ext import ApplicationBuilder, MessageHandler, filters, ContextTypesTOKEN = "你的Bot Token"# 收到消息时触发async def handle_message(update: Update, context: ContextTypes.DEFAULT_TYPE):        user_text = update.message.text        # 简单回复       reply = f"你说的是:{user_text}"       await update.message.reply_text(reply)# 主函数def main():        app = ApplicationBuilder().token(TOKEN).build()        # 监听所有文本消息    app.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, handle_message))    print("Bot 已启动...")        app.run_polling()if __name__ == "__main__":     main()

执行下方命令运行,如果是在pycharm编辑器里编码的,直接运行即可。

python bot.py

看到:Bot 已启动…    证明代码没问题。

接下来打开tg,在搜索栏里搜索你机器人的ID。

然后给它发送消息,它能返回你发送的消息,则证明没有问题,最基本的通道打通了。

六、加入基础命令功能和逻辑

比如 /start 与 /help 指令

from telegram.ext import CommandHandler
# ===== 命令:/start =====async def start(update: Update, context: ContextTypes.DEFAULT_TYPE):        await update.message.reply_text("你好,我是你的机器人 👋")# ===== 命令:/help =====async def help_command(update: Update, context: ContextTypes.DEFAULT_TYPE):        await update.message.reply_text("你可以随便跟我聊天,或者试试输入:你好 / 你是谁")
app.add_handler(CommandHandler("start",start))app.add_handler(CommandHandler("help",help_command))

在Bot机器人里再次输入/start 和 /help,你就能看到你设置的指令信息。

如果你想加点逻辑,比如关键词回复:

async def handle_message(update: Update, context: ContextTypes.DEFAULT_TYPE):        text = update.message.text.lower()        # 👉 关键词逻辑        if "你好" in text:                reply = "你好呀,很高兴见到你~"        elif "你是谁" in text:                reply = "我是你亲手创建的 Telegram Bot 🤖"        elif "天气" in text:                reply = "这个功能还没接入天气API 😄"        else:                reply = f"我收到了:{text}"            await update.message.reply_text(reply)

然后向机器人发送消息:

七、接入 DeepSeek 模型

需求效果是:只在用户输入 /deepseek 时才调用 DeepSeek,其它时候不走 AI

完整效果代码:

from telegram import Updatefrom telegram.ext import (     ApplicationBuilder,        MessageHandler,        CommandHandler,        filters,        ContextTypes,)from openai import OpenAIimport asyncio# ===== Token =====TELEGRAM_TOKEN = "你的Bot Token"DEEPSEEK_API_KEY = "你的DeepSeek API Key"# ===== DeepSeek 客户端 =====client = OpenAI(        api_key=DEEPSEEK_API_KEY,        base_url="https://api.deepseek.com")# ===== /start =====async def start(update: Update, context: ContextTypes.DEFAULT_TYPE):        await update.message.reply_text(                "你好 👋\n输入 /deepseek + 内容,即可使用 AI 聊天"        )# ===== DeepSeek 调用 =====def chat_with_deepseek(user_text):        response = client.chat.completions.create(                model="deepseek-chat",                messages=[                        {"role": "system", "content": "你是一个简洁、友好的助手"},                        {"role": "user", "content": user_text},                ],                temperature=0.7,        )        return response.choices[0].message.content# ===== /deepseek 指令 =====async def deepseek_command(update: Update, context: ContextTypes.DEFAULT_TYPE):        # 获取命令后面的内容        args = context.args        if not args:                await update.message.reply_text("用法:/deepseek 你想问的问题")                return        user_text = " ".join(args)        msg = await update.message.reply_text("思考中...")        loop = asyncio.get_event_loop()        reply = await loop.run_in_executor(None, chat_with_deepseek, user_text)        await msg.edit_text(reply)# ===== 普通消息(可做关键词逻辑)=====async def handle_message(update: Update, context: ContextTypes.DEFAULT_TYPE):        text = update.message.text.lower()            if "你好" in text:                reply = "你好呀~(AI功能请用 /deepseek)"        else:                reply = "我目前只在 /deepseek 模式下提供智能回复 🤖"        await update.message.reply_text(reply)# ===== 主程序 =====def main():        app = ApplicationBuilder().token(TELEGRAM_TOKEN).build()        # 命令        app.add_handler(CommandHandler("start", start))        app.add_handler(CommandHandler("deepseek", deepseek_command))        # 普通消息        app.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, handle_message))        print("Bot 已启动(/deepseek 模式)...")        app.run_polling()if __name__ == "__main__":        main()

如果你后边不想用这个机器人了,该怎么停止或删除?

直接在 BotFather里输入: /mybot ,然后选择你的 Bot,选择Delete Bot。

又或者发送 /deletebot,选择你的Bot机器人,即可删除。

删除之后,你的机器人就会编程这个样子:

到这里,一个从 0 到可用的 Tg Bot,就已经完整跑通了。

你可以选择停在这里,把它当作一个练手项目;也可以在这个基础上继续扩展,让它变得更聪明、更有个性。

剩下的,无非就是不断往里面加能力而已。

还有更多好玩有趣的功能可以去探索,如果不会,可以上网找找相关教程,或者让AI帮你写代码,你只需要给它发需求即可。整体来说并不复杂。

本期内容到此结束。


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:W不懂安全 W不懂安全 W不懂安全《用 Python 从 0 搭建一个能聊天的 Telegram Bot,接入国产DeepSeek-V4-Pro大模型》

评论:0   参与:  0