使用仓库中提供的实例代码无法接入大模型,按照视频操作步骤以及同时也开通模型以及生成了key
在发送请求会得到两个错误 一个跨域问题,还有一个是403连接不上服务,通过查询阿里通义千问2-开源版-1.5B文档,发现请求的接口参数发生了改变,同时没有了input这个内容。
于是对请求部分的代码进行了修改
对代码进行测试,发现首次请求是200成功的
但是发送数据请求的状态码是500 请求失败
于是查看了 Preview,给出的error信息是:An system error has occurred, please try again later.
附加上完成的js代码
<script setup> import Nav from "@/components/Nav.vue"; import {onMounted, ref} from "vue"; const activeHelp = ref(0) const messageBoxEl = ref(); const checkHelpPanel = (value) => { activeHelp.value = value; setTimeout(() => { toMessageBottom() }) } const toMessageBottom = () => { if(messageBoxEl.value){ messageBoxEl.value.scrollTop = messageBoxEl.value.scrollHeight } } const docList = ref([ { title: "electron 的下载electron 的下载electron 的下载", }, { title: "electron 的下载", }, { title: "electron 的安装", }, { title: "electron 的入门", }, { title: "electron 的放弃", }, { title: "Java 的下载", }, { title: "Java 的安装", }, { title: "Java 的入门", }, { title: "Java 的放弃", }, { title: "Vue 的下载", }, { title: "Vue 的安装", }, { title: "Vue 的入门", }, { title: "Vue 的放弃", }, ]) const currentDocInfo = ref("") const currentDocTitle = ref("") const editorBoxEl = ref(); const saveCurrentDoc = () => { console.log("文档保存按钮被点击") } onMounted(()=>{ // editorBoxEl.value.setAttribute('contenteditable',"true") const { createOpenEditor } = window.Doc; // 创建编辑器 const editor = createOpenEditor(editorBoxEl.value, { input: {}, image: { isCaptureImageURL() { return false; }, }, }); // 设置内容 editor.setDocument('text/lake', ''); // 监听内容变动 editor.on('contentchange', () => { console.info(editor.getDocument('text/lake')); }); }) const isMessageLoading = ref(false) const questionMessage = ref("") const aiMessageList = ref([ { role: "system", content: "你是一个资深的前端开发工程师,你需要根据用户提出的问题,进行回答" }, { role: "assistant", content: "快来向我提问吧" }, ]) const toAi = (messageList) => { return fetch("https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions", { headers: { "Content-Type": "application/json", "Accept": "text/event-stream", "Authorization": "Bearer sk-xxxxxxxxxxxxxxxxxxxxx", }, method: "POST", body: JSON.stringify({ model: "qwen2-1.5b-instruct", messages: messageList, }), }); }; const sendToQuestion = () => { console.log("点击发送按钮") if (questionMessage.value === "" || isMessageLoading.value) { return; } isMessageLoading.value = true; aiMessageList.value.push({ role: "user", content: questionMessage.value }) const messageList = [...aiMessageList.value] aiMessageList.value.push({ role: "assistant", content: "" }); questionMessage.value = ""; toAi(messageList).then(res => { if (res.ok && typeof res.body.getReader === 'function') { const reader = res.body.getReader(); reader.read().then(function read({done, value}) { if (done) { toMessageBottom(); isMessageLoading.value = false; console.log("数据接收完成"); return; } // value const data = (new TextDecoder()).decode(value); const match = data.match(/data:\s*(\{.*\})/); const jsonString = match[1]; const obj = JSON.parse(jsonString); aiMessageList.value[aiMessageList.value.length - 1].content = obj.output.text; toMessageBottom(); reader.read().then(read) }) } }) } const translateInput = ref("慕课网(IMOOC)是IT技能学习平台。慕课网(IMOOC)课程涉及JAVA、前端、Python、大数据等60类主流技术语言,覆盖了面试就业、职业成长、自我提升等需求场景,帮助用户实现从技能提升到岗位提升的能力闭环。") const translateResult = ref("") const translate = () => { console.log("点击翻译按钮") toAi([ { role: "system", content: "你是一个资深的英语教师,接下来的所有内容,不是直接回答用户,而是返回问题的英语翻译" }, { role: "user", content: `"${translateInput.value}"的英语` // content:translateInput.value } ]).then(res => { if (res.ok && typeof res.body.getReader === 'function') { const reader = res.body.getReader(); reader.read().then(function read({done, value}) { if (done) { toMessageBottom(); isMessageLoading.value = false; console.log("数据接收完成"); return; } // value const data = (new TextDecoder()).decode(value); const match = data.match(/data:\s*(\{.*\})/); const jsonString = match[1]; const obj = JSON.parse(jsonString); translateResult.value = obj.output.text; toMessageBottom(); reader.read().then(read) }) } }) } </script>
伫候佳音