实战篇 | 100 行代码实现AI聊天机器人

小麦2025年08月20日848 字

用 100 行代码实现一个 AI 聊天机器人

欢迎来到《通俗易懂 AI 应用开发》系列视频,我是小麦。

那么从这一期开始,我们就正式进入项目实战和理论解析章节。

我们的第一个项目是要在命令行界面中,实现这样一个可以连续对话的聊天机器人:

比如我输入 “你好,我是软件工程师小麦,你是谁?”,可以看到模型给出了一段回复,想和我一起探索新知识,并询问我现在想学什么?

那我说我熟悉前端技术栈,想学习 AI 应用开发,应该怎么开始?

随后它说可以从一个简单的项目开始,比如用 JS 做一个互动助手,然后它想进一步了解我的 AI 基础知识。

可以看到这是一个擅长教学的聊天机器人,可以一步一步引导我去学习探索。

那么要实现这样一个 AI 助手其实非常容易,下面来看看代码实现。

一开始程序使用 dotenv 库自动读取 .env 文件中的环境变量,并写入 process.env 对象中,这是一种避免在代码中硬编码敏感数据的常见做法。

在后续的实战项目中我们也都这样操作。

在准备好调用模型服务 API 所必须的 API_KEY、BASE_URL 和 MODEL 参数后,程序进入 while true 无限循环,每次循环即为一轮对话。

循环开始时读取用户输入,并保存到 messages 列表中,随后通过 invoke 调用完整传递给模型。

接着将本次模型回复也保存到列表中。

最后将模型输出打印到控制台。

在 readInput() 函数中,程序通过 Node.js 的内置 readline 模块从标准输入中异步等待用户输入。

在 invoke() 函数中,程序使用 fetch 向模型 API 服务发送 POST 请求,并传递 API_KEY、MODEL 和 messages 参数。

然后将响应做一次 JSON 解析,获取响应对象中的 content 字符串。

每条 message 都会包含 role 和 content 两个字段,其中 role 如果是 user 则代表用户输入,assistant 代表模型回复,而 system 则是系统提示词。

在这个项目中,系统提示词预先放置在了 messages 列表中,这段提示词来自前段时间 OpenAI 泄露的学习模式的提示词。

至此,我们的聊天机器人就完成了,而核心代码仅不到 10 行。

在这个小小的应用中,就已经涉及到 AI 应用开发的几个核心概念:模型、提示词和上下文。

理解这些概念对后续深入学习 AI 应用开发至关重要。

我将在解析篇视频中结合此项目,对以上概念做进一步探讨和扩展,记得关注更新。

另外,本期视频以及这个系列后续的所有演示代码都开源,你可以前往这个链接获取,尝试自己复现或是参与讨论交流。

我是小麦,我们下期再见。

本文为「捣鼓键盘的小麦」原创文章,转载请联系微信:Micoozlee

评论

你需要先登录才能发表评论
Made by 捣鼓键盘的小麦 / © 2025 Front Talk 版权所有