都2026了,你说你还没写过AI项目?手把手教你从0到1搭建AI聊天机器人

都2026了,你说你还没写过AI项目?手把手教你从0到1搭建AI聊天机器人本文将带你从零开始 搭建一个基于豆包大模型的智能聊天机器人 并接入钉钉实现智能对话 历史记录管理 百度搜索等完整功能 2026 年 AI 已经像空气一样渗透到我们工作和生活的每个角落 从 ChatGPT 到 OpenClaw 大模型技术正在颠覆我们的生活方式 作为一名开发者 如果还没有亲手写过 AI 项目 那真的 out 了 今天 我将带你从零开始 手把手搭建一个基于豆包 Seed 大模型的智能聊天机器人

大家好,我是讯享网,很高兴认识大家。这里提供最前沿的Ai技术和互联网信息。



本文将带你从零开始,搭建一个基于豆包大模型的智能聊天机器人,并接入钉钉实现智能对话、历史记录管理、百度搜索等完整功能。


2026年,AI已经像空气一样渗透到我们工作和生活的每个角落。从ChatGPT到OpenClaw,大模型技术正在颠覆我们的生活方式。作为一名开发者,如果还没有亲手写过AI项目,那真的out了!

今天,我将带你从零开始,手把手搭建一个基于豆包Seed大模型的智能聊天机器人,并接入钉钉实现以下完整功能:

  • 智能对话:基于豆包Seed大模型的自然语言理解与生成
  • 钉钉集成:支持钉钉机器人私聊和群聊场景,开箱即用
  • 历史记忆:自动保存24小时内的聊天记录,实现上下文连贯对话
  • 工具调用:集成百度搜索,AI能自主获取实时信息
  • 权限管理:私聊仅回复管理员,群聊支持白名单控制
  • 数据持久化:MySQL存储聊天记录,方便后续分析和调优

项目源码:github.com/pbstar/chat…

技术栈概览

模块 技术选型 说明 Web框架 Express 轻量灵活的Node.js框架 AI模型 豆包Seed 字节跳动火山方舟大模型 数据库 MySQL + MySQL2 数据持久化存储 消息平台 DingTalk Stream 钉钉机器人Stream模式 开发语言 TypeScript 类型安全,开发体验好 构建工具 tsx + tsc-alias 快速开发和构建

在开始之前,请确保开发环境和以下平台凭证均已就绪:

本地环境

  • Node.js >= 20.0.0(推荐使用最新的LTS版本)
  • MySQL数据库(5.7或8.0版本均可)

钉钉机器人(钉钉开放平台)

前往开放平台创建企业内部机器人应用,消息接收模式选择 Stream模式(无需公网IP),发布后获取以下凭证:

  • Client ID / Client Secret:在"凭证与基础信息"中获取
  • Robot Code:在"机器人"标签页中获取
  • 管理员 UserId:在管理后台"通讯录"中找到自己账号,地址栏 URL 中可以看到

豆包大模型(火山引擎控制台)

进入 火山方舟 → 模型广场,开通 模型服务,然后在 API Key 管理 中创建并保存 SEED_API_KEY。查看文档

百度搜索API(百度智能云)

开通千帆大模型平台,在"应用接入"中创建应用获取 BAIDU_API_KEY,同时开通 AI搜索 服务。查看文档

💡 所有云服务均有免费额度,按本文步骤操作基本不会产生费用。

让我们从创建项目目录开始:

 
    

安装核心依赖:

 
    

初始化TypeScript配置:

 
    

创建项目目录结构:

 
    

一个清晰的项目结构能让代码更易维护。下面是完整的项目结构:

 
     

创建 文件,将所有敏感信息和配置项集中管理:

 
     

⚠️ 注意:文件包含敏感信息,切勿提交到代码仓库!务必在中添加。

5.3.1 应用入口 (src/index.ts)

 
     

5.3.2 钉钉消息监听 (src/services/dingtalk/index.ts)

这是整个项目的核心,负责接收和处理钉钉消息:

 
     

关键设计

  • 立即确认:收到消息后立即响应,防止钉钉重复推送
  • 分层处理:权限控制 → 记录 → AI处理 → 发送,职责清晰
  • 异常处理:完善的try-catch,确保系统稳定性
  • 限流保护:添加延迟避免触发钉钉限流

5.3.3 AI对话核心逻辑 (src/services/doubao/index.ts)

这是与豆包大模型交互的核心,实现了结构化输出和工具调用:

 
     

技术要点

  • 结构化输出:通过JSON Schema强制AI返回规范格式,避免解析错误
  • 工具调用循环:支持多轮工具调用(工具可以调用工具)
  • 错误处理:完善的异常捕获,单个工具失败不影响整体流程
  • 性能监控:记录调用耗时,便于优化

5.3.4 闲聊Agent (src/services/doubao/agents/chat.ts)

这个文件将历史记录、提示词和工具整合起来,形成完整的对话Agent:

 
     

5.3.5 角色提示词 (src/services/doubao/prompts/chat.ts)

提示词的质量直接影响AI的表现,这里是一个精心设计的prompt:

 
     

提示词设计技巧

  • 明确角色:给AI一个清晰的定位
  • 示例驱动:用✅❌指明什么能做、什么不能做
  • 格式强制:用JSON Schema约束输出,便于程序解析
  • 场景细化:详细说明什么时候该用工具

5.3.6 百度搜索API (src/api/baiduApi.ts)

 
     

5.3.7 聊天记录缓存 (src/stores/record.ts)

使用内存缓存提高查询效率:

 
     

5.3.8 数据库操作 (src/db/record.ts)

 
     

数据库设计要点

  • 索引优化:对常用查询字段加索引
  • 字段注释:每个字段都有清晰注释
  • 时间索引:按创建时间过滤,提高查询效率
  • 双写策略:同时写入数据库和缓存,保证数据一致性

在 中添加以下脚本:

 
      

创建数据库初始化脚本 :

 
      

运行初始化:

 
      
 
      

看到以下日志说明启动成功:

 
      
 
      

测试场景1:基础对话

  1. 在钉钉群聊中添加机器人
  2. @机器人发送:"你好,小红帽"
  3. 期待回复:"你好呀,我是小红帽,很高兴认识你!"

测试场景2:上下文记忆

  1. 发送:"我叫张三"
  2. 发送:"我叫什么名字?"
  3. 期待回复:"你刚才说过,你叫张三呀!"

测试场景3:百度搜索

  1. 发送:"最近有什么热点新闻?"
  2. 观察控制台日志,应该看到工具调用
  3. 回复应该包含搜索到的实时信息

测试场景4:权限控制

  1. 使用非管理员账号私聊机器人
  2. 期待回复:"抱歉,我只回复管理员的私信哦~"

项目还提供了HTTP接口,方便其他系统调用发送钉钉消息:

接口地址

请求头

参数 必填 说明 x-system-id 是 系统标识(用于日志追踪) x-system-token 是 系统令牌(身份验证) x-open-key 是 开放接口密钥(与.env中的OPEN_KEY一致)

请求体

 
       

实现代码 (src/routes/open.ts):

 
       

在 中添加定时任务:

 
       

在应用入口中启动定时任务:

 
       

可能原因

  1. Client ID/Secret配置错误
  2. 机器人未发布或发布未生效
  3. 群聊中未正确添加机器人

解决方案

  • 检查 中的配置是否正确
  • 在钉钉开放平台重新发布机器人
  • 确认机器人已在群聊中(被@才会触发)

可能原因

  1. 提示词中工具描述不够清晰
  2. 用户提问不属于工具使用场景
  3. API Key权限不足

解决方案

  • 优化提示词,明确工具使用场景
  • 测试时使用明确的搜索类问题,如"搜索一下最近的科技新闻"
  • 检查百度API额度是否充足

可能原因

  1. MySQL服务未启动
  2. 连接信息配置错误
  3. 数据库用户权限不足

解决方案

 
        

通过本文的学习,你已经从零开始搭建了一个完整的AI聊天机器人,掌握了以下核心技能:

  1. 钉钉机器人开发:Stream模式的配置与消息处理
  2. 大模型API调用:火山方舟豆包模型的结构化输出和工具调用
  3. 工具增强AI:集成百度搜索,让AI具备获取实时信息的能力
  4. 上下文管理:MySQL持久化 + 内存缓存的双层架构
  5. 权限控制:基于用户ID的私聊过滤和群聊白名单
  • 🔮 多Agent架构:引入意图识别,不同场景使用不同Agent
  • 🔮 多模态支持:扩展图片识别、语音对话能力
  • 🔮 记忆永久化:对一个月之前的聊天记录进行整理总结形成永久记忆
  • 🔮 Web管理后台:可视化配置机器人、查看对话日志、数据统计

AI技术发展日新月异,但万变不离其宗。通过这个项目,你不仅学会了搭建一个实用的AI聊天机器人,更重要的是掌握了:

  • 如何封装和调用大模型API
  • 如何让AI具备工具使用能力
  • 如何设计健壮的消息处理系统
  • 如何组织可维护的TypeScript项目

这些技能可以迁移到任何AI项目的开发中。

记住:最好的学习方式是动手实践。现在就去克隆代码,运行起来,然后根据自己的需求进行改造吧!


  • 项目源码:github.com/pbstar/chat…
  • 钉钉开放平台:open.dingtalk.com/
  • 火山方舟文档:www.volcengine.com/docs/82379/…
  • 百度千帆搜索API:cloud.baidu.com/doc/qianfan…
  • TypeScript官方文档:www.typescriptlang.org/

如果这篇文章对你有帮助,欢迎点赞、收藏、评论三连!有任何问题可以在评论区留言,我会及时回复。

小讯
上一篇 2026-03-30 12:49
下一篇 2026-03-30 12:47

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/230548.html