调用讯飞火星AI大模型WebAPI

调用讯飞火星AI大模型

记录一次调用讯飞AI大模型的过程
官方文档
首先,去官网申请资格,获得必要秘钥等
再编写url,该url存在编码要求,具体看官网url编写
具体代码如下:

 getWebsocketUrl() {return new Promise((resolve, reject) => {var apiKey = API_KEYvar apiSecret = API_SECRETvar url = 'ws://spark-api.xf-yun.com/v3.1/chat'var host = location.hostvar date = new Date().toGMTString()var algorithm = 'hmac-sha256'var headers = 'host date request-line'var signatureOrigin = `host: ${host}\ndate: ${date}\nGET /v3.1/chat HTTP/1.1`var 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}`console.log(url)resolve(url)})},

再就是参数,跟官网要求配置相同

 var params = {header: {app_id: APPID// "uid": uid},parameter: {chat: {// 指定访问的领域,general指向V1.5版本,generalv2指向V2版本,generalv3指向V3版本 。// 注意:不同的取值对应的url也不一样!domain: 'generalv3',// 核采样阈值。用于决定结果随机性,取值越高随机性越强即相同的问题得到的不同答案的可能性越高temperature: 0.5,// 模型回答的tokens的最大长度max_tokens: 1024}},payload: {message: {text: this.msgStore}}}

注意要转json
最后是请求函数

async sendRequestToWebSocket(url) {return new Promise((resolve, reject) => {const socket = new WebSocket(url)// 监听WebSocket的open事件socket.addEventListener('open', () => {console.log('WebSocket已连接')// socket.send(JSON.stringify(requestPayload));socket.send(this.creatParam())})// 监听WebSocket的消息事件socket.addEventListener('message', (event) => {const serverResponse = JSON.parse(event.data)//这里状态码1为继续,2为结束,只的是本次请求结束if (serverResponse.header.code === 0 && serverResponse.payload && serverResponse.header.status != 2) {} else if (serverResponse.header.code === 0 && serverResponse.payload && serverResponse.header.status === 2) } else {reject(new Error(`WebSocket服务端返回错误: ${serverResponse.header.message}`))}})// 监听WebSocket的close和error事件以进行异常处理socket.addEventListener('close', () => {console.log('WebSocket已关闭')}) // 使用远程用户的样式(蓝色气泡)})socket.addEventListener('error', (error) => {reject(error)socket.close()})})},

这个接口返回的数据值得讲一下
在这里插入图片描述
code成功都是0,而最后一次返回数据status为2,第一次为0,中间为1
在这里插入图片描述
在这里插入图片描述
具体其余参数如文档所示,本次并未使用
在这里插入图片描述
最后就是处理返回数据,要注意的是数据是分几次返回的,需要按照一定需求拼接。
一下本次功能实现效果,较为简约
在这里插入图片描述

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

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

相关文章

掘根宝典之C++深复制与浅复制(复制构造函数,默认复制构造函数)

到目前为止我们已经学了构造函数,默认构造函数,析构函数:http://t.csdnimg.cn/EOQxx 转换函数,转换构造函数:http://t.csdnimg.cn/kiHo6 友元函数:http://t.csdnimg.cn/To8Tj 接下来我们来学习一个新函数…

部署JForum2过程。

居然用了两天时间,才把JForum2部署成功。走了一些弯路,主要原因是想当然,以为jdk和tomcat,应该向下兼容,所以就随便选的版本。 一、jdk-17、apache-tomcat-10.1.18-windows-x64,部署完jforum-2.8.2.war,改…

PWR电源控制

PWR电源 PWR简介 PWR(Power Control)电源控制 PWR负责管理STM32内部的电源供电部分,可以实现可编程电压监测器和低功耗模式的功能 可编程电压监测器(PVD)可以监控VDD电源电压,当VDD下降到PVD阀值以下或上…

MATLAB|【免费】高比例可再生能源电力系统的调峰成本量化与分摊模型

目录 主要内容 部分代码 结果一览 下载链接 主要内容 程序复现文献《高比例可再生能源电力系统的调峰成本量化与分摊模型》,从净负荷波动的角度出发,建立了调峰成本的量化与分摊模型,构造了无调峰需求的替代场景,将…

山东:优化提升恶劣天气高影响路段保障工作

2023年9月1日,山东省气象局联合省公安厅、省交通运输厅联合印发《2023年山东省恶劣天气高影响路段优化提升气象保障工作方案》(以下简称《方案》),扎实推进恶劣天气高影响路段优化提升气象保障工作,为公路网安全畅通提…

scIMC:scRNA-seq插补方法基准

在scRNA-seq中一个主要的挑战即为“dropout”事件,它扭曲了基因表达,显著影响了单细胞转录组的下游分析。为了解决这个问题,已经做了很多努力,并开发了几种基于模型和基于深度学习的scRNA-seq插补方法。但是,目前还缺乏…

C++ //练习 6.11 编写并验证你自己的reset函数,使其作用于引用类型的参数。

C Primer(第5版) 练习 6.11 练习 6.11 编写并验证你自己的reset函数,使其作用于引用类型的参数。 #环境:Linux Ubuntu(云服务器) 工具:vim 代码块 /**************************************…

前端秘法引言(配置vscode, 以及html的基础)

目录 一.配置环境vscode 二.配置插件 三.vscode的实用小技巧 四.标题段落换行标签 五.格式化标签 一.配置环境vscode vscode官网https://code.visualstudio.com/ 点击右上角的download 根据不同的操作系统进行下载安装,我这里选的是Windows x64 安装好后打开,点击左上角的…

sqlmap 使用笔记(kali环境)

sqlmap使用 kali环境 -u或–url 直接扫描单个路径 //如果需要登录要有cookie sqlmap -u "http://10.0.0.6:8080/vulnerabilities/sqli/?id1" --cookie"PHPSESSIDisgvp2rv4uts46jbkb9bouq6ir; securitylow"-m 文件中保存多个url,工具会依次扫…

Linux中signal/kill/raise/abort函数(信号函数)

signal函数: 函数作用:注册信号捕捉函数 函数原型: typedef void (*sighandler_t)(int); sighandler_t signal(int signum, sighandler_t handler); 函数参数: signum:信号编号handler:信号处理函数 测试:给没有读…

【开源】JAVA+Vue.js实现农村物流配送系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 系统登录、注册界面2.2 系统功能2.2.1 快递信息管理:2.2.2 位置信息管理:2.2.3 配送人员分配:2.2.4 路线规划:2.2.5 个人中心:2.2.6 退换快递处理:…

C语言:详解操作符(下)

上一篇链接:C语言:详解操作符(上)摘要: 在上篇文章中,我们已经讲过位操作符等涉及二进制的操作符,这些有助于帮助我们后期理解数据如何在计算机中运算并存储,接下来本篇将更多的讲述…