测试的时候正常填入了三个鉴权参数信息
Page({
/**
* 页面的初始数据
*/
data: {
httpUrl: 'wss://spark-api.xf-yun.com/v4.0/chat',
TEXT: '什么是离心泵',
// 地址必须填写,代表着大模型的版本号!!!!!!!!!!!!!!!!
modelDomain: '4.0Ultra',
// V1.1-V3.5动态获取,高于以上版本手动指定
APPID: '****', // 这里应该是字符串
// 控制台获取填写
APISecret: '***', // 这里应该是字符串
APIKey: '***', // 这里应该是字符串
sparkResult: '',
historyTextList: [],
// 历史会话信息,由于最大token12000,可以结合实际使用,进行移出
tempRes: '' // 临时答复保存
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
var self = this;
self.onWorker();
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {},
// 获取鉴权参数
getWebSocketUrl() {
const CryptoJS = require('crypto-js');
const base64 = require('base-64');
var self = this;
var httpUrlHost = self.data.httpUrl.substring(8, 28);
var httpUrlPath = self.data.httpUrl.substring(28);
var url = "wss://" + httpUrlHost + httpUrlPath;
console.log(url)
var host = "spark-api.xf-yun.com";
var apiKeyName = "api_key";
var date = new Date().toGMTString();
var algorithm = "hmac-sha256";
var headers = "host date request-line";
var signatureOrigin = "host: ".concat(host, "\ndate: ").concat(date, "\nGET ").concat(httpUrlPath, " HTTP/1.1");
var signatureSha = CryptoJS.HmacSHA256(signatureOrigin, self.data.APISecret);
var signature = CryptoJS.enc.Base64.stringify(signatureSha);
var authorizationOrigin = apiKeyName + "=\"" + self.data.APIKey + "\",algorithm=\"" + algorithm + "\",headers=\"" + headers + "\",signature=\"" + signature + "\"";
var authorization = base64.encode(authorizationOrigin);
url = url + "?authorization=" + authorization + "&date=" + encodeURI(date) + "&host=" + host;
console.log(url)
return url; // 主要是返回地址
},
/**
* 创建WebSocket连接
*/
onWorker: function () {
const self = this;
// 发送消息参数
var params = {
"header": {
"app_id": self.data.APPID
},
"parameter": {
"chat": {
"domain": "4.0Ultra",
"temperature": 0.5,
"max_tokens": 4096
}
},
"payload": {
"message": {
"text": [
{"role":"system","content":"你是一个设备专家,请回答用户的问题。"} ,
{"role": "user", "content": "你是谁"} ,
{"role": "assistant", "content": self.data.historyTextList} ]
}
}
}
// 根据文档要求 历史对话添加参数
self.data.historyTextList.push({
"role": "user",
"content": self.data.TEXT
});
// 获取webscoket 链接地址
let url = this.getWebSocketUrl();
console.log(url);
// 初始化
wx.connectSocket({
url: url,
success(res) {
console.log('success', res); // 修正分号
},
fail(res) {
console.log('fail', res)
}
})
// 连接成功
wx.onSocketOpen(function (res) {
console.log("webscoket 链接成功!");
console.log(res);
console.log(params);
wx.sendSocketMessage({
data: JSON.stringify(params)
})
})
// 接收数据
wx.onSocketMessage(function (data) {
console.log(data);
var objData = JSON.parse(data.data);
console.log(objData);
})
// 连接失败
wx.onSocketError(function () {
console.log('websocket连接失败!');
})
// 断开连接
wx.onSocketClose(function (res) {
console.log('WebSocket 已关闭!')
})
},
})

我这边也是,python后端就没问题