From 053ec8ab0a34a242370c58a483db40caeb1b5bfc Mon Sep 17 00:00:00 2001 From: weixin_44463441 Date: Mon, 15 Jan 2024 11:58:00 +0800 Subject: [PATCH] Mon Jan 15 11:58:00 CST 2024 inscode --- src/components/content/index.vue | 1 + src/js/config.js | 4 +-- src/js/inscodeai.js | 46 +++++++++++++++++++------------- 3 files changed, 30 insertions(+), 21 deletions(-) diff --git a/src/components/content/index.vue b/src/components/content/index.vue index 09d8c20..0413493 100644 --- a/src/components/content/index.vue +++ b/src/components/content/index.vue @@ -39,6 +39,7 @@ + diff --git a/src/js/config.js b/src/js/config.js index 9ec479a..ea1d72c 100644 --- a/src/js/config.js +++ b/src/js/config.js @@ -9,8 +9,6 @@ const prompt_template = ` 以下为用户后续问题相关的内容: {context} - -请根据以上相关信息,回答用户问题。 ` // 欢迎语,用户打开时自动发送给用户 @@ -46,7 +44,7 @@ export default { "default_prompt": default_prompt, "max_request_len": "2048", "prompt_template": prompt_template, - "api_prompt_prefix":"结合上下文回答问题,如果问题不是技术问题,请直接回答不知道。\n问题为:", + "api_prompt_prefix":"结合上下文回答问题。\n问题为:", "show_profile_setting":false, "index_url": index_url, diff --git a/src/js/inscodeai.js b/src/js/inscodeai.js index 9a578c0..cad39d7 100644 --- a/src/js/inscodeai.js +++ b/src/js/inscodeai.js @@ -31,23 +31,28 @@ class InsCodeAI { const model = config?.model??'vicuna-13b-all-v1.1' const temperature = this.temperature??0.1 const top_p = config?.top_p??1.0 + const prefix = config?.prompt_prefix??'' let stop_key = config?.stop_key??null if (stop_key !== null && stop_key !== '') { stop_key = stop_key.split(';;') } const data = { - model: model, + // model: model, max_tokens: parseInt(max_tokens), temperature: parseFloat(temperature), top_p: parseFloat(top_p), stream: true, stop: stop_key, apikey: apiKey, - // prefix: prefix + bizParam: { + support: "ai" + }, + prefix: prefix } if (mode === 'chat') { - data.messages = Prompt.getPromptByChatMode(config, context, history) + + data.messages = JSON.stringify(Prompt.getPromptByChatMode(config, context, history)) } else { data.prompt = Prompt.getPromptByTemplate(config, context, prompt) } @@ -56,6 +61,7 @@ class InsCodeAI { method: 'POST', signal: signal, headers: { + 'accept': 'text/event-stream', 'Content-Type': 'application/json', }, body: JSON.stringify(data), @@ -63,7 +69,12 @@ class InsCodeAI { // if the server emits an error message, throw an exception // so it gets handled by the onerror callback below: if (msg && msg?.data) { - if (msg?.data === stop) { + const aiResult = decodeURIComponent(msg?.data??'') + + // console.info(aiResult) + + + if (aiResult === stop) { if (callback?.onclose) { callback?.onclose() } @@ -72,7 +83,6 @@ class InsCodeAI { } else { // console.info(msg.data) - const jsonData = JSON.parse(msg.data) // 和上面重复触发,只留一个 // if (jsonData.choices[0].finish_reason === 'stop') { @@ -81,20 +91,20 @@ class InsCodeAI { // } // return // } - let message = null - if (mode === 'chat') { - message = jsonData?.choices[0]?.message?.content - if (typeof message === 'undefined') { - message = jsonData?.choices[0]?.delta?.content - } - if (typeof message === 'undefined') { - message = '' - } - } else { - message = jsonData?.choices[0]?.text - } + // let message = msg?.data??'' + // if (mode === 'chat') { + // message = jsonData?.choices[0]?.message?.content + // if (typeof message === 'undefined') { + // message = jsonData?.choices[0]?.delta?.content + // } + // if (typeof message === 'undefined') { + // message = '' + // } + // } else { + // message = jsonData?.choices[0]?.text + // } - callback?.onmessage(message, true) + callback?.onmessage(aiResult, false) } } -- GitLab