手把手做一个公众号GPT智能客服(七)GPT 接入微信机器人

简介: 手把手做一个公众号GPT智能客服(七)GPT 接入微信机器人

第七课:GPT 接入微信机器人

OpenAI API 调动控制器代码

// /controller/openai.js
const { Configuration, OpenAIApi } = require("openai")
const apiKey = "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"
const configuration = new Configuration({
  apiKey
})
const openAIApi = new OpenAIApi(configuration)
/**
 * 保存用户发送到chatgpt的消息信息
 * prompts 数据结构:
 * {
 *   wxopenid: [
 *     { role: "user", content: Content }
 *   ]
 * }
 */
const prompts = {}
// 处理给chatgpt的数据保存记忆体
function savePrompt(fromusername, content) {
  if (prompts[fromusername]) {
    // 存在添加数据
    prompts[fromusername].push(
      { role: 'user', content }
    )
  } else {
    // 不存在就新建数据
    prompts[fromusername] = [
      { role: 'user', content }
    ]
  }
  return prompts[fromusername]
}
async function getAnswer(fromusername, prompt) {
  const messages = savePrompt(fromusername, prompt)
  const completion = await openAIApi.createChatCompletion({
    model: "gpt-3.5-turbo",
    messages: messages,
  })
  return completion.data.choices[0].message.content
}
module.exports = getAnswer

在消息发送中获取答案

// /controller/switcher.js
const { customerController } = require('./customer')
// +++++++++++++++++++
const getAnswer = require('./openai')
// +++++++++++++++++++
const { getModel, decreaseBalance, getBalance } = require('../model/users')
const { formatMsg } = require('../utils/format')
async function messageController(req, res, next) {
  // 接收到微信方发来的消息并处理
  const msg = formatMsg(req.body)
  // 暂存用户发送来的问题
  const content = msg['content']
  // 回复信息
  const {
    fromusername
  } = msg
  msg['createtime'] = Math.floor((new Date().getTime()) / 1000)
  // 生成问题答案逻辑
  const model = await getModel(fromusername)
  if (model && model === 'chatgpt') {
    const balance = await getBalance(fromusername)
    if (balance > 0) {
      msg['content'] = '答案正在准备中...'
      res.render('reply', msg)
      // 扣除账户金额 1
      await decreaseBalance(fromusername)
      // +++++++++++++++++++
      // 获取 chatgpt 的回答
      const answer = await getAnswer(fromusername, content)
      // +++++++++++++++++++
      // 发送客服消息
      await customerController(fromusername, answer)
    } else {
      msg['content'] = '您的账户余额不足,请充值~'
      res.render('reply', msg)
    }
  } else {
    // 转人工服务
  }
}
module.exports = messageController

语言模型的切换

1、添加设置 model的方法

// /model/users.js
//...
// 更改用户模式
async function changeModel(wxOpenId, model) {
  const result = await userModel.findOneAndUpdate({ wxOpenId }, { model})
  return result
}
//...
module.exports = {
  //...
  changeModel
}

2、语言模型切换

// /controller/swither.js
//...
const { getBalance, rechargeAccount, getUser, createAccount, changeModel } = require('../model/users')
async function switcherController(req, res) {
  //...
  switch (requestBody.msgtype) {
    case 'event':
      //...
      switch (requestBody.eventkey) {
        //...
        case 'model_chatgpt':
          await changeModel(fromusername, 'chatgpt')
          res.render('reply', {
            ...requestBody,
            content: '你的身份已经切换为 ChatGPT 模式,机器人为您提供答疑服务 ☕️'
          })
          break
        case 'model_human':
          await changeModel(fromusername, 'human')
          res.render('reply', {
            ...requestBody,
            content: '你的身份已经切换为人工服务模式,很高兴为你答疑解惑 ☕️'
          })
          break
        //...
      }
      //...
  }
}
//...

语音识别接入

  1. 开启语音识别能力

  2. 解析voice数据 和 文本相同处理

(1)添加 voice类型入口

//...
async function switcherController(req, res) {
  //...
  switch (requestBody.msgtype) {
    case 'voice':
    case 'text':
    //...
  }
}
//...

(2)处理语音信息

// /controller/message.js
//...
async function messageController(req, res, next) {
  //...
  // 暂存用户发送来的问题
  const content = msg['recognition'] ? msg['recognition'] : msg['content']
  //...
}
//...

– THE END –

目录
相关文章
|
机器人 异构计算
10分钟,用RAG搭建专业钉钉/飞书客服机器人
只需10分钟,快速搭建专属客服机器人,大幅提升工作效率!通过魔搭社区注册账号、绑定阿里云账号获取免费算力资源,并选择GPU模式运行教程脚本。按照食用指引操作,完成机器人部署并进行对话测试,前5位在评论区提交作业的用户将获赠魔搭社区时尚咖啡杯一个。立即点击教程脚本链接开始体验吧!
643 0
|
缓存 自然语言处理 算法
淘宝API智能客服机器人实现响应速度突破性提升
淘宝升级智能客服系统,通过算法优化与分布式架构重构,实现响应速度提升80%,日均处理咨询超2亿次。核心技术包括微服务架构、语义理解引擎与多轮对话优化,支撑92%机器人承接率,助力用户体验与运营效率双提升。
1341 0
|
人工智能 自然语言处理 监控
生成式AI客服实战:智能客服机器人5大自动化能力处理80%高频咨询,释放60%客服人力
生成式AI驱动的智能客服机器人通过五大核心能力自动化处理80%高频咨询,释放60%客服人力。以合力亿捷方案为例,融合大模型与业务知识图谱,实现服务精准化、决策智能化,推动企业服务成本下降超40%。
982 0
|
存储 自然语言处理 机器人
基于的Qwen模型的智能客服Discord机器人,使用🐫 CAMEL、SambaNova、Firecrawl和Qdrant实现RAG Agent
基于Qwen模型的智能客服Discord机器人,使用CAMEL、SambaNova、Firecrawl和Qdrant实现RAG Agent。构建了一个能够处理复杂问题并能进行快速响应的强大聊天机器人。该机器人可在Discord平台上运行,支持实时对话和语义搜索,提供准确、全面的回答。项目包含详细的安装步骤、代码示例及集成指南,适合开发者快速上手。
1311 36
|
机器学习/深度学习 人工智能 自然语言处理
2025年AI客服机器人推荐:核心能力与实际场景应用分析
据《2024年全球客户服务机器人行业研究报告》预测,2025年全球AI客服机器人市场规模将超500亿美元,年复合增长率达25%以上。文章分析了主流AI客服机器人,如合力亿捷等服务商的核心功能、适用场景及差异化优势,并提出选型标准,包括自然语言处理能力、机器学习能力、多模态交互能力等技术层面考量,以及行业适配性、集成能力、数据安全、可定制化程度和成本效益等企业维度评估。
940 12
|
机器学习/深度学习 人工智能 自然语言处理
盘点2024年最先进的智能客服机器人TOP10 #SaaS产品#
综合市场数据和用户口碑为大家盘点10大主流服务商
1069 4
|
自然语言处理 算法 机器人
2025年热门智能客服机器人评测:哪款更好用?
2025年,智能客服机器人市场竞争激烈,功能日益强大。主要品牌如合力亿捷、阿里云、华为云、京东京小智和小米商城等纷纷推出具备精准语音识别、语义理解、多渠道接入等功能的产品,广泛应用于电商、金融、零售等领域,显著提升客服效率与客户满意度,降低企业运营成本。
1466 0
|
人工智能 自然语言处理 搜索推荐
年度排名 | 2024年最受市场欢迎的智能客服机器人有哪些?
本文分析了2024年智能客服机器人的发展现状,并介绍了国内五大主流服务商——合力亿捷等,并重点阐述了它们的核心功能和服务优势,如多渠道对接、大模型应用、个性化服务、AI自动生成小结等,旨在帮助企业根据自身需求选择合适的智能客服解决方案。
1509 1
|
自然语言处理 搜索推荐 小程序
微信公众号接口:解锁公众号开发的无限可能
微信公众号接口是微信官方提供的API,支持开发者通过编程与公众号交互,实现自动回复、消息管理、用户管理和数据分析等功能。本文深入探讨接口的定义、类型、优势及应用场景,如智能客服、内容分发、电商闭环等,并介绍开发流程和工具,帮助运营者提升用户体验和效率。未来,随着微信生态的发展,公众号接口将带来更多机遇,如小程序融合、AI应用等。
|
消息中间件 人工智能 Java
抖音微信爆款小游戏大全:免费休闲/竞技/益智/PHP+Java全筏开源开发
本文基于2025年最新行业数据,深入解析抖音/微信爆款小游戏的开发逻辑,重点讲解PHP+Java双引擎架构实战,涵盖技术选型、架构设计、性能优化与开源生态,提供完整开源工具链,助力开发者从理论到落地打造高留存、高并发的小游戏产品。