通义千问AI模型对接飞书机器人-集成飞书机器人(2-2)

接上一篇 通义千问AI模型对接飞书机器人-模型配置(2-1)

1、通过飞书机器人对接ai的在线接口

参考文档:发送 HTTP 请求

1.1 创建飞书应用

创建流程

配置http请求

 http请求地址上一篇百炼平台配置的应用地址

1.2 企业自建应用对接AI

 添加应用能力

添加权限

添加机器人权限:

im:message

im:message.group_at_msg

im:message.group_at_msg:readonly

im:message.p2p_msg

im:message.p2p_msg:readonly

im:message:send_as_bot

 

 

事件订阅
 消息监听事件

代码参考
/*** 用户请求入口* @param request* @param response* @throws Throwable*/
@RequestMapping(value = "/ask/fileDownload")public void ask(HttpServletRequest request, HttpServletResponse response) throws Throwable {//3.1 回调扩展包提供的事件回调处理器
//监听消息 ->请求ai->回复消息servletAdapter.handleEvent(request, response, EVENT_DISPATCHER);}//1. 注册消息处理器
private final EventDispatcher EVENT_DISPATCHER = EventDispatcher.newBuilder("","").onP2MessageReceiveV1(new ImService.P2MessageReceiveV1Handler() {@Overridepublic void handle(P2MessageReceiveV1 event) throws Exception {log.info("P2MessageReceiveV1={}",Jsons.DEFAULT.toJson(event));String content = event.getEvent().getMessage().getContent();String text = JSONUtil.parseObj(content).getStr("text");log.info("text={}",text);// 获取租户 keyString tenantKey = event.getTenantKey();String openId = event.getEvent().getSender().getSenderId().getOpenId();aiAssistantService.answer(text,tenantKey,openId);log.info("requestId={}",event.getRequestId());}}).onP2UserCreatedV3(new ContactService.P2UserCreatedV3Handler() {@Overridepublic void handle(P2UserCreatedV3 event) {log.info("P2UserCreatedV3={}",Jsons.DEFAULT.toJson(event));log.info(event.getRequestId());}}).onP2MessageReadV1(new ImService.P2MessageReadV1Handler() {@Overridepublic void handle(P2MessageReadV1 event) {log.info("P2MessageReadV1={}",Jsons.DEFAULT.toJson(event));System.out.println(event.getRequestId());}}).onP1MessageReadV1(new ImService.P1MessageReadV1Handler() {@Overridepublic void handle(P1MessageReadV1 event) {log.info("P1MessageReadV1={}",Jsons.DEFAULT.toJson(event));System.out.println(event.getRequestId());}}).build();//2. 注入 ServletAdapter 实例
@Autowired
private ServletAdapter servletAdapter;//service类的方法@Asyncpublic void answer(String askStr,String tenantKey,String openId) throws Exception {//通过openId 获取 sessionIdString sessionId = map.get(openId);log.info("askStr start={}",askStr);ApplicationParam param = ApplicationParam.builder().apiKey("sk-*************").appId("*******************").prompt(askStr).sessionId(sessionId).build();log.info("param={}",JSONUtil.toJsonStr(param));Application application = new Application();ApplicationResult result = application.call(param);if(result.getOutput().getSessionId()!=null){map.put(openId,result.getOutput().getSessionId());}String text = result.getOutput().getText();
//飞书应用的秘钥,用户回复信息Client client = Client.newBuilder("cli_*******","j***********").build();Map<String, String> map = new HashMap<>();map.put("text",text);log.info("resp={}",JSONUtil.toJsonStr(map));// 发送请求,回复提问client.im().message().create(CreateMessageReq.newBuilder().receiveIdType(ReceiveIdTypeEnum.OPEN_ID).createMessageReqBody(CreateMessageReqBody.newBuilder().content(JSONUtil.toJsonStr(map)).msgType(MsgTypeEnum.TEXT.getValue()).receiveId(openId).build()).build(), RequestOptions.newBuilder().tenantKey(tenantKey).build());log.info("askStr end ={}",askStr);}
 效果预览

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/46798.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HumanitZ人道主义z用服务器开服教程

1、登录服务器&#xff08;百度莱卡云&#xff09; 进入控制面板后会出现正在安装的界面&#xff0c;安装大约5分钟&#xff08;如长时间处于安装中请联系我们的客服人员&#xff09; 2、修改查询端口 点击网络&#xff0c;两个端口已经创建完成 复制不是首选的端口&#xff…

无需标注即可训练,自监督学习框架实现大量未标注毫米波雷达数据预训练自动驾驶感知任务

Abstract 由于雷达&#xff08;radar&#xff09;在雾天和恶劣天气下的操作能力&#xff0c;自动驾驶车辆使用雷达进行感知引起了越来越多的研究兴趣。然而&#xff0c;训练雷达模型受到大规模雷达数据注释的成本和难度的阻碍。为了克服这一瓶颈&#xff0c;我们提出了一种自监…

事务失效的几种情况

一、事务管理的基本概念 事务有四个重要特性&#xff0c;称为ACID特性&#xff1a; Atomicity(原子性)&#xff1a;事务中的所有操作要么全部完成&#xff0c;要么全部不完成。Consistency(一致性)&#xff1a;事务完成后&#xff0c;数据要处于一致的状态Isolation(隔离性)&…

如何在电脑上演示手机上APP,远程排查移动端app问题

0序&#xff1a; 对接客户&#xff0c;给领导演示移动端产品&#xff0c;或者远程帮用户排查移动端产品的问题。都需要让别人能够看到自己在操作手机。 会议室可以使用投屏&#xff0c;但需要切换电脑和手机。 排查问题经常都是截图、或者手机上录制视频&#xff0c;十分繁琐…

恶补,先验分布,后验分布 ,似然估计

恶补&#xff0c;打一遍增加印象 先验分布后验分布&#xff0c;似然估计 声明&#xff1a;仅记录个人学习&#xff0c;并无其他用途。 先验分布 后验分布&#xff0c; 似然估计 隔壁小哥的故事&#xff1a; 隔壁小哥要去15公里外的一个公园里玩&#xff0c;小哥可以选择步行…

【BUG】已解决:ModuleNotFoundError: No module named ‘PIL‘

已解决&#xff1a;ModuleNotFoundError: No module named ‘PIL‘ 目录 已解决&#xff1a;ModuleNotFoundError: No module named ‘PIL‘ 【常见模块错误】 错误原因&#xff1a; 解决办法&#xff1a; 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我…

微信小程序-自定义组件生命周期

一.created 组件实例创建完毕调用。定义在lifetimes对象里。 不能在方法里面更改data对象里面的值&#xff0c;但是可以定义属性值。 lifetimes:{//不能给data设置值created(){this.testaaconsole.log("created") }}二. attached 模板解析完成挂载到页面。 可以更…

Gitee 使用教程1-SSH 公钥设置

一、生成 SSH 公钥 1、打开终端&#xff08;Windows PowerShell 或 Git Bash&#xff09;&#xff0c;通过命令 ssh-keygen 生成 SSH Key&#xff1a; ssh-keygen -t ed25519 -C "Gitee SSH Key" 随后摁三次回车键&#xff08;Enter&#xff09; 2、查看生成的 SSH…

React学习笔记(井字棋游戏)

本教程将引导你逐步实现一个简单的井字棋游戏&#xff0c;并且不需要你对 React 有任何了解。在此过程中你会学习到一些编写 React 程序的基本知识&#xff0c;完全理解它们可以让你对 React 有比较深入的理解。 教程分成以下几个部分&#xff1a; 配置 是一些准备工作。 概…

【Linux服务器Java环境搭建】010在linux中安装Redis,以及对Redis的配置与远程连接

系列文章目录 【Linux服务器Java环境搭建】 前言 好久没有更新博客了&#xff0c;今天下了班回到家&#xff0c;看到电脑桌上尘封已久的《Spring Boot应用开发实战》&#xff0c;翻开目录想起来之前写的系列【Linux服务器Java环境搭建】还未完结&#xff0c;那就继续吧&#…

实现异步天气数据获取与Spring缓存集成

你好呀&#xff0c;我是小邹。 在Web应用中&#xff0c;实时天气数据的获取是一个常见的需求&#xff0c;特别是在需要频繁更新天气信息的场景下&#xff0c;如旅游网站、天气应用或任何需要展示地理位置相关天气的应用。然而&#xff0c;频繁的外部API调用不仅会增加服务器的…

生成式AI的未来:对话的艺术与代理的实践

生成式 AI 的发展方向&#xff0c;是 Chat 还是 Agent&#xff1f; 随着生成式AI技术的不断进步&#xff0c;关于其未来发展方向的讨论也愈发激烈。究竟生成式AI的未来是在对话系统&#xff08;Chat&#xff09;中展现智慧&#xff0c;还是在自主代理&#xff08;Agent&#x…

HDU1011——Starship Troopers(树形DP),HDU1012——u Calculate e,HDU1013——Digital Roots

目录 HDU1011——Starship Troopers&#xff08;树形DP&#xff09; 题目描述 运行代码 代码思路 树形DP HDU1012——u Calculate e 题目描述 运行代码 代码思路 HDU1013——Digital Roots 题目描述 超时代码 改进后依旧超时代码 运行代码 代码思路 HDU1011——…

前端转base64格式的字体图标方法

1.将需要的字体图标包下载到本地 2.访问 transfonter.org 将字体图标转成base64格式 如 这样就可以和正常的字体图标一样使用了

【Git】Git Submodules 介绍(通俗易懂,总结了工作完全够用的 submodule 命令)

Git Submodules 介绍 1、为什么你值得读这篇文章&#xff1f;2、为什么有 submodules&#xff1f;3、了解 Git Submodules3.1、如何让一个Git仓库变为另一个Git仓库的 submodule3.2、submodule 的父子关系存在哪里3.3、submodule 的父子关系信息怎么存 4、submodule 开发常用操…

Token Labeling(NeurIPS 2021, ByteDance)论文解读

paper&#xff1a;All Tokens Matter: Token Labeling for Training Better Vision Transformers official implementation&#xff1a;https://github.com/zihangJiang/TokenLabeling 出发点 ViTs的局限性&#xff1a;尽管ViTs在捕捉长距离依赖方面表现出色&#xff0c; 但…

永远向有结果的人学习!

生活是一场漫长的旅程&#xff0c;充满了挑战和机遇。在这个过程中&#xff0c;我们不断地学习、成长&#xff0c;并从他人的经验中汲取智慧。今天&#xff0c;我想和大家分享一个重要的生活哲学&#xff1a;永远向有结果的人学习。 1. 敢于顶撞与撒野 我依旧敢和生活顶撞&am…

第二篇 Vue项目的搭建

1、脚手架安装 npm init vuelatest&#xff1a;官方提供的Vue项目脚手架工具&#xff0c;帮助我们搭建一个最简单的vue应用。 2、vs打开项目文件夹 打开脚手架生成的文件夹到vs并安装volar插件&#xff0c;以便vs能够支持vue格式代码 3、启动项目 npm run dev&#xff1a;vu…

国产麒麟、UOS在线打开pdf加盖印章

PageOffice支持两种电子印章方案&#xff0c;可实现对Word、Excel、PDF文档加盖PageOffice自带印章或ZoomSeal电子印章&#xff08;全方位保护、防篡改、防伪造&#xff09;。Word和Excel的盖章功能请参考&#xff1a;Word和Excel加盖印章和签字功能 &#xff08;目前只支持win…

css - - - - - 去除图片默认的白色背景(混合模式 mix-blend-mode)

去除图片默认的白色背景&#xff08;mix-blend-mode&#xff09; 1. 需求描述2. 原图展示3. 原代码展示4. 使用混合模式(mix-blend-mode)5.修改后效果 1. 需求描述 图片含有白色地图&#xff0c;想要将其去掉 2. 原图展示 3. 原代码展示 <div><img src*****/> &…