手把手做一个公众号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 –

目录
相关文章
|
2月前
|
存储 人工智能 自然语言处理
轻松改造公众号:10分钟实现智能客服自动化!
在阿里云平台上,仅需10分钟即可将微信公众号(订阅号)升级为AI智能客服,提供7x24小时客户支持,显著提升用户体验。方案包括四步:创建大模型问答应用、搭建微信公众号连接流、引入AI智能客服以及增加私有知识库,确保客服能精准回答复杂咨询,助力业务竞争力提升。整个过程简单快捷,在免费试用额度内费用为零。
78 7
轻松改造公众号:10分钟实现智能客服自动化!
|
2月前
|
人工智能 数据可视化 API
10 分钟构建 AI 客服并应用到网站、钉钉或微信中测试评
10 分钟构建 AI 客服并应用到网站、钉钉或微信中测试评
102 2
|
3月前
|
人工智能
10 分钟构建 AI 客服并应用到网站、钉钉或微信中简说
10 分钟构建 AI 客服并应用到网站、钉钉或微信
|
2月前
|
人工智能 运维 负载均衡
10 分钟构建 AI 客服并应用到网站、钉钉或微信中
《10分钟构建AI客服并应用到网站、钉钉或微信中》的解决方案通过详尽的文档和示例代码,使具有一定编程基础的用户能够快速上手,顺利完成AI客服集成。方案涵盖高可用性、负载均衡及定制化选项,满足生产环境需求。然而,若文档不清晰或存在信息缺失,则可能导致部署障碍。实际部署中可能遇到网络、权限等问题,需逐一排查。云产品的功能、性能及操作配置便捷性直接影响解决方案效果,详尽的产品手册有助于快速解决问题。总体而言,该方案在各方面表现出色,值得推荐。
|
2月前
|
人工智能 自然语言处理 数据管理
Step By Step 体验10 分钟在公众号和企微中构建自己的AI客服
为提升用户体验与竞争力,企业纷纷构建AI助手实现7x24小时客户服务。在阿里云平台上,仅需十分钟即可完成AI助手的搭建并发布至微信公众号或企业微信。流程包括创建大模型应用、引入AI助手至微信平台、导入私有知识以增强功能,以及将助手集成至企业微信中。此方案操作简便,文档详尽,可快速打造专属AI助手。但现有方案在错误提示、知识库构建指导及部署流程简化方面仍有待改进。
|
3月前
|
人工智能 自然语言处理 搜索推荐
评测:AI客服接入钉钉与微信的对比分析
【8月更文第22天】随着人工智能技术的发展,越来越多的企业开始尝试将AI客服集成到自己的业务流程中。本文将基于《10分钟构建AI客服并应用到网站、钉钉或微信中》的解决方案,详细评测AI客服在钉钉和微信中的接入流程及实际应用效果,并结合个人体验分享一些心得。
9960 10
|
3月前
|
人工智能 自然语言处理 Serverless
阿里云百炼应用实践系列-让微信公众号成为智能客服
本文主要介绍如何基于百炼平台快速在10分钟让您的微信公众号(订阅号)变成 AI 智能客服。我们基于百炼平台的能力,以官方帮助文档为参考,让您的微信公众号(订阅号)成 为AI 智能客服,以便全天候(7x24)回应客户咨询,提升用户体验,介绍了相关技术方案和主要代码,供开发者参考。
阿里云百炼应用实践系列-让微信公众号成为智能客服
|
4月前
|
自然语言处理 安全 API
AppFlow:让大模型当您的微信公众号客服
使用阿里云AppFlow和通义百炼,无需编码即可将大模型如通义千问接入微信公众号。首先确保公众号已认证,然后在通义百炼导入文档创建知识库。在AppFlow中选择“微信公众号大模型自动回复”模板,添加微信凭证和百炼API密钥。配置微信公众平台的服务器地址、Token和EncodingAESKey,并设置IP白名单。完成这些步骤后,用户在公众号的提问将由大模型自动回答。AppFlow简化了集成过程,助力高效智能客服建设。
|
4月前
|
机器学习/深度学习 自然语言处理 搜索推荐
云上智能客服机器人:重塑客户服务体验的新篇章
未来,云上智能客服机器人将继续深化深度学习技术的应用,通过跨领域的知识融合和模型训练提升其在复杂场景下的理解和决策能力。同时,机器人将更加注重多模态交互技术的发展以提供更加自然流畅的交互体验。 4.2 情感智能与人性化服务 随着情感智能技术的不断发展,云上智能客服机器人将更加注重情感交互和人性化服务。机器人将能够识别用户的情感状态和需求偏好提供更加贴心和温暖的服务体验。
275 7
|
4月前
|
机器学习/深度学习 自然语言处理 搜索推荐
云端智服:智能客服机器人引领服务新纪元
随着人工智能技术的不断进步,未来的智能客服机器人将会更加聪明、更加人性化,为客户提供更加优质的服务体验。企业应该抓住这一机遇,积极采用智能客服解决方案,以保持竞争优势并在激烈的市场竞争中脱颖而出。

热门文章

最新文章