From b9304965ecf3c0c1b934f331ca1c056467c45b8c Mon Sep 17 00:00:00 2001 From: Joseph Cheung Date: Fri, 24 Feb 2023 19:11:58 +0800 Subject: [PATCH] Update webapp.py --- searx/webapp.py | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/searx/webapp.py b/searx/webapp.py index bb430d897..5a91d446a 100755 --- a/searx/webapp.py +++ b/searx/webapp.py @@ -916,7 +916,12 @@ button.btn_more { var word_last=""; var lock_chat=1; - +function b64EncodeUnicode(str) { + return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, + function toSolidBytes(match, p1) { + return String.fromCharCode('0x' + p1); + })); +} function send_webchat(elem) { @@ -945,7 +950,7 @@ function send_webchat(elem) optionsweb = { method: "POST", headers: headers, - body: btoa(unescape(encodeURIComponent(JSON.stringify(prompt.data)))) + body: b64EncodeUnicode( JSON.stringify(prompt.data)) }; @@ -1018,7 +1023,7 @@ function send_chat(elem) const options = { method: "POST", headers: headers, - body: btoa(unescape(encodeURIComponent( JSON.stringify({ + body: b64EncodeUnicode( JSON.stringify({ "prompt": prompt, "max_tokens": 1000, "temperature": 0.9, @@ -1029,7 +1034,7 @@ function send_chat(elem) "echo": false, "logprobs": 0, "stream": true - }) ))) + }) ) }; word=word.replaceAll("\n\n","\n").replaceAll("\n\n","\n") @@ -1150,7 +1155,7 @@ function chatmore() const optionsMore = { method: "POST", headers: headers, - body: btoa(unescape(encodeURIComponent( JSON.stringify({ + body: b64EncodeUnicode( JSON.stringify({ "prompt": document.querySelector("#chat").innerHTML.replace(/.*?<\/a.*?>/g, '').replace(/]+>/g,"").replace(/\n\n/g,"\n") +"\n" + '以上是“''' + original_search_query + r'''”的网络知识。给出需要更多网络知识才能回答的,不含代词的完整独立问题,json数组格式["q1","q2","q3","q4"]:', "max_tokens": 1500, "temperature": 0.7, @@ -1161,7 +1166,7 @@ function chatmore() "echo": false, "logprobs": 0, "stream": false - }) ))) + }) ) }; if(document.querySelector("#chat_more").innerHTML != "") return fetch("https://search.kg/completions", optionsMore) @@ -1191,7 +1196,7 @@ text_offset = -1; const optionsIntro = { method: "POST", headers: headers, - body: btoa(unescape(encodeURIComponent( JSON.stringify({ + body: b64EncodeUnicode( JSON.stringify({ "prompt": "你是一个叫Charles的搜索引擎机器人,用户搜索的是“''' + original_search_query + r'''”有关的信息。\n不要假定搜索结果。\n用简体中文写一句语言幽默的、含有emoji的引入语。\n机器人:", "max_tokens": 1024, "temperature": 0.2, @@ -1202,7 +1207,7 @@ const optionsIntro = { "echo": false, "logprobs": 0, "stream": true - }) ))) + }) ) }; fetch("https://search.kg/completions", optionsIntro) .then((responseIntro) => { @@ -1221,7 +1226,7 @@ fetch("https://search.kg/completions", optionsIntro) const options = { method: "POST", headers: headers, - body: btoa(unescape(encodeURIComponent(JSON.stringify(prompt.data)))) + body: b64EncodeUnicode(JSON.stringify(prompt.data)) }; fetch("https://search.kg/completions", options) .then((response) => { @@ -1240,7 +1245,7 @@ fetch("https://search.kg/completions", optionsIntro) const optionsPlus = { method: "POST", headers: headers, - body: btoa(unescape(encodeURIComponent(JSON.stringify({ + body: b64EncodeUnicode(JSON.stringify({ "prompt": "围绕关键词 ''' + original_search_query + r''',结合你的知识总结归纳发表评论,可以用emoji,不得重复提及已有内容:\n" + document.querySelector("#chat").innerHTML.replace(/.*?<\/a.*?>/g, '').replace(/]+>/g,"").replace(/\n\n/g,"\n") +"\n", "max_tokens": 1500, "temperature": 0.7, @@ -1251,7 +1256,7 @@ fetch("https://search.kg/completions", optionsIntro) "echo": false, "logprobs": 0, "stream": true - })))) + })) }; fetch("https://search.kg/completions", optionsPlus) .then((responsePlusComment) => {