企业微信群聊机器通讯报文详解

背景

对接chatgpt时,需要支持在群聊里@机器人时回复内容

@我的收到的请求

{
    "atMe": "true",
    "groupRemark": "",
    "textType": "1",
    "groupName": "吴冠冠",
    "spoken": "武汉在哪里",
    "rawSpoken": "@吴冠冠\u00a0 武汉在哪里",
    "receivedName": "王aa",
    "roomType": "3"
}

字段说明

atMe
是否@我
groupName
群聊名称
spoken
@我的原文
receivedName
发起@的人

 

 

 

 

上个报文demo

{
    "socketType":2,
    "list":[
        {
            "type":203,
            "titleList":[
                "吴冠冠"
            ],
            "receivedContent":"你好~",
            "atList":["王aa"]
        }
    ]    
}

字段说明

socketType
固定值2
type
固定值203
titleList
 群聊名称或者人的名称,支持多个,所以是数组
receivedContent
 机器人要发送的内容
atList
 需要@的人,支持多个,所以是数组

 

 

 

 

 

 

 

 

对接chatgpt

有这两个报文,对接openai即可实现企业微信群聊机器人自动回复了

由于openai接口老是超时,建议做成异步回复

 

后台兼职接单中,联系我微信:wjf88520

一杯奶茶协助解决各类开发运维问题,欢迎交流

by wujf

mail:921252375@qq.com

本文转载于网络 如有侵权请联系删除

相关文章

  • 2022-05-25:最大子段和是 一个经典问题,即对于一个数组找出其和最大的子数组。 现在允许你在求解该问题之前翻转这个数組的连续一段, 如翻转(1,2,3,

    2022-05-25:最大子段和是一个经典问题,即对于一个数组找出其和最大的子数组。现在允许你在求解该问题之前翻转这个数組的连续一段,如翻转(1,2,3,4,5,6)的第三个到第五个元素組成的子数组得到的是(1,2,5,4,3,6),则翻转后该数组的最大子段和最大能达到多少?来自字节,几乎一样的题,来自字节笔试第4题。给定两个数組values和numbers,valuesi表示i号宝石的单品价值,numbersi表示i号宝石的数量,i号宝石的总价值=valuesi*numbersi。如果有一种魔法,可以翻转任何区间L...R的宝石,也就是改变L..R的宝石排列,变成逆序的。求在允许用一次魔法的情况下,任取一段连续区间,能达到的最大价值。这两个问法解法都几乎一样,区别无非是:美团的:可进行一次翻转情况下,子数组最大累加和;字节的:可进行一次翻转情况下,子数组最大价值和。来自美团。答案2022-05-25:从左往右:dpi左=max(arri,dpi-1+arri)从右往左:dpi右逆序的这段,既不会贯穿,也不会在内部。也就说会选择逆序的一部分,只有这种可能。左+部分逆序等价于右+部分逆序

  • Redis 容器与配置(2)

    启动一个redis容器由于本地并没有redis镜像,所以它会自动去dockerhub上拉取[root@h104~]#dockerrun--nametest-redis-dredis Unabletofindimage'redis:latest'locally latest:Pullingfromlibrary/redis 70e9a6907f10:Pullcomplete 32f2a4cccab8:Pullcomplete 34446d9c0a72:Pullcomplete 145623ef4dd4:Pullcomplete 8d9771e0b6ee:Pullcomplete 018a9e995b7a:Pullcomplete 0deb375d521a:Pullcomplete c152ff671a13:Pullcomplete aa64b511d09c:Pullcomplete 23c6ea3916be:Pullcomplete 9cd603438a28:Pullcomplete 8be59f114d61:Pullcomplete 70aeeb507933:Pul

  • flask 完成简单查询请求处理,及跨域

    flask通用项目结构|-projectName |-app//程序包 |-templates//jinjia2模板 |-static//css,js图片等静态文件 |-main//py程序包,可以有多个这种包,每个对应不同的功能 |-__init__.py |-errors.py |-forms.py |-views.py |-__init__.py |-email.py//邮件处理程序 |-models.py//数据库模型 |-migrations//数据迁移文件夹 |-tests//单元测试 |-__init__.py |-test*.py//单元测试程序,可以包含多个对应不同的功能点测试 |-venv//虚拟环境 |-requirements.txt//列出了所有依赖包以及版本号,方便在其他位置生成相同的虚拟环境以及依赖 |-config.py//全局配置文件,配置全局变量 |-manage.py//启动程序复制flask简介http://docs.jinkan.org/docs/flask/quicksta

  • Spring学习总结

    关于Spring也大体了解了一下,其原理比较简单,不过思想却是比较复杂,什么IOC,什么DI,什么AOP……不过这个这些个东西好在以前都有所接触,倒也不觉得头大。Spring的原理不过就是反射+注入,这样可以让你定义一个接口而不用每次调用接口都固定该接口的实现,而是通过spring帮你把该接口的实现通过配置文件注入进来。那么这就引出来一个问题,它是什么时候帮你把接口的实现注入进来的?这个要涉及到两方面,一个是非web形式的,另一种是web形式的。对于非web形式的spring的使用,你在调用含有接口的类的时候你需要先使用spring的BeanFactory和ClassPathXmlApplicationContext来将接口的实现注入。对于web形式,你需要在web.xml中配置spring的ContextLoaderListener这个监听器,另外也需要配置contextConfigLocation(也就是你的配置文件的路径)。这样在你的tomcat启动时,它就会自动找到你的beans.xml文件,把其中的xml配置或者是spring的注解的内容加载的spring的容器中,注入到你定

  • Linux进程核心调度器之主调度器schedule--Linux进程的管理与调度(十九)

    主调度器在内核中的许多地方,如果要将CPU分配给与当前活动进程不同的另一个进程,都会直接调用主调度器函数schedule,从系统调用返回后,内核也会检查当前进程是否设置了重调度标志TLF_NEDD_RESCHED例如,前述的周期性调度器的scheduler_tick就会设置该标志,如果是这样则内核会调用schedule,该函数假定当前活动进程一定会被另一个进程取代.1.1调度函数的__sched前缀 在详细论述schedule之前,需要说明一下__sched前缀,该前缀可能用于调用schedule的函数,包括schedule本身.__sched前缀的声明,在include/linux/sched.h,L416,如下所示/*Attachtoanyfunctionswhichshouldbeignoredinwchanoutput.*/ #define__sched__attribute__((__section__(".sched.text")))复制attribute((_section(“…”)))是一个gcc的编译属性,其目的在于将相关的函数的代码编译之后,放到

  • 暑期追剧学AI | 十分钟搞定机器学习中的数学思维(二)

    大数据文摘作品,转载要求见文末翻译|张静,大力校对|元元时间轴|弋心后期|郭丽(终结者字幕)后台回复“字幕组”加入我们!人工智能中的数学概念一网打尽!欢迎来到YouTube网红小哥Siraj的系列栏目“TheMathofIntelligence”,本视频是该系列的第二集,讲解优化问题和常用便捷优化方法。后续系列视频大数据文摘字幕组会持续跟进,陆续汉化推出喔!全部课表详见:https://github.com/llSourcell/The_Math_of_Intelligence本集代码挑战:https://github.com/llSourcell/Second_Order_Optimization_Newtons_Method本期视频时长11分钟,来不及看视频的小伙伴,可以先拉到视频下方看文字部分。视频内容嗨!大家好!我是Siraj。今天我们来聊一聊优化问题!世界上有成千上万种语言,每种语言在传情达意方面都有其各自的特点,但是有一门语言是全人类共通的,不论你来自哪里。这就是数学,不论你的文化你的年龄如何,你都能理解这门数字的语言。是它将我们从空间和时间上联系起来。跟其他语言一样,数学

  • 音乐、美女、益智三种不同类型题材VR游戏,总有一款是你的菜!

    6月15日,7663VR竞技平台全新上架了三款幻维世界VR游戏,分别是《妹子真爱打篮球》、《昆塔·反转星球》以及《电音骑士》。此次在7663VR竞技平台上架的三款VR游戏皆由幻维世界开发。在此之前,他们已经在7663VR竞技平台上架如《梦幻垂钓》《暗黑反抗军》等多款游戏。本次新上架的游戏游戏涵盖了音乐,运动,美女,益智,休闲等多种游戏类型,适合各个年龄层的玩家。《妹子真爱打篮球》和《昆塔·反转星球》是7663VR竞技平台首发作品。与这两款游戏一同登录的是音乐游戏《电音骑士》。上架首日限时免费畅玩为配合三款新游上架,7663VR竞技平台推出新游限免活动。6月15日当天至6月16日午间,玩家只需直接登录7663VR竞技平台,即可免费体验3款全新大作。《电音骑士》:VR音游,让你成为动感DJ《电音骑士》是一款基于Unreal4开发的创新式音乐类型VR游戏。玩家将在游戏中扮演一名未来世界的DJ,在赛博音乐世界中进行音乐表演。在游戏中,玩家无需任何多余的按键操作,只需跟着音乐节奏和提示,通过点、触碰、敲击等动作即可享受游戏带来的无穷乐趣。同时,玩家的每次游戏体验都将呈现其世界内的名次和本地的名次

  • 区块链在医疗行业的新机遇

    原文标题:NewBlockchain-BasedStartupsCreateNewOpportunitiesforHealthcare 原文作者:AmeliaTomasicchio 原文链接:https://cointelegraph.com/news/new-blockchain-based-startups-create-new-opportunities-for-healthcare未来,区块链技术将很有可能改变我们行业的现状,比如在数据管理、安全防护以及到医疗行业方面。区块链技术给医疗信息的管理提供了新的方案,使得电子病历的记录变得更加有效,不需要通过中介,也不需要病人管理自己的病例,即可防止病例的丢失和更改。通过这种方式,基于区块链的医疗信息平台可以解锁病例信息多方操作的价值;相反地,也可以减少医院和病人的看病成本。医生和患者间的超级账本这个医疗链平台主要是使用区块链技术来提高病例的储存效率。例如医生,医院,实验室,研究机构和医疗保险公司可以申请查看病例,从而给病人提供服务并在账本上记录下来。通过医疗链将会和Civic合作,可以促进医生使用有医疗链系统的Civic软件来独立开

  • Nature :我们为什么不该担心超级智能出现?

    1新智元编译1来源:Nature译者:刘小芹是什么让我们对人工智能(AI)感到忧心?白宫上周发布的报告是对智能机器可能带来的威胁的最新报告。Nature上周发表的评论文章提出,科学和政治关注极端的未来风险可能会分散我们对已经存在的问题的注意力。这种关注的部分原因来自对AI可能发展出自我意识,从而带来有关人类存续的严重威胁的过度关注。最近的一些新闻显示,受人尊敬的思想家如比尔·盖茨和斯蒂芬·霍金都在关注机器的自我意识。某种程度上,机器的某个软件将“觉醒”,机器自身的欲求将优先于人类的指示,从而威胁人类的存续。但是,在我们对AI的忧心中,机器的自我意识问题并不像人们想象的那么重要。事实上,仔细阅读盖茨、霍金等人的报道会发现,他们从来没有真的关心自我意识。此外,对机器自我意识的恐惧扭曲了公众的辩论重点。AI被纯粹以是否拥有自我意识定义是否危险。我们必须要认识到,阻止AI发展自我意识与阻止AI发展出可能造成伤害的能力是不一样的。对机器自我意识的关注来源于哪里?似乎主要来源于外行人士和新闻记者。搜索关于AI威胁的新闻报道,会发现几乎总是记者提到自我意识。虽然我们的很多行为都是无意识状态下发生的,

  • 大数据项目产品选型的五个建议

    原创作者:曾勇,Elastic工程师。数据如今对企业来说可谓是头等大事。使用欺诈检测来降低财务风险或是建设推荐系统来改善用户体验,都需要数据来为企业解决这些日益复杂的问题提供支撑。既然数据已成为企业的重要元素,那我们这几年在数据这个领域都学到了什么?市面上有多种不同的软件模式,包括私有专属软件、云端SAAS软件和开源软件,因此,现在开展大数据分析项目时,开发者、架构师及数据科学家要在众多软件中进行选型,某些软件可能需要昂贵的前期投资或需要投入庞大资源,当然也有一些工具恰到好处,既容易部署又为构建原型(prototype)提供了广泛的支持。寻找合适的工具对提高项目成功率及避免落入常见陷阱至关重要。以下为在大数据分析项目中进行产品选型的五个建议:从简单的小规模起步企业构建数据分析项目常见的最大错误往往是贪大求全。特别是如果项目是从上往下推,执行团队很有可能会被要求构建一套既没有明确成效却又十分复杂的解决方案,造成项目成本高昂且工期很长。 企业不如从规模较小的项目起步,让决策者很快可以看到成效,提升他们对同类项目的信心。利用现代化开源技术,企业不但不用作大量的前期投资,更可以让开发者迅速投

  • 博弈论分析题_博弈论

    1.巴什博奕(BashGame) 首先我们来玩一个比较古老的报数游戏。A和B一起报数,每个人每次最少报一个,最多报4个。轮流报数,看谁先报到30. 如果不知道巴什博弈的可能会觉得这个是个有运气成分的问题,但是如果知道的人一定知道怎样一定可以赢。我们先看下一个一眼就能看出答案的例子比如说我们报到5(4+1),每次报最多报4个,最少报1个.那么是不是后者一定可以赢呢?答案是肯定的。好了到这巴什博弈的精髓基本就OK了。 那么如果我们要报到n+1,每次最多报n个,最少报1个的话,后者一定能够赢。现在我们需要报数到n,而每次最多报数m个,最少报数1个.我们可以化成这样 n=k*(1+m)+r(0<=r<=m)这样的话如果r不等于0那么先手一定会赢,为什么呢?首先先手报r个,那么剩下k倍(1+m)个数,那么我们每次报数1+m-k(B)个数就一定能保证最后剩下1+m个,那么就到了上面我们说的那个了,先手就一定会赢,如果r=0那么后手一定会赢,道理一样的。 (r为任意自然数,s≤m),即n%(m+1)!=0,则先取者肯定获胜代码:importjava.util.Scanner; /***

  • 我的Vue之旅 07 Axios + Golang + Sqlite3 实现简单评论机制

    第三期·使用Vue3.1+TailWind.CSS+Axios+Golang+Sqlite3实现简单评论机制 效果图 CommentArea.vue 我们需要借助js的Data对象把毫秒时间戳转化成UTCString()。并在模板表达式中使用{{dateConvert(value.date)}} src="@/assets/avater/hamster.jpg"头像目前目前是固定的,也可以将头像资源地址存入数据库中。 获取JavaScript时间戳函数的方法和js时间戳转时间方法_半生过往的博客-CSDN博客_js时间戳转时间 dateConvert(date:number):string{ returnnewDate(date).toUTCString(); }, 复制 <template> <divclass="m-2"> <divclass="text-3xlfont-bold">Comments</div> <templatev-if="comments.length==0">当前pid帖子没有评论</t

  • Python8

    Python8 1、模块和包 1.1概述 1、模块:在python中,每一个python文件都是一个模块(module)。 2、包(package):在一个包里面会有很多模块。 3、包与文件夹的区别:包里面有_init_.py文件;文件夹里没有。 4、如何创建包和文件夹: (1)创建包,如下图,包的中间有一个小孔。     1.2模块间的调用 一个模块调用另一个模块中的所有的内容,前提是另一个模块是一个包中的,用的是from(包的位置).package.moduleimport(代表所有内容)。     在另一个模块中调用     2、动态参数 1、函数的形式参数个数不确定2、函数的形式参数数据类型不存在 *:代表的是元祖(非键值对均为元祖)**:代表的是字典(上传元素要是键值对)  动态参数场景 1、接口测试中,有个接口,有时候请求需要4个参数,有时候需要5个,有时候需要6个,有时候一个不需要 ​ ''' defdata1():  return{}&

  • 分治算法

    一.Divide-and-Conquer原理 简而言之,分治算法就是一个问题的规模较大时不好解决,但规模较小时又很好解,那么我们就将大问题化成小问题,依次求解小问题再合并成大问题的解,当然,不是所有问题都可以这么做. 设计过程分为三个阶段 1.Divide:整个问题划分为多个子问题 注意:分解的这组子问题p1,p2,…pmp_1,p_2,…p_mp1​,p2​,…pm​未必一定是相同的子问题,即$p_i和p_j$可以是分别完成不同任务的子问题 2.Conquer:求解各子问题(递归调用正设计的算法),注意边界条件 3.Combine:合并子问题的解,形成原始问题的解 Divide-and-Conquer算法的分析 1.分析各阶段的复杂性 Divide阶段的时间复杂性:D(n) Conquer阶段的时间复杂性:aT(n/b) Combine阶段的时间复杂性:C(n) 2.建立递归方程 设输入大小为n,T(n)为时间复杂性 当n<c时,T(n)=O(1) 3.求解递归方程得到问题的复杂度 例1:最大最小值问题 输入:一个数组A 输出:数组中的最大值和最小

  • Jmter文件上传

    before 使用jmeter做上传下载无非就是测试: web服务器的上传下载功能,也就是最常用的上传下载,比如向网站提交一个文件。 ftp服务器,这也就是测试ftp服务器的上传下在功能。 Web服务器 文件上传 上传这里演示上传文件和上传图片。 上传文件 http://www.neeo.cc:6001/post #文件内容 himan 复制 在线程组内,新建一个HTTP请求取样器,然后配置如下: 上传文件,这里需要注意的是在"文件上传"选项中: 文件名称是你文件所在的路径。 参数名称,一般是file。 MIME类型:application/octet-stream 其他暂时没啥问题。 上传图片 http://www.neeo.cc:6001/post 复制 在线程组内,新建一个HTTP请求取样器,然后配置如下: 上传图片,这里需要注意的是在"文件上传"选项中: 图片名称是你图片所在的路径。 参数名称,一般是file。 MIME类型:application/octet-stream不行的话,试试multipart/form-data 文件下载 文件下载,这里也是以下载

  • MySQL中的group_concat函数的使用

    本文通过实例介绍了MySQL中的group_concat函数的使用方法,比如selectgroup_concat(name)。MySQL中group_concat函数完整的语法如下:group_concat([DISTINCT]要连接的字段[OrderBYASC/DESC排序字段][Separator'分隔符'])基本查询mysql>select*fromaa;+------+------+|id|name|+------+------+|1|10||1|20||1|20||2|20||3|200||3|500|+------+------+6rowsinset(0.00sec)以id分组,把name字段的值打印在一行,逗号分隔(默认)mysql>selectid,group_concat(name)fromaagroupbyid;+------+--------------------+|id|group_concat(name)|+------+--------------------+|1|10,20,20||2|20||3|200,500|+------+-----

  • 爬虫小案例:扇贝单词评估

    使用python模拟扇贝官网单词测试的过程 数据来源:扇贝网站 https://www.shanbay.com/vocabtest/ importrequests,random #题库 topics_data=[] #单词列表 words_data=[] #选择的单词列表 word_indexs=[] #答案序号 answer_orders=['A','B','C','D','E'] #选择正确的单词 answer_right_indexs=[] #选择题库 defselect_topics(): globaltopics_data url='https://www.shanbay.com/api/v1/vocabtest/category/' params={ '_':str(random.randint(10**13,9*10**13)) } res=requests.get(url,params=params) ifres.status_code==200: topics_data=res.json()['data'] #print(topics_data) pr

  • 在博客首页挂上 YLM 和 BLM 的 HTML 代码

    效仿微软和nodejs社区: 博客园设置-页首HTML代码添加以下内容即可。 <divstyle="height:24px;line-height:24px;font-size:18px;background:#ff0;color:#000;text-align:center;font-weight:bold;">YellowLivesMatter</div> <divstyle="height:24px;line-height:24px;font-size:18px;background:#000;color:#fff;text-align:center;font-weight:bold;">BlackLivesMatter</div> 复制 ?

  • 马哥教育python网络班19期 学习目标

    马哥教育python网络班19期 学习目标:   (1)按群里的学习进度表,来自行学习,学完时间6个月。     (2)学完后,薪资能达到20K+每月。  

  • php之aop实践

    aop简介 AOP为AspectOrientedProgramming的缩写,意为:面向切面编程(也叫面向方面),可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术。AOP实际是GoF设计模式的延续,设计模式孜孜不倦追求的是调用者和被调用者之间的解耦,AOP可以说也是这种目标的一种实现。   aop-php简介   AOP-PHP是一个PECL扩展,您可以在PHP中使用面向方面的编程,无需编译或进行其他任何中间步骤。 AOP扩展的设计是最简单的方法,你可以认为PHP中的aop实现。 AOP旨在让横切关注点的分离(缓存,日志,安全,交易,……)   网址:http://aop-php.github.io/   aop-php安装 安装 有两种安装模式: 第一种方法: sudopeclinstallaop-beta  复制 第二种方法: #Clonetherepositoryonyourcomputer gitclonehttps://github.com/AOP-PHP/AOP cdAOP #prep

  • 自学编程的困扰?想自学找不到学习资源

    谈到自学,有一个困扰很多初学者的问题是“如何找到你想要的资源”。 其实关于如何找到资源,我想基本都知道,去谷歌、去百度一搜就出来了,但是我想要说的是如何更好的找到想要的资源,而不只是谷歌和百度搜索,毕竟有时候搜索出来的形形色色,还需要自己再次筛选一遍,真的挺累的。 那这篇文章呢就是来帮助一下学习java的新手小白们的,主要分为一下几个方面 1)基础学习:如果我刚刚开始学习java,在哪里可以找到教程?2)找书:哪里可以找到免费的书?3)沟通与讨论:遇到问题时我们在哪里沟通? 一、基础学习 你开始对java感兴趣,想要开始学习,却什么也不知道,你首先要了解什么是java,为什么你就选择了java其次你就要开始找些学习视频进行观看,刚开始接触编程我不建议大家看书,因为看书会打消大家的积极性,而且看书太过于枯燥,很容易从入门到放弃哈哈哈,对于视频的选择。我建议大家去哔哩哔哩上找一找,里面有很多视频可以学习参考 作为一名每天混迹在各大视频平台渴望学习知识的好学者,最先开始并没有发现B站是一个适合学习的网站,一开始在B站都是看动漫或者电影,后来开始想要学习编程从B站上开始了我的Java自学之路,

相关推荐

推荐阅读