AI Telegram咨询配置:从零搭建自动应答机器人
想把AI模型接入Telegram,让机器人自动回答用户咨询,但不知道从哪下手?
这篇教程会从零开始,带你完成AI Telegram咨询配置的全过程。
你只需要一台能运行Python的服务器、一个Telegram账号和AI服务的API密钥,跟着步骤操作即可。
开始前需要准备什么
在动手配置之前,先确认下面几项条件是否具备:
- 一台可访问外网的服务器:推荐Ubuntu 20.04或以上版本,内存至少1GB。本地电脑也可以,但服务器能保证机器人持续在线。
- Python 3.8+环境:用于运行机器人程序。用
python3 --version检查版本。 - Telegram账号:用于创建机器人并获取Token。
- AI服务API密钥:例如OpenAI、DeepSeek等提供的API Key,具体以你选用的服务商文档为准。
- 一个域名(可选):如果使用Webhook方式,Telegram要求HTTPS地址,需要域名和SSL证书。也可以用轮询方式避开域名要求。
创建机器人并拿到Token
- 在Telegram中搜索
@BotFather,点击开始对话。 - 发送
/newbot,按提示输入机器人名称和用户名(用户名必须以bot结尾)。 - 创建成功后,BotFather会返回一串Token,格式类似
123456789:ABCdefGhIJKlmNoPQRsTUVwxyZ。这个Token是机器人的密码,不要泄露。 - 发送
/setprivacy,选择你的机器人,设置为Disable,这样机器人才能读取群组中的消息(如果只在私聊中使用,可以跳过)。
Token拿到后,先保存到安全的地方,下一步会用到。
编写AI应答程序
这里用Python的 python-telegram-bot 库和 openai 库演示。
先安装依赖:
pip install python-telegram-bot openai
创建一个 bot.py 文件,填入以下代码(注意替换Token和API Key):
import openai
from telegram import Update
from telegram.ext import ApplicationBuilder, ContextTypes, MessageHandler, filters
# 配置你的Token和API Key
TELEGRAM_TOKEN = '你的机器人Token'
openai.api_key = '你的AI服务API Key'
openai.api_base = 'https://api.openai.com/v1' # 如果使用其他服务商,替换为对应地址
async def handle_message(update: Update, context: ContextTypes.DEFAULT_TYPE):
user_text = update.message.text
try:
response = openai.ChatCompletion.create(
model='gpt-3.5-turbo', # 按你的服务商支持模型调整
messages=[{'role': 'user', 'content': user_text}]
)
reply = response.choices[0].message.content
except Exception as e:
reply = f'AI服务暂时不可用:{e}'
await update.message.reply_text(reply)
if __name__ == '__main__':
app = ApplicationBuilder().token(TELEGRAM_TOKEN).build()
app.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, handle_message))
app.run_polling()
这段代码使用轮询方式获取消息,不需要公网IP和域名,适合新手测试。
运行 python3 bot.py,然后在Telegram中向你的机器人发送消息,应该能收到AI回复。
切换到Webhook模式(可选)
轮询方式简单,但长期运行建议用Webhook,更稳定且节省资源。
前提是你有HTTPS域名。
修改代码,用 ApplicationBuilder 的 webhook_url 参数:
app = ApplicationBuilder().token(TELEGRAM_TOKEN).webhook_url('https://你的域名/webhook').build()
同时需要启动一个HTTP服务监听端口(例如5000),并在Nginx中配置反向代理和SSL证书。
宝塔面板操作路径:网站 → 添加站点 → 设置SSL → 申请Let's Encrypt证书 → 配置反向代理到 http://127.0.0.1:5000。
避坑指南
- Token泄露:不要把Token提交到公开仓库。如果泄露,立即在BotFather中使用
/revoke重置。 - 网络超时:服务器访问Telegram API或AI服务API可能超时,检查防火墙和DNS,必要时配置代理。
- Webhook证书错误:Telegram要求有效SSL证书,自签名证书不行。用Let's Encrypt免费证书即可。
- AI回复慢:可以设置超时时间,或在代码中加入异步处理,避免阻塞。
- 隐私模式:如果机器人需要在群组中读取所有消息,记得在BotFather中关闭隐私模式。
验证配置是否生效
完成配置后,按以下步骤检查:
- 向机器人发送“你好”,查看是否在几秒内回复。
- 查看程序日志,确认没有报错信息。轮询模式下终端会打印收到的消息。
- 如果使用Webhook,访问
https://api.telegram.org/bot<你的Token>/getWebhookInfo,确认url字段正确且last_error_message为空。 - 在群组中@机器人提问,测试是否能正常响应。
如果机器人无响应,先检查Token是否正确、服务器网络是否通畅、AI服务API Key是否有效。
逐步排查,通常能快速定位问题。
常见疑问
机器人需要一直运行吗? 是的,机器人程序必须持续运行才能接收消息。
可以用 systemd 或 screen 让程序在后台运行。
可以用其他AI服务吗? 可以,只要服务商提供兼容OpenAI的API接口,修改 api_base 和模型名称即可。
免费额度够用吗? 不同服务商政策不同,建议查看官方文档,根据咨询量评估成本。
如何限制机器人只回答特定问题? 可以在代码中加入关键词过滤,或让AI根据预设提示词回答。
至此,AI Telegram咨询配置的核心步骤已经完成。
你可以根据实际需求调整AI模型、回复逻辑和部署方式。
遇到问题时,优先回看避坑部分和验证步骤,大部分配置错误都能在那里找到线索。