[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来上传(img-tvqbdR3w-1663327883339)(https://img-blog.csdnimg.cn/img_convert/b90a5642bc5aa322d23157e5fb5762ad.png)]

01

#学习是未来人工智能的基础石

外媒TechUp 3月1日,几位伟人的据悉揭开了秘码的网友们向他们提供了如下消息,并表示有英伟达DLSS的媒体。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来上传(img-lkcETxVJ-1663327883339)(https://img-blog.csdnimg.cn/img_convert/eaec133f4379bc255fda0af7a390039f.jpeg)]

根据 DLSS 的 DLSS 的 2, 的文件代码信息 2. 组成 DLSS 的 C++、标题和资产信息,还有一份“正确版本的编程”文档,帮助报道理解和制作

发布一份声明,提供与英达网络相关的实际情况,并进一步加强安全,表示网络,通知,发布任务安全。安全是一个持续的过程,日常专家的过程,黑客问题事件,英伟达将,产品保护和质量问题。

该技术在机器游戏领域的作用是闭上英达显卡的核心的学习能力,让玩家在深入学习不花费额外的情况下游戏运行率更高。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来上传(img-VVye4LGO-1663327884516)(https://img-blog.csdnimg.cn/img_convert/5898dacbcdbe33cdb06c78133373a509.jpeg)]

2015年人工智能的诞生式发展,人工智能从未来的人工智能发展向智能演进的实践。未来的人工智能基础石。

深入研究人工智能在复杂的模式化场景中甚至可以比人学习更好。

Google 的 AlphaGo 是一个如何围着进行下棋,不断地与自己的下练习,自己的神经网络,然后不断训练,不停歇,最终在 2016 年 3 月的人机大战中,4:1 的总比分九战段职业棋手李世石。

确定的,AI样本的识别和学习能力,通过数据类型信息,获取数据能力,信息,超等直接成像中的组织,可以具备AI的强识别,轻松实现识别。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来上传(img-TXnrYgoW-1663327884517)(https://img-blog.csdnimg.cn/img_convert/358b0925724e0047c2f82cada1c61346.jpeg)]

深度学习使得机器学习能够实现众多应用,拓展人工智能的领域范围。通过不断地深度学习,AI 可以帮助人们完成各种任务,使得近乎所有的机器辅助功能成为可能。电影图书推荐、智慧厨房,甚至是无人驾驶汽车、预防性医疗保健,都近在眼前,又或者即将实现。

02

Authing 助力 AI RPA 聊天机器人

Wechaty 是针对微信个人帐户的会话式 AI RPA(Robotic Process Automation,机器人流程自动化)聊天机器人 SDK,是由 Typescript 构建,支持个人号微信使用的 Node.js 应用,支持 Linux、Windows、macOS 和 Docker 等平台。通过使用 JavaScript、Python、Go 或 Java,只需 6 行代码即可创建机器人。

微信个人号拥有强大灵活的功能,可以不受限制地发送语音、视频、图片和文字,支持多人群聊,很适合作为 ChatBot 的载体。但是,使用微信个人微信号作为 ChatBot,需要通过非官方的第三方库接入微信。截至 2018 年底,微信尚无任何官方的 ChatBot API 发布。

Wechaty 基于微信公开的 API,对接口进行了一系列的封装,提供一系列简单的接口。开发者可以在其之上进行微信机器人的个性化开发,并将机器人应用于多个场景,例如:

  • 微信好友众多,如何管理和维护好友分组?

  • 面对海量的聊天信息,如何快速有序处理并区分其重要性?

  • 由于微信可以任意建群,面对日渐增多的微信群,如何管理?

  • 能否自动智能地对群内消息进行聊天回复

秉承着“连接全球人与应用”的使命,Authing 助力 Wechaty 机器人实现了数据分析、信息统计、辅助决策等众多功能,提高了传统人事管理的效率,实现了 Github 成员微信群的身份管理,保障用户身份信息安全,为机器人智能化发展增添了一种全新的可能。

03

Github 成员微信群的管理实现

管理员在 Github 上添加组织成员,通过 Github Webhook 钩子,发送到 Wechaty 服务,创建对应的 Authing 用户。组织成员用户手动添加 Bot 为好友, Bot 会将其邀请至微信群中。管理员在 Github 上删除组织成员时,也会通过 Github Webhook 钩子发送到 Wechaty 服务,Bot 将被删除的组织成员移除群聊后删除对应 Authing 用户。

sequenceDiagramactor N as Adminactor M as Memberparticipant G as Githubparticipant W as WechatyNote over N: 邀请 Github 成员N ->> G:  添加用户G -->> W: Webhook member_invitedW ->> W: 按邮箱注册 Authing 用户M ->> W: 添加 Bot 好友Note right of M: 发送用户名作为验证消息W -->> M: 邀请加入全员群Note over N: 移除 Github 成员N ->> G:  删除用户G -->> W: Webhook member_removedW ->> W: 按邮箱移除 Authing 用户W -->> M: 移除群成员

04

Authing 技术支持

准备工作

  • 推荐 Wechaty 机器人使用一个没有太多群聊和好友的新号。
  • 同时,最好新建一个群聊,避免群聊用户因与 Github 未进行绑定,后期无法被移除群聊的风险。
  • 将 Bot 账号设置为群聊管理员

然后我们就可以开始代码实现了。

创建 Github Webhook 处理路由

目前主要处理两个事件:

  • member_added:用户加入 Github 组织
  • member_removed:用户离开 Github 组织

可以使用任意 HTTP 框架,此处示例用的是 Nest.js,供参考。

import { Controller, Post, Body } from '@nestjs/common';@Controller('webhook')
export class CatsController {@Post()async webhook(@Body() webhookDto: WebhookDto) {// 可以判断是否为指定 Org// 通过:webhookDto.organization.login 字段switch(webhookDto.action) {case 'member_added': {// 该步骤核心为注册 Authing 用户,仅为演示,可以放到 service 或者其他地方await authing.createGithubUser(webhookDto.membership.user);break;}case 'member_removed': {const contactId = await authing.getWechatyContactId(webhookDto.membership.user.login);// TODO:  搜索群聊,踢出用户。如果 Puppet 支持,还可以删除好友// 删除 Authing 用户await authing.removeGithubUser(webhookDto.membership.user);break;}default: {// 其他可扩展}    }// 定义返回格式}
}

Github Webhook Payload 参考网站:
https://docs.github.com/en/developers/webhooks-and-events/webhooks/webhook-events-and-payloads#organization

扩展 Wechaty Authing 插件

新增如下几个方法来扩展 wechaty-authing插件:
createGithubUser:创建 Authing 用户
getWechatyContactId:获取用户的 Wechaty Contact Id
Wechaty Contact Id 可以映射到 Authing 用户 externalId 字段或者其他
removeGithubUser:删除 Authing 用户
checkGithubLogin:校验 Github 用户是否为组织成员
bindGithubUser:将 Github 用户与 Wechaty Contact 进行绑定

import { WechatyAuthing } from 'wechaty-authing';class ExtendedWechatyAuthing extends WechatyAuthing {createGithubUser(user: GithubUser) {return this.client.users.create({nickname: user.login,photo: user.avatar_url,registerSource: ['wechaty'],username: user.login},{identity: {isSocial: true,userIdInIdp: user.id,provider: 'github'}});}async getWechatyContactId(login: string): Promise<string> {const user = await this.client.users.find({ username: login });return user?.externalId || '';}async removeGithubUser(login: string) {const user = await this.client.users.find({ username: login });return this.client.users.delete(user?.id);}async checkGithubLogin(login: string): Promise<boolean> {return this.client.users.exists({username: login});}async bindGithubUser<T = Contact>(username: string,contact: T): Promise<boolean> {try {const { id } = await this.client.users.find({ username });await this.client.users.update(id, {externalId: contactId});return true;} catch (e) {return false;}return false;}
}export const authing = new ExtendedWechatyAuthing({userPoolId: process.env.AUTHING_USER_POOL_ID,secret: process.env.AUTHING_USER_POOL_SECRET
});

Wechaty Handler 扩展

1. 好友请求绑定 Github 用户

当 Bot 收到用户好友申请时,检查是否为 Github 组织用户,并邀请入群。

import type { Friendship, Wechaty } from 'wechaty';
import { log } from 'wechaty';
import { FriendshipType } from 'wechaty-puppet';
import { authing } from '../lib/authing';export default async function friendshipHandler(this: Wechaty,friendship: Friendship
): Promise<void> {if (friendship.type() !== FriendshipType.Receive) return;const username = friendship.hello().trim();const exists = await authing.checkGithubLogin(user);if (!exists) return;try {await friendship.accept();await sleep(2000);log.info('Friendship', friendship.contact().id);const contact = friendship.contact();const room = await this.Room.find({ id: 'roomId' });await authing.bindGithubUser(username, contact); await room?.add(contact);log.info('Message', '邀请加入群聊成功');} catch (e) {log.error('Friendship', e);}
}

2. 消息绑定 Github 用户

对于原本已经添加过 Bot 的微信好友,可以通过该方式进行处理。同时,由于 Wechaty 存在一些不稳定的风险,在接受好友请求并邀请入群时,可能会失败。如遇到该问题,请隔一段时间,再次发送 Github 用户名给 Bot,进行重试。

import { log } from 'wechaty';
import type { Message, Wechaty } from 'wechaty';
import { MessageType } from 'wechaty-puppet';
import { authing } from '../lib/authing';export default async function messageHandler(this: Wechaty,message: Message
): Promise<void> {// 只处理文本消息if (message.type() !== MessageType.Text) return;const username = message.text().trim();const exists = await authing.checkGithubLogin(user);if (!exists) return;const result = await authing.bindGithubUser(username, contact);if (result) {try {const room = await this.Room.find({ id: 'roomId' });等待房间?。添加(联系人);log.info('Message', '邀请加入群聊成功'); } catch (e) { log.error('Message', e); } }
} ```点击[此处](https://www.authing.cn/customer?utm_source=WeChat1&utm_campaign=bottom&utm_term=20220808)了解更多行业身份管理「解决方案」以及「最佳实践案例」

一招,提高 Github 成员微信群运营效率相关推荐

  1. winform怎么实现七天签到_怎么管理多个微信群?怎么提高微信群管理效率?

    怎么管理多个微信群?实际上如今大批量管理微信群,大部分人依靠的是群管理工具来輔助进行,比如:利用群管理工具进行入群通告.群欢迎语.微信群储存.群内全自动答疑解惑.组员管理方法.多群管理.深潜查寻.群活 ...

  2. 微信群运营方案及技巧策略(精华版)

    微信群运营方案及技巧策略(精华版) 一.微信已改变生活 二.微信的最大悲哀:碎片化 三.微信是一把双刃剑 四.微信群运营实战十二招 (一)保粉 保粉3要点 (二)粘性 粘性5要素 (三)逼格 (四)温 ...

  3. 微信群的深度服务器,深度工作|微信群运营过程中常见的细节问题及解决方案...

    文/曲娅菲 据统计94%的手机都有微信应用,微信的用户数量已突破8亿.我们每个人的手机基本都有百八十个好友,那么微信群最少也有几个,移动互联时代,我们可以足不出户的通过一部手机就把生意做到国外.那么掌 ...

  4. 微信群运营7大运营要点,了解一下?

    1.首先确认社群性质,社群性质分3种,一是以围绕某位或者某个专家形成的专家型社群,一个是围绕某款产品形成的产品社群,还一个是围绕某种兴趣建立的兴趣社群. 2.产品社群要重点打造参与感 (a)定期举办微 ...

  5. 微信群运营怎么做?一文讲透社群活跃技巧及发展模式

    现在的社群你可以直接理解成就是微信群,认真看完你会对社群有一个完整的了解并且会收获社群运营的方法,并且兴棋博客还为看到最后的小伙伴准备一份精准引流秘籍. 一.社群的几种发展方式 1.群人数逐渐增加(2 ...

  6. java微信群自动回复_微信群运营必备的社群管理工具,让你实现月入过万-工具...

    社群运营中需要用到哪些工具呢?都说工欲善其事必先利其器,互联网时代无论做哪一项工作如果能借助工具效率就能有效提高.如果管理微信多个社群进行运营,每天维护广告就要花去很多花去很多时间哪还能进行其他工作的 ...

  7. 微信群运营之设计运营思路

    商家要想运营好微信群,那么首要做的工作就是设计运营思路.如果做事毫无章法思路,那么很有可能会让自己的工作陷入僵局.运营微信群并不简单,需要考虑多方面社群鸭因素.卖什么产品,群管理体系的设立,规则的制定 ...

  8. 微信群对服务器的要求,微信群运营必看:运营微信群必做的7点要求

    微信群营销做的人也很多,但是给自己的微信群做好定位的却很少,都是千篇一律的组建n个微信群,再无休止的发各种宣传广告. 其实各种各样的广告发的多了人家也未必会看,不如先静下心来给微信群做个明确的定位. ...

  9. 如何在500个甚至上千微信群运营推广和赚钱?

    互联网运营模块中,哪个模块最为重要,有的人会觉得是引流,因为没有用户,后面的一切都无从谈起;有的人觉得是变现,如果无法变现,其他环节都没有价值;有的人觉得是套路,如果没有套路,很难从竞品中杀出; 要我 ...

最新文章

  1. Java线程池面试必备:核心参数、工作流、监控、调优手段
  2. 古怪的ConfigurationManager
  3. 基于Redis实现分布式锁
  4. python线程池超过最大数量_python自定义线程池控制线程数量
  5. IOS-关闭(退)键盘事件--转
  6. c语言 自动测试,C语言测试。自己实现scandir 函数
  7. 机器人电焊电流电压怎么调_【华光】HG1000型电焊机现场校准仪
  8. 电子合同的履行_每日一“典”丨明确规定电子合同的订立、履行规则
  9. 不加载执行js_这些你不知道的前端隐藏加载执行JavaScript
  10. 红帽高级总监谈OpenJDK的未来:Java的未来从未如此光明
  11. 虚拟机系统克隆到服务器上,迁移虚拟机
  12. goharbor harbor-helm 搭建 记录
  13. java网络通信技术示例:简单的聊天小程序
  14. C语言基础入门一(自学笔记)
  15. Python新世界(14)-14行Python代码即可去除抖音水印
  16. 做站源码下载地址及各类资源站点
  17. Windows API 教程(七) hook 钩子监听
  18. 【武忠祥高等数学基础课笔记】定积分
  19. 登录网络计算机提示用户名错误,局域网访问共享时提示登录失败:未知的用户名或错误密码 怎么回事...
  20. 微信分销商城如何推广比较吸引粉丝

热门文章

  1. 谷哥学术2022年2月资源分享下载列表 15/20
  2. 2012-8-18可樂美文分享《遗留在时…
  3. Vue CLI脚手架详细教程
  4. 强智教务系统验证码识别 OpenCV
  5. 我们是如何设计出,让玩家们有“上瘾症”的抽卡系统的
  6. BFU数据结构头歌实验:基于BF算法的病毒感染检测
  7. 数据架构与算法——C/C++实现冒泡排序(Bubble Sort)算法【建议收藏】
  8. 利用R绘制venn图(VennDiagram、eulerr、venneuler、limma)
  9. spring入门学习粗解(一)
  10. python怎么去掉换行符_python去除空格和换行符的实现方法(推荐)