Page({ data: { messages: [], // 用于存储消息内容 inputVal: '', // 用户输入的内容 }, // 生成唯一ID函数 generateUniqueId() { return 'msg_' + new Date().getTime() + Math.floor(Math.random() * 1000); }, // 发送用户消息 sendMessage() { const that = this; // 检查输入框内容是否为空 if (this.data.inputVal === '') { wx.showToast({ title: '请输入内容', icon: 'none' }); return; } // 添加用户消息,并生成唯一ID const userMessage = { id: this.generateUniqueId(), role: 'user', content: this.data.inputVal }; // 更新消息列表,并清空输入框内容 this.setData({ messages: [...this.data.messages, userMessage], inputVal: '' // 清空输入框内容 }); // 调用腾讯混元 API 获取回复,传递所有消息历史 wx.request({ url: 'https://yuanqi.tencent.com/openapi/v1/agent/chat/completions', // API地址 method: 'POST', data: { assistant_id: 'XEpMRFLn0yqm', // 替换为你的 assistant_id user_id: '', // 替换为实际的用户ID stream: false, messages: that.data.messages.map(msg => ({ role: msg.role, content: [ { type: 'text', text: msg.content } ] })) }, header: { 'X-Source': 'openapi', // 必需的X-Source头部 'Content-Type': 'application/json', 'Authorization': 'Bearer K8xhMFEsRpO00MKFKRUqeyideA0Ego3a' // 替换为你的API密钥 }, success(res) { if (res.data && res.data.choices && res.data.choices.length > 0) { const assistantMessage = { id: that.generateUniqueId(), // 为助手消息生成唯一ID role: 'assistant', content: res.data.choices[0].message.content }; // 添加助手消息 that.setData({ messages: [...that.data.messages, assistantMessage] }); } else { wx.showToast({ title: 'API返回异常', icon: 'none' }); } }, fail(response) { console.log('请求失败:', response); // 输出失败信息用于调试 wx.showToast({ title: '请求失败,请检查网络或API密钥', icon: 'none' }); } }); }, // 处理用户输入 bindKeyInput(e) { this.setData({ inputVal: e.detail.value }); } });