手把手教你制作一个电报Telegram AI机器人(AI Bot)/全程干货

作者头像
首页 🧮综合教程 正文

image.png

Telegram 又称为电报,小飞机 App,(下文简称 TG)是国外非常火的在线聊天工具。许多出海业务和产品社群都会以其为核心,裂变出大量的产品用户。
而 Telegram Bot 又是社群运营的关键。但是常规的 Bot 只能进行一些简单的进群验证,如果将 AI 对话能力引入至 Bot 回答用户问题,一定能够大幅增强社群的活跃度。
效果大概如下:

image.png

无需掌握代码知识,本文将手把手教你搭建出属于你自己的 Telegram AI Bot。步骤如下:

1. 在 AnakinAI 平台内创建 AI App

2. 申请 Telegram Bot Token

3. 在 Cloudflare Workers 内部署 Bot 程序

4. 开始对话

Telegram Bot 本身还提供了丰富的 API 能力,你甚至还可以在后端的 AI App 内接入知识库,直接让 Bot 来充当 AI 智能客服!

准备工作

  • Telegram 账号/客户端(本文默认你已经能够正常访问,不会涉及任何注册指导)

  • Cloudflare 账号

  • 在 Anakin.ai 内创建 AI App

1. 申请 Telegram Bot

在 Telegram 内搜索 @BotFather ,然后点击 "Start" 按钮,然后输入 /newbot 命令,按照提示输入 Bot 的名字和 username。

image.png

获取 HTTP API Token,这是与 Telegram Bot 交互的唯一凭证,请妥善保管。

image.png

2. 申请 AnakinAI 应用 API Access Key

本文将会以 Anakin.ai 作为 AI 应用的创建平台作为示例。

Anakin.ai 是一站式 AI 应用平台,上面已经预置了大量好用的 AI App。你可以随意挑选并克隆至自己的工作空间内,或者非常轻易地搭建出属于自己的 AI App。支持中文!!

注册 Anakin.ai 后,点击左下角的头像,在 "API Access Token" tab 页中生成你自己的 API Access Key,这是 TG Bot 与 AI App 通讯的唯一凭证,请妥善保管。

image.png

克隆或自建 AI 应用,然后在应用的“应用集成” tab 页找到 App ID。

image.png

注意

  • API Key 仅展示一次,请妥善保存。

  • 不要在 URL 内明文传输 Key,避免泄露而造成预期之外的 Credits 消耗

3. 将 AI App 集成至 TG Bot

原理说明

用户在与 Telegram Bot 对话时,Bot 将会将用户输入的对话信息通过 API 发送至 Anakin App,Anakin App 再根据用户输入的文本生成回复内容,并将回复内容通过 API 返回至 Telegram Bot,最终由 Telegram Bot 再将回复内容发送至用户。

3.1 部署 Telegram 请求程序

在 VPS 或 Serverless 服务上部署一个 Telegram 请求后端程序,用于接收并处理用户发送给 Telegram Bot 的消息,并将请求信息发送至 Anakin API 进行处理,最后再传递回用户。

本章节将以 Cloudflare Workers 为例,部署一个 Telegram 请求程序。

Workers 免费注册地址:

https://dash.cloudflare.com/workers-and-pages

点击 "Workers & Pages" tab 页中的 Overview,然后轻点 "创建应用程序" 按钮。

image.png

点击 "创建 Worker" 按钮,重命名 Worker 名称。在代码框内复制粘贴以下代码,并将以下参数替换为自己的 ID。

YOUR_TELEGRAM_BOT_TOKEN

YOUR_BOT_USERNAME、YOUR_ANAKINAI_API_KEY

ChatbotId 替换为上文中的 App ID

const telegramAuthToken = 'YOUR_TELEGRAM_BOT_TOKEN';
const webhookEndpoint = "/endpoint";
const botUsername = "@YOUR_BOT_USERNAME"; // 替换为您的机器人用户名

addEventListener("fetch", event => {
  event.respondWith(handleIncomingRequest(event));
});

async function handleIncomingRequest(event) {
  let url = new URL(event.request.url);
  let path = url.pathname;
  let method = event.request.method;
  let workerUrl = `${url.protocol}//${url.host}`;

  // 在启动时设置 Webhook
  if (method === "GET" && path === "/") {
    const webhookUrl = `https://api.telegram.org/bot${telegramAuthToken}/setWebhook?url=${workerUrl}${webhookEndpoint}`;
    const response = await fetch(webhookUrl);
    if (response.ok) {
      return new Response("Webhook set successfully", { status: 200 });
    } else {
      return new Response("Failed to set webhook", { status: response.status });
    }
  }

  if (method === "POST" && path === webhookEndpoint) {
    const update = await event.request.json();
    event.waitUntil(processUpdate(update));
    return new Response("Ok");
  } else if (method === "GET" && path === "/configure-webhook") {
    const url = `https://api.telegram.org/bot${telegramAuthToken}/setWebhook?url=${workerUrl}${webhookEndpoint}`;
    const response = await fetch(url);
    if (response.ok) {
      return new Response("Webhook set successfully", { status: 200 });
    } else {
      return new Response("Failed to set webhook", { status: response.status });
    }
  } else {
    return new Response("Not found", { status: 404 });
  }
}

async function processUpdate(update) {
  let chatId, userText, responseText;

  if ("message" in update) {
    const message = update.message;
    chatId = message.chat.id;
    userText = message.text;

    // 检查是否为群组消息并且提及了机器人
    if (message.chat.type === "group" || message.chat.type === "supergroup") {
      if (userText.includes(botUsername)) {
        userText = userText.replace(botUsername, "").trim();
      } else {
        // 如果没有提及机器人,则不响应
        return;
      }
    }

    const apiKey = 'YOUR_ANAKINAI_API_KEY'; // 替换为您的 API 密钥
    const chatbotId = 'ChatbotId'; // 替换为您的 Chatbot ID

    const myHeaders = new Headers();
    myHeaders.append("X-Anakin-Api-Version", "2024-05-06");
    myHeaders.append("User-Agent", "Apidog/1.0.0 (https://apidog.com)");
    myHeaders.append("Content-Type", "application/json");
    myHeaders.append("Authorization", `Bearer ${apiKey}`);

    const raw = JSON.stringify({ "content": userText, "stream": false });
    const requestOptions = {
      method: 'POST',
      headers: myHeaders,
      body: raw,
      redirect: 'follow'
    };

    const response = await fetch(`https://api.anakin.ai/v1/chatbots/${chatbotId}/messages`, requestOptions);
    const result = await response.json();

    console.log('API response:', result); // 打印出完整的 API 响应数据

    // 从响应数据中取出 content 字段的值
    const responseText = result.content || "Sorry, I couldn't get a response.";

    const url = `https://api.telegram.org/bot${telegramAuthToken}/sendMessage?chat_id=${chatId}&text=${encodeURIComponent(responseText)}`;
    await fetch(url);
  } else {
    // 处理其他类型的更新
    return;
  }
}

然后点击右上角 "部署" 按钮。

image.png

3.2 测试 Telegram Bot

在 Telegram 内搜索你的 Bot 名字。点击进入并开始聊天。你也可以在 @BotFather 内输入 /mybots 命令来查看你的 Bot 名称。

image.png

向 Bot 发送消息,你可以看到由 AI 生成的回复内容。

image.png

4. 将 Bot 添加至群组

在添加 Bot 至群组之前,你需要确保已设置相应的隐私策略。前往 @BotFather,输入 /mybots 命令,开启 Allow Groups 并关闭 Group Privacy 设置。

image.png

群组内的用户可以直接 @bot 并进行对话聊天

image.png

注意

多人群聊可能会加速 Bot 的 Credits 消耗,请及时关注你的 Credits 余额。访问 Anakin.ai,点击右下角的 Credits 余额,然后在 "升级/续费" → “额度明细” 内查看你的 Credits 使用记录。

总结

除了本文介绍的 AI Bot 与 TG 的集成以外,你还可以在 AnakinAI 直接体验到由 OpenAI 出品的 GPT-4 模型和谷歌推出的 Gemini Pro 等一系列专业的大模型。
无论是谁最新推出了 AI 大模型,你都可以在最快的时间内在 Anakin 平台内进行体验。
本站资源仅供学习交流使用请勿商业运营,严禁使用模板&源码从事违法,侵权等非法活动!如链接失效内容有误,请到评论反馈。

免费声明

  1. 本网站的文章内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长QQ:304906607进行删除处理。
  2. 文章采用: 《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)。
  3. 本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
  4. 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
  5. 本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
  6. 本站永久网址:https://www.aybk.cn
巴西pg电子海外游戏源码uniapp全开源前端/海外游戏交易平台
« 上一篇 05-31
PanTransfer 网盘转存工具v1.0.7/百度网盘转存到迅雷网盘工具
下一篇 » 05-30

发表评论

请先登录后才能发表评论

没有更多评论了

个人信息

HI好朋友 ! 请登录
开通会员,享受下载全站资源特权。
百度一下

随便看看

大家都在看

2025年 乙巳年 蛇年
13 : 36 : 00
公历日期
9月26日
农历日期
八月初五
星期
星期五
下午好
金秋时节,愿您收获满满
距离国庆节还有5天
登陆
还没有账号?立即注册
点击按钮进行验证
忘记密码?
登陆
忘记密码
已经有账号?马上登陆
获取验证码
重新获取(60s)
点击按钮进行验证
重置密码
注册
已经有账号?马上登陆
获取验证码
重新获取(60s)
点击按钮进行验证
立即注册