当前位置:   article > 正文

FastGpt+Laf 将AI知识库装进公众号

fastgpt

准备账号

  1. 已微信认证的公众号(需要使用到客服消息):https://mp.weixin.qq.com/
  2. FastGpt账号,及知识库:https://fastgpt.run.
  3. Laf账号: https://laf.run/

Step1: Laf 准备

1. 进入Laf官网,注册账号
2. 新建应用,直接新建免费的进行测试

在这里插入图片描述
在这里插入图片描述
3. 复制代码
直接复制,先不需要改动任何内容
在这里插入图片描述

import cloud from '@lafjs/cloud';
import * as crypto from 'crypto';

// 公众号配置
const appid = 'wxb1833715d8f0809d'
const appsecret = 'fd76ce714a8083112100c2160b2f2c5d'
const wxToken = 'test';
// fastgpt配置
const apikey = "63f9a14228d2a688d8dc9e1b-skmzjonmv1gyno2iyky1z"
const modelId = "642adec15f01d67d4613efdb"

// 创建数据库连接并获取Message集合
const db = cloud.database();
const _ = db.command
const Message = db.collection('messages')

// 处理接收到的微信公众号消息
export async function main(event) {
  // const res = await cloud.fetch.post(` https://api.weixin.qq.com/cgi-bin/menu/create?access_token=${await getAccess_token()}`, {
  //   button: [
  //     {
  //       "type": "click",
  //       "name": "清空记录",
  //       "key": "CLEAR"
  //     },
  //   ]
  // })
  const { signature, timestamp, nonce, echostr } = event.query;

  // 验证消息是否合法,若不合法则返回错误信息
  if (!verifySignature(signature, timestamp, nonce, wxToken)) {
    return 'Invalid signature';
  }
  // 如果是首次验证,则返回 echostr 给微信服务器
  if (echostr) {
    return echostr;
  }

  // -------------- 正文开始

  const payload = event.body.xml;
  const sessionId = payload.fromusername[0]

  console.log(payload)
  // 点击了清空记录
  if (payload.msgtype[0] === 'event' && payload.eventkey[0] === 'CLEAR') {
    console.log(1111)
    await Message.where({ sessionId: sessionId }).remove({ multi: true })
    await replyBykefu('记录已清空', sessionId)
    return 'clear record'
  }

  // 仅做文本消息例子
  if (payload.msgtype[0] !== 'text') return 'no text'
  const newMessage = {
    msgid: payload.msgid[0],
    question: payload.content[0].trim(),
    username: payload.fromusername[0],
    sessionId,
    createdAt: Date.now()
  }

  await replyText(newMessage, payload.fromusername[0])

  return 'success'
}

// 处理文本回复消息
async function replyText(message, touser) {
  const { question, sessionId, msgid } = message;

  // 重复的内容,不回复
  const { data: msg } = await Message.where({ msgid: message.msgid }).getOne()
  if (msg) return

  console.log("收到用户消息", touser, message)

  // 立即添加一条待回复记录 
  await Message.add(message);

  // 回复提示
  await replyBykefu("声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
  • 对于您的账户(org-FPtm4iWkzMglOZn9J06QAK6F)中的text-embedding-ada-002模型来说,每分钟的请求限制是3次,您已经使用了3次请求,但是您又发送了1次请求,所以您需要等待20秒后再试。如果您在账户... [详细]

  • 向量搜索是一种可以比较文本相似度的技术。大模型具有总结和推理能力,可以从给定的文本中回答问题。最有效的知识库构建方式是QA和手动构建。Q的长度不宜过长。需要调整提示词,来引导模型回答知识库内容。可以通过调整搜索相似度、最大搜索数量和限定词来... [详细]

  • 国内直联GPT清风AIchat保姆级使用教程适合小白“未来几年所有组织的管理、业务都将AI如何利用AI技术是每一个管理者必须思考的问题”自从去年12月ChatGPT发布后带动了新的一轮应用交互革命。尤其是GPT-3.5接... [详细]

  • 太震撼太厉害昆仑万维正式发布「天工SkyAgents」平台助力大模型走入千家万户。你听听这个名字一听就有一种巧夺天工的感觉技艺那是相当的高超。这个平台基于昆仑万维「天工大模型」打造具备从感知到决策从决策到执行的自主学习和... [详细]

  • fastgpt直接连接chatglm3实现本地知识库_fastgptfastgpt前言:我用fastgpt直接连接chatglm3,没有使用oneai,不是很复杂,只需要对chatglm3项目代码做少量修改就能支持使用embeddings,... [详细]

相关标签