用JavaScript创建聊天机器人:初学者分步指南

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

不仅仅是"你好,世界":你的第一个实时JavaScript聊天机器人

\n\n

聊天机器人已不再是极客的玩具。如今它是一种工作工具:从技术支持到披萨销售。如果你认为创建机器人需要掌握C++或Python,——我很高兴地告诉你。 用JavaScript创建聊天机器人是真实、快速且极其有趣的。

\n\n

在本文中,我们不会讨论枯燥的理论。我们将动手构建一个完整的telegram bot javascript,它能回答问题、记住用户甚至开玩笑。然后我会展示如何轻松地将其转变为网站聊天机器人。

\n\n

准备好了吗?那就打开你最喜欢的编辑器,安装Node.js,我们开始吧!

\n\n

我们需要什么?

\n\n
    \n
  • Node.js(16+版本)——运行环境。可以从官方网站下载。
  • \n
  • 任意代码编辑器——VS Code、WebStorm甚至记事本(但我不推荐)。
  • \n
  • 耐心和一杯咖啡——剩下的交给JavaScript。
  • \n
\n\n

作为测试平台,我们选择Telegram——它有简单的API和大量文档。之后你可以将代码适配到Discord、Slack或你自己的网站。

\n\n

步骤1. 注册机器人并获取令牌

\n\n

在编写代码之前,我们需要"创建"一个机器人。这通过Telegram的主机器人——@BotFather完成。

\n\n
    \n
  1. 打开Telegram并找到BotFather。
  2. \n
  3. 发送命令/newbot。
  4. \n
  5. 想一个名字(例如MyFirstJBot)和一个用户名(必须以bot结尾,例如my_first_js_bot)。
  6. \n
  7. 获取令牌——一串类似123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11的长字符串。这是你机器人的密码。
  8. \n
\n\n

将令牌保存在安全的地方。如果丢失了——你将不得不创建一个新机器人。

\n\n

步骤2. 项目设置和安装依赖

\n\n

创建一个项目文件夹并初始化npm:

\n\n
mkdir my-telegram-bot\ncd my-telegram-bot\nnpm init -y
\n\n

现在安装node-telegram-bot-api库——这是创建node.js聊天机器人最流行的包:

\n\n
npm install node-telegram-bot-api
\n\n

完成。现在创建文件bot.js并在编辑器中打开它。

\n\n

步骤3. 编写机器人的"骨架"

\n\n

我们从最简单的开始——机器人将响应/start命令并重复用户发送的任何消息。

\n\n
const TelegramBot = require('node-telegram-bot-api');\n\nconst token = '在此处输入你的令牌';\nconst bot = new TelegramBot(token, { polling: true });\n\nbot.onText(/\\/start/, (msg) => {\n  const chatId = msg.chat.id;\n  bot.sendMessage(chatId, `你好,${msg.from.first_name}!我是你的第一个JavaScript聊天机器人。有什么可以帮你的吗?`);\n});\n\nbot.on('message', (msg) => {\n  const chatId = msg.chat.id;\n  const text = msg.text;\n\n  // 忽略命令,避免重复回复\n  if (text.startsWith('/')) return;\n\n  bot.sendMessage(chatId, `你写了:"${text}"。而我是回声机器人!`);\n});\n
\n\n

运行:

\n\n
node bot.js
\n\n

在Telegram中给机器人发消息——它会回复。恭喜!你刚刚创建了一个JavaScript聊天机器人。是的,目前它还很笨,但这只是开始。

\n\n

步骤4. 添加逻辑:简单的FAQ机器人

\n\n

回声机器人很快就会让人厌烦。让我们让机器人能够回答具体问题。这已经像一个真正的网站聊天机器人了。

\n\n

创建一个简单的知识库,以对象形式:

\n\n
const faq = {\n  '你好吗': '很好!你呢?',\n  '你会做什么': '我可以回答简单问题并讲笑话。',\n  '讲个笑话': '走着                

博客

书籍推荐