怎样做_网站做seo深圳官方宣布解封时间

pingmian/2025/10/12 22:38:32/文章来源:
怎样做_网站做seo,深圳官方宣布解封时间,高质量发展服务业,百姓网二手拖拉机前言#xff1a;我的最终目的是为了在QQ上集成一个AI机器人#xff0c;因此在这里先实现一个简单的集成 先上效果图 总体还是很简单的#xff0c;我在调用websock获取回复内容的基础上另外集成了一个事件总线#xff0c;让我们在调用获取消息的时候能够更加方便快捷 工具代…前言我的最终目的是为了在QQ上集成一个AI机器人因此在这里先实现一个简单的集成 先上效果图 总体还是很简单的我在调用websock获取回复内容的基础上另外集成了一个事件总线让我们在调用获取消息的时候能够更加方便快捷 工具代码如下 import CryptoJS from crypto-jsexport function getWebsocketUrl(API_KEY: string, API_SECRET: string) {return new Promise((resolve, reject) {var apiKey API_KEYvar apiSecret API_SECRETvar url wss://spark-api.xf-yun.com/v1.1/chatvar host location.hostvar date new Date().toGMTString()var algorithm hmac-sha256var headers host date request-linevar signatureOrigin host: ${host}\ndate: ${date}\nGET /v1.1/chat HTTP/1.1var signatureSha CryptoJS.HmacSHA256(signatureOrigin, apiSecret)var signature CryptoJS.enc.Base64.stringify(signatureSha)var authorizationOrigin api_key${apiKey}, algorithm${algorithm}, headers${headers}, signature${signature}var authorization btoa(authorizationOrigin)url ${url}?authorization${authorization}date${date}host${host}resolve(url)}) }export default class TTSRecorder {appId: string;apiKey: string;apiSecret: string;status: string;onWillStatusChange: any;ttsWS: any;content: string;revertText: string;_events: any[];constructor(appId: string, API_KEY: string, API_SECRET: string) {this.appId appIdthis.apiKey API_KEYthis.apiSecret API_SECRETthis._events [];this.status init}// 修改状态setStatus(status: string) {this.onWillStatusChange this.onWillStatusChange(this.status, status)this.status status}// 连接websocketconnectWebSocket() {this.setStatus(ttsing)return getWebsocketUrl(this.apiKey, this.apiSecret).then(url {let ttsWSif (WebSocket in window) {ttsWS new WebSocket(url as string)} else if (MozWebSocket in window) {ttsWS new MozWebSocket(url)} else {alert(浏览器不支持WebSocket)return}this.ttsWS ttsWSttsWS.onopen e {this.webSocketSend()}ttsWS.onmessage e {this.result(e.data)}ttsWS.onerror e {clearTimeout(this.playTimeout)this.setStatus(error)alert(WebSocket报错请f12查看详情)console.error(详情查看${encodeURI(url.replace(wss:, https:))})}ttsWS.onclose e {console.log(e)}})}// websocket发送数据webSocketSend() {var params {header: {app_id: this.appId,uid: fd3f47e4-d},parameter: {chat: {domain: general,temperature: 0.5,max_tokens: 1024}},payload: {message: {text: [{role: user,content: this.content}]}}}console.log(JSON.stringify(params))this.ttsWS.send(JSON.stringify(params))}start(text: string) {this.revertText ; // 请空回答历史this.content textthis.connectWebSocket()}// websocket接收数据的处理result(resultData: string) {let jsonData JSON.parse(resultData)// 提问失败if (jsonData.header.code ! 0) {const data {code: jsonData.header.code,content: jsonData.header.message}this.emit(error, data)return}if (jsonData.header.code 0 jsonData.header.status 2) {this.ttsWS.close()this.setStatus(init)this.emit(message, {content: this.revertText,code: 0})this.emit(endRecord, {content: this.revertText,code: 0})}// 记录回答const textArr jsonData.payload.choices.text jsonData.payload.choices.text.map(item item.content) || []this.revertText this.revertText textArr.join()}on(event: string, fn: Function) {if (Array.isArray(event)) {for (let i 0, l event.length; i l; i) {this.on(event[i], fn)}} else {// 存在直接push, 不存在创建为空数组再push(this._events[event] || (this._events[event] [])).push(fn)}}once(event: string, fn: Function) {let _self this;function handler() {_self.off(event, handler);fn.apply(null, arguments);//emit里面调用时会给on方法传参}handler.fn fn;//off里面根据这个判断销毁事件this.on(event, handler);}off(event: string, fn: Function) {//不传参数表示清空所有if (!arguments.length) {this._events [];}//数组循环清空if (Array.isArray(event)) {for (let i 0, l event.length; i l; i) {this.off(event[i], fn)}}const cbs this._events[event];if (!cbs) {return;}//不传第二参表示清空某事件所有监听函数if (arguments.length 1) {this._events[event] null}let cb, i cbs.lengthwhile (i--) {cb cbs[i]if (cb fn || cb.fn fn) { //cb.fnfn用来移除once注册的事件cbs.splice(i, 1)break}}}emit(event: string, ...args: any[]) {console.log(args, typeof args)// 不存在event直接返回if (!this._events[event]) {return}let cbs [...this._events[event]];if (cbs) {for (let i 0, l cbs.length; i l; i) {try {cbs[i].apply(null, [...arguments].slice(1))} catch (e) {new Error(event handler for ${e})}}}} }不管你是想一次性接收到所有的内容还是想像官方一样一点一点的接收都能很方便的使用视图调用代码如下 const xfConfig reactive({appid: ,apisecret: ,apikey: , });function testXfSend() {if (!sendTest.content) {ElNotification.error({title: 请输入发送内容,});return;}const XfBot new XfUtil(xfConfig.appid, xfConfig.apikey, xfConfig.apisecret);sendTest.revert ;sendTest.loading true;XfBot.start(sendTest.content);XfBot.on(endRecord, (data) {console.log(回复内容, data.content);sendTest.loading false;sendTest.revert data.content;});// XfBot.on(message, (data) {});XfBot.on(error, (data) {sendTest.loading false;ElNotification.error({title: data.content,});}); }

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

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

相关文章

做外贸网络推广网站做国外贸易的网站

技巧:最后得到的是终结符组成的闭包 例题: 文法G[S]: S-->AB A-->aAb|ab B-->Bc|,求对应的语言 ①S-->(aAb|ab)(Bc|) ②我们可以观察到,无论A-->aAb还是A-->ab,都一定会同时出现ab,…

德阳高端网站建设电子商务和网站建设论文

学习上一篇文章之后,确定好JDK和环境变量都成功之后,我们来编写我们第一个java程序命名为HelloWorld.java。上一篇文章链接:JDK下载与环境变量的安装桌面上右击,新建一个文本文档用记事本打开文本文档编写如上图代码,注…

网站建设与管理专业实训室无锡网站制作推荐

Vue3i18n多语言动态国际化设置 前言一、 i18n 介绍二、插件安装三、i18n配置3.1 创建i18n对应文件夹/文件3.2 en-US.js3.3 zh-CN.js3.4 index.js 四、 mian.js 引入 i18n配置文件五、 组件内使用六、使用效果 前言 继续【如何给自己的网站添加中英文切换】一文之后&#xff0c…

织梦网站新闻列表调用商城手机网站制作

复原IP 地址 力扣原题链接 问题描述 有效 IP 地址正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 ‘.’ 分隔。 例如:“0.1.2.201” 和 “192.168.1.1” 是有效 IP 地址&#xff0c…

湖南建网站公司外贸营销网站建设工程

参考博客的解决方案: https://www.jianshu.com/p/148cf8c9571d 思路:通过活动监视器找到Microsoft word的程序启动地址,在前往-前往文件夹中输入地址,到程序所在的文件夹,双击启动一个新的word程序,将当前…

怎么自己做微网站吗做化妆品注册和注册的网站吗

测试覆盖率通常被用来衡量测试的充分性和完整性,从广义的角度来讲,测试覆盖率主要分为两大类,一类是面向项目的需求覆盖率,另一类是更偏向技术的代码覆盖率。 需求覆盖率 需求覆盖率是指测试对需求的覆盖程度,通常的做…

北京保障房建设网站网站做下载word

文章目录1. 题目信息2. 思路3. 代码1. 题目信息 合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。 示例:输入: [1->4->5,1->3->4,2->6 ] 输出: 1->1->2->3->4->4->5->6来源:力扣(…

海尔建设网站的目的企业网站优化培训

前言 (1)我能够正常访问GitHub,但是每次将代码提交到GitHub常常显示网络超时。这是因为提交是走的国内的网络,对GitHub访问会被进行限速。 (2)为了让小乌龟也拥有魔法,我们可以使用代理工具。注…

国外网站赏析android 不装插件 wordpress

requests.get 是 Python 中 requests 库的一个方法,用于发送 GET 请求。它有许多参数可以配置,以下是一些常见的参数: url:指定要发送 GET 请求的 URL。params:可选参数,用于向请求添加 URL 参数。data&…

网站与平台的开发区别网站备案 接电话

目录 题目解题思路具体代码题目 题目链接剑指offer:二维数组中的查找题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数&a…

网站建设 请示网站弹出广告gif出处

基于乌燕鸥算法优化的BP神经网络(预测应用) - 附代码 文章目录 基于乌燕鸥算法优化的BP神经网络(预测应用) - 附代码1.数据介绍2.乌燕鸥优化BP神经网络2.1 BP神经网络参数设置2.2 乌燕鸥算法应用 4.测试结果:5.Matlab代…

最好网站建设制作是那个网站网页优化

目录 Ribbon 简介 负载均衡 简介 负载均衡方式 服务端负载均衡 工作原理 特点 客户端负载均衡 工作原理 特点 对比 实现 负载均衡策略 切换负载均衡策略 定制负载均衡策略 超时与重试 单个服务配置 全局配置 服务调用 示例 Ribbon 简介 Ribbon 是 Netfli…

网站开发需要看什么书彭阳门户网站建设

一、背景与目标 随着新媒体的快速发展,营销人才需求旺盛,而具备新媒体营销能力的人才供给却相对不足。为了解决这一矛盾,本方案旨在构建一个新媒体营销教学模拟实训平台,帮助学生掌握新媒体营销的实际操作技能,提高就…

天津 网站建设家庭宽带做网站服务器吗

导读:本期主要介绍永磁同步电机复矢量电流调节器。针对内置式永磁同步电机d、q轴电流存在动态耦合的问题,在基于有效磁链概念得到IPMSM的复矢量数学模型,设计出相应的复矢量电流调节器,实现了d、q轴电流的动态解耦。通过仿真验证所…

中国建设银行官网的网站首页dw2021网页设计教程

一、简介 组合式api 1、 setup&#xff08;&#xff09; 组合式api的入口页面启动后&#xff0c;第一个自动执行的函数定义项目中所有的变量、方法所有的变量和方法&#xff0c;只有return出去&#xff0c;在页面视图中正常使用<template><!-- v-text的简写-->…

网站建设报告书范文可以做动效的网站

文章目录 预定义宏_ _func_ _是C语言的预定义标识符 #line和#error#pragma泛型选择&#xff08;C11&#xff09;参考 预定义宏 C标准规定了一些预定义宏&#xff1a; _ _func_ _是C语言的预定义标识符 C99 标准提供一个名为_ _func_ _的预定义标识符&#xff0c;它展开为一…

如何用凡科建设手机教学网站株洲网站开发

bash中通过变量中的内容获取对应的关联数组 Bash declare 手册&#xff1a; https://phoenixnap.com/kb/bash-declare 实际问题&#xff1a; 在 bash 中创建了多个关联数组&#xff0c;需要根据输入的值&#xff0c;获取不同的关联数组。 可以使用 if 进行多次判断&#xff…

建立个人博客网站有什么做美食的网站

eclipse中设置自动补齐代码 01 在window里找到preference 02 在preference里搜索content assist 03 在Java的content assist设置 设置为.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ 04 apply and close即可

网站建设与维护 目录网站到期查询备案

Socket 是网络协议栈暴露给编程人员的 API&#xff0c;相比复杂的计算机网络协议&#xff0c;API 对关键操作和配置数据进行了抽象&#xff0c;简化了程序编程。 本文讲述的 socket 内容源自 Linux man。本文主要对各 API 进行详细介绍&#xff0c;从而更好的理解 socket 编程。…

东莞网站建设哪个平台好wordpress装到哪里

STL内建了一些函数对象。分为:算数类函数对象,关系运算类函数对象&#xff0c;逻辑运算类仿函数。这些仿函数所产生的对象&#xff0c;用法和一般函数完全相同&#xff0c;当然我们还可以产生无名的临时对象来履行函数功能。使用内建函数对象&#xff0c;需要引入头文件 functi…