当前位置: 首页 > news >正文

WorkTool企微机器人接入智能问答

一、前言

最新版的企微机器人已经集成 Chat ,无需开发可快速搭建智能对话机器人。
从官方介绍看目前集成版本使用模型为 3.5-turbo。

二、入门

  1. 创建 WorkTool 机器人
    你可以通过这篇快速入门教程,来快速配置一个自己的企微机器人。

    实现的流程如图:
    在这里插入图片描述

  2. 创建 Chat 账户并获取 apiKey
    第一步完成后,你应该已经有一个自动执行的企微机器人了,然后需要获取 apiKey,获取方法还需要自行搜索教程、注册或采购。

  3. WorkTool 机器人绑定 apiKey
    绑定方法:https://worktool.apifox.cn/api-68569089?nav=2

    1. 点击调试
    2. 点击Params 修改robotId后面的参数值为你的机器人id
    3. 点击Body 修改apiKey后面的参数值为你自行注册的Chat apiKey
    4. 点击发送即可完成绑定

    这时再向你的机器人提问,机器人就会使用 Chat 的问答能力进行回答啦。

实现原理

项目采用 Java 语言编写,核心方法本质上还是请求官方接口,并暂时保存用户会话上下文来达到多轮问答的效果。
核心工具类如下:

import java.util.*;
import com.huggingface.chatbot.*;
import com.database.*;
import com.nlp.*;
import com.speech.*;public class ChatbotClient {private static final int MAX_HISTORY_SIZE = 10;private DialogManager dialogManager;private DatabaseManager databaseManager;private NLPProcessor nlpProcessor;private SpeechProcessor speechProcessor;public ChatbotClient() {dialogManager = new DialogManager();databaseManager = new DatabaseManager();nlpProcessor = new NLPProcessor();speechProcessor = new SpeechProcessor();}public void startChat() {Scanner scanner = new Scanner(System.in);while (true) {String input = scanner.nextLine();String userMessage = speechProcessor.speechToText(input);String chatbotResponse = getResponse(userMessage);System.out.println(\"Chatbot: \" + chatbotResponse);String chatbotSpeech = speechProcessor.textToSpeech(chatbotResponse);System.out.println(\"(Speech) Chatbot: \" + chatbotSpeech);}}private String getResponse(String userMessage) {String chatbotResponse = dialogManager.getPreviousResponse();if (chatbotResponse != null && !chatbotResponse.isEmpty()) {System.out.println(\"User: \" + userMessage);String nlpResult = nlpProcessor.process(userMessage);String databaseResult = databaseManager.query(nlpResult);chatbotResponse = chatbotResponse + \" \" + databaseResult;} else {chatbotResponse = Chat.getResponse(userMessage);}dialogManager.addResponse(chatbotResponse);return chatbotResponse;}private class DialogManager {private LinkedList<String> history = new LinkedList<>();public void addResponse(String response) {history.add(response);if (history.size() > MAX_HISTORY_SIZE) {history.poll();}}public String getPreviousResponse() {if (history.isEmpty()) {return null;}return history.getLast();}}public static void main(String[] args) {ChatbotClient chatbotClient = new ChatbotClient();chatbotClient.startChat();}
}

总结

至此,你应该已经完成了企微机器人智能问答对接,一个智能企微机器人就实现了,后续我会继续进行AI能力的扩展,如多模态等。喜欢本文可以关注我~有问题可以留言或私信我。

相关文章:

WorkTool企微机器人接入智能问答

一、前言 最新版的企微机器人已经集成 Chat &#xff0c;无需开发可快速搭建智能对话机器人。 从官方介绍看目前集成版本使用模型为 3.5-turbo。 二、入门 创建 WorkTool 机器人 你可以通过这篇快速入门教程&#xff0c;来快速配置一个自己的企微机器人。 实现的流程如图&…...

C导入正则库问题

环境 操作系统:win11 专业版 gcc: gcc (x86_64-posix-seh-rev0, Built by MinGW-W64 project) 8.1.0 编辑器&#xff1a;vscode 要求 在c中使用正则表达式 遇到的问题以及解决思路 C标准中并没有正则表达式库 从其他地方下载正则表达式库即可。 http://gnuwin32.sourcefo…...

尚融宝05-Node.js入门

目录 一、Node.js的概念 1、JavaScript引擎 2、什么是Node.js 二、下载和安装 1、下载和安装 2、查看安装是否成功 三、初始Node.js程序 1、运行一个程序 常见问题 2、文件的读取 3、服务器端程序 三、Node.js的作用 1、Node.js的应用场景 2、BFF 解决什么问题 …...

「SAP ABAP」OPEN SQL(八)【WHERE语句大全】

&#x1f482;作者简介&#xff1a; THUNDER王&#xff0c;一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学本科在读&#xff0c;同时任汉硕云&#xff08;广东&#xff09;科技有限公司ABAP开发顾问。在学习工作中&#xff0c;我通常使用偏后端的开发语言A…...

Ribbon负载均衡的原理(源码分析)

SpringCloud底层其实是利用了一个名为Ribbon的组件&#xff0c;来实现负载均衡功能的。1&#xff09;LoadBalancerIntercepor可以看到这里的intercept方法&#xff0c;拦截了用户的HttpRequest请求&#xff0c;然后做了几件事&#xff1a;1.request.getURI()&#xff1a;获取请…...

用sql计算两个经纬度坐标距离(米数互转)

目录 一、sql示例&#xff08;由近到远&#xff09; 二 、参数讲解 三、查询效果 - 距离&#xff08;公里 / 千米&#xff09; 四、查询效果 - 距离&#xff08;米&#xff09; 五、距离四舍五入保留后2位小数&#xff08;java&#xff09; 一、sql示例&#xff08;由近到远…...

C语言详解KMP算法

如果给你一个字符串 和 该字符串的一个子字符串 你能否快速找出该子字符串的所在位置我猜 这里会有一群杠精 说可以找到 真的吗 那下面这个字符串你可以一眼看出来吗你能找出来吗 如果能 算你眼神好 如果不能 那就看看接下来我怎么做你有想到暴力求解法吗&#xff1f;——来自百…...

redis在window上安装与自启动

需求&#xff1a; 客户window服务器使用redis&#xff0c;需要配置成在window服务中&#xff0c;并且可以随着电脑自启动服务。 下载 https://github.com/tporadowski/redis/releases打开上面的下载地址&#xff0c;这里我们下载zip压缩版本。 解压到待安装目录下&#xff…...

字符串匹配【BF、KMP算法】

文章目录:star:BF算法代码实现BF的改进思路:star:KMP算法&#x1f6a9;next数组&#x1f6a9;代码实现优化next数组最终代码⭐️BF算法 BF算法&#xff0c;即暴力(Brute Force)算法&#xff0c;是普通的模式匹配算法&#xff0c;BF算法的思想就是将主串S的第一个字符与模式串P…...

Leetcode.1616 分割两个字符串得到回文串

题目链接 Leetcode.1616 分割两个字符串得到回文串 Rating &#xff1a; 1868 题目描述 给你两个字符串 a和 b&#xff0c;它们长度相同。请你选择一个下标&#xff0c;将两个字符串都在 相同的下标 分割开。由 a可以得到两个字符串&#xff1a; aprefix和 asuffix&#xff0c…...

剑指 Offer II 033. 变位词组

题目链接 剑指 Offer II 033. 变位词组 mid 题目描述 给定一个字符串数组 strs&#xff0c;将 变位词 组合在一起。 可以按任意顺序返回结果列表。 注意&#xff1a;若两个字符串中每个字符出现的次数都相同&#xff0c;则称它们互为变位词。 示例 1: 输入: strs [“eat”,…...

spring-cloud-sentinel ---流控算法---review

计数器算法 计数器算法&#xff0c;限定每个固定时间能处理的请求总数&#xff0c;例如1分钟100&#xff0c;如果在第一个一分钟&#xff0c;总共请求60次&#xff0c;接着第二个一分钟&#xff0c;counter又会从0 开始技术&#xff0c;如果在1.5分钟的时候&#xff0c;达到了…...

1.浅析NIO 多路复用器selector

一&#xff1a;IO基本介绍 Java共支持3种网络编程IO模式&#xff1a;BIO&#xff0c;NIO&#xff0c;AIO 0.Java对BIO、NIO、AIO的支持&#xff1a; Java BIO &#xff1a; 同步并阻塞&#xff0c;服务器实现模式为一个连接一个线程&#xff0c;即客户端有连接请求时服务器端…...

Day920.结构化日志业务审计日志 -SpringBoot与K8s云原生微服务实践

结构化日志&业务审计日志 Hi&#xff0c;我是阿昌&#xff0c;今天学习记录的是关于结构化日志&业务审计日志的内容。 1、什么是结构化日志 结构化日志&#xff08;Structured Logging&#xff09;是一种将日志信息组织为结构化数据的技术。 传统的日志通常是一些文…...

前端代码复用学习笔记:整洁架构与清晰架构

基础代码的复用往往比较简单&#xff0c;但是业务代码的复用通常是困难的&#xff0c;如果没有特殊的手段去治理项目会逐渐发展为难以维护的巨石应用&#xff0c;按照维基百科记载&#xff0c;代码的复用形式主要有三种&#xff0c;程序库&#xff0c;应用框架&#xff0c;设计…...

【python刷题】leecode官方提示“->“,“:“这些符号是什么意思?什么是Type Hints?

作者&#xff1a;20岁爱吃必胜客&#xff08;坤制作人&#xff09;&#xff0c;近十年开发经验, 跨域学习者&#xff0c;目前于海外某世界知名高校就读计算机相关专业。荣誉&#xff1a;阿里云博客专家认证、腾讯开发者社区优质创作者&#xff0c;在CTF省赛校赛多次取得好成绩。…...

【华为OD机试真题2023 JAVA】最佳对手

华为OD机试真题,2023年度机试题库全覆盖,刷题指南点这里 最佳对手 知识点排序DFS搜索回溯 时间限制:1s 空间限制:256MB 限定语言:不限 题目描述: 游戏里面,队伍通过匹配实力相近的对手进行对战。 但是如果匹配的队伍实例相差太大,对于双方游戏体验都不会太好。 给定n个…...

css实现文字大小自适应

在页面编写中经常会碰到页面自适应的问题&#xff0c;也就是页面内部的元素会随着窗口的放大缩小而放大缩小&#xff0c;box可以通过calc 百分比的形式做到页面自适应&#xff0c;但是box内的字体却无法做到这点&#xff0c;往往box自适应大小了&#xff0c;内部的字体还是原来…...

【Redis】搭建哨兵集群

目录 集群结构 准备实例和配置 启动 测试 集群结构 这里我们搭建一个三节点形成的Sentinel集群&#xff0c;来监管之前的Redis主从集群。如图&#xff1a; 三个sentinel实例信息如下&#xff1a; 节点IPPORTs1192.168.150.10127001s2192.168.150.10127002s3192.168.150.…...

CTFHub | .htaccess

0x00 前言 CTFHub 专注网络安全、信息安全、白帽子技术的在线学习&#xff0c;实训平台。提供优质的赛事及学习服务&#xff0c;拥有完善的题目环境及配套 writeup &#xff0c;降低 CTF 学习入门门槛&#xff0c;快速帮助选手成长&#xff0c;跟随主流比赛潮流。 0x01 题目描述…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析

今天聊的内容&#xff0c;我认为是AI开发里面非常重要的内容。它在AI开发里无处不在&#xff0c;当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗"&#xff0c;或者让翻译模型 "将这段合同翻译成商务日语" 时&#xff0c;输入的这句话就是 Prompt。…...

postgresql|数据库|只读用户的创建和删除(备忘)

CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...

cf2117E

原题链接&#xff1a;https://codeforces.com/contest/2117/problem/E 题目背景&#xff1a; 给定两个数组a,b&#xff0c;可以执行多次以下操作&#xff1a;选择 i (1 < i < n - 1)&#xff0c;并设置 或&#xff0c;也可以在执行上述操作前执行一次删除任意 和 。求…...

HBuilderX安装(uni-app和小程序开发)

下载HBuilderX 访问官方网站&#xff1a;https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本&#xff1a; Windows版&#xff08;推荐下载标准版&#xff09; Windows系统安装步骤 运行安装程序&#xff1a; 双击下载的.exe安装文件 如果出现安全提示&…...

如何在最短时间内提升打ctf(web)的水平?

刚刚刷完2遍 bugku 的 web 题&#xff0c;前来答题。 每个人对刷题理解是不同&#xff0c;有的人是看了writeup就等于刷了&#xff0c;有的人是收藏了writeup就等于刷了&#xff0c;有的人是跟着writeup做了一遍就等于刷了&#xff0c;还有的人是独立思考做了一遍就等于刷了。…...

GruntJS-前端自动化任务运行器从入门到实战

Grunt 完全指南&#xff1a;从入门到实战 一、Grunt 是什么&#xff1f; Grunt是一个基于 Node.js 的前端自动化任务运行器&#xff0c;主要用于自动化执行项目开发中重复性高的任务&#xff0c;例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...

腾讯云V3签名

想要接入腾讯云的Api&#xff0c;必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口&#xff0c;但总是卡在签名这一步&#xff0c;最后放弃选择SDK&#xff0c;这次终于自己代码实现。 可能腾讯云翻新了接口文档&#xff0c;现在阅读起来&#xff0c;清晰了很多&…...

Caliper 负载(Workload)详细解析

Caliper 负载(Workload)详细解析 负载(Workload)是 Caliper 性能测试的核心部分,它定义了测试期间要执行的具体合约调用行为和交易模式。下面我将全面深入地讲解负载的各个方面。 一、负载模块基本结构 一个典型的负载模块(如 workload.js)包含以下基本结构: use strict;/…...

Linux 下 DMA 内存映射浅析

序 系统 I/O 设备驱动程序通常调用其特定子系统的接口为 DMA 分配内存&#xff0c;但最终会调到 DMA 子系统的dma_alloc_coherent()/dma_alloc_attrs() 等接口。 关于 dma_alloc_coherent 接口详细的代码讲解、调用流程&#xff0c;可以参考这篇文章&#xff0c;我觉得写的非常…...

6️⃣Go 语言中的哈希、加密与序列化:通往区块链世界的钥匙

Go 语言中的哈希、加密与序列化:通往区块链世界的钥匙 一、前言:离区块链还有多远? 区块链听起来可能遥不可及,似乎是只有密码学专家和资深工程师才能涉足的领域。但事实上,构建一个区块链的核心并不复杂,尤其当你已经掌握了一门系统编程语言,比如 Go。 要真正理解区…...