diff --git a/searx/webapp.py b/searx/webapp.py index 37d65daa5..0d7a62b1d 100755 --- a/searx/webapp.py +++ b/searx/webapp.py @@ -686,45 +686,48 @@ def search(): try: search_query, raw_text_query, _, _ = get_search_query_from_webapp(request.preferences, request.form) # search = Search(search_query) # without plugins - original_search_query = search_query.query - if "介绍一下" in search_query.query or "为什么" in search_query.query or "什么是" in search_query.query or "有什么" in search_query.query or "怎样" in search_query.query or "给我" in search_query.query or "如何" in search_query.query or "谁是" in search_query.query or "查询" in search_query.query or "告诉我" in search_query.query or "查一下" in search_query.query or "找一个" in search_query.query or "什么样" in search_query.query or "哪个" in search_query.query or "哪些" in search_query.query or "哪一个" in search_query.query or "哪一些" in search_query.query or len(search_query.query)>25: - if len(search_query.query)>5 and "谁是" in search_query.query: - search_query.query = search_query.query.replace("谁是","") - if len(search_query.query)>10 and not "谁是" in search_query.query: - prompt = search_query.query + "\n对以上问题生成一个Google搜索词:\n" - if "今年" in prompt or "今天" in prompt: - now = datetime.datetime.now() - prompt = prompt.replace("今年",now.strftime('%Y年')) - prompt = prompt.replace("今天",now.strftime('%Y年%m月%d日')) - gpt = "" - gpt_url = "https://api.openai.com/v1/engines/text-davinci-003/completions" - gpt_headers = { - "Authorization": "Bearer "+os.environ['GPTKEY'], - "Content-Type": "application/json", - "OpenAI-Organization": os.environ['GPTORG'] - } - gpt_data = { - "prompt": prompt, - "max_tokens": 256, - "temperature": 0.7, - "top_p": 1, - "frequency_penalty": 0, - "presence_penalty": 0, - "best_of": 1, - "echo": False, - "logprobs": 0, - "stream": False - } - gpt_response = requests.post(gpt_url, headers=gpt_headers, data=json.dumps(gpt_data)) - gpt_json = gpt_response.json() - if 'choices' in gpt_json: - gpt = gpt_json['choices'][0]['text'] - for word in gpt.split('\n'): - if word != "": - gpt = word.replace("\"","").replace("\'","").replace("“","").replace("”","").replace("‘","").replace("’","") - break - if gpt!="": - search_query.query = gpt + try: + original_search_query = search_query.query + if "介绍一下" in search_query.query or "为什么" in search_query.query or "什么是" in search_query.query or "有什么" in search_query.query or "怎样" in search_query.query or "给我" in search_query.query or "如何" in search_query.query or "谁是" in search_query.query or "查询" in search_query.query or "告诉我" in search_query.query or "查一下" in search_query.query or "找一个" in search_query.query or "什么样" in search_query.query or "哪个" in search_query.query or "哪些" in search_query.query or "哪一个" in search_query.query or "哪一些" in search_query.query or len(search_query.query)>25: + if len(search_query.query)>5 and "谁是" in search_query.query: + search_query.query = search_query.query.replace("谁是","") + if len(search_query.query)>10 and not "谁是" in search_query.query: + prompt = search_query.query + "\n对以上问题生成一个Google搜索词:\n" + if "今年" in prompt or "今天" in prompt: + now = datetime.datetime.now() + prompt = prompt.replace("今年",now.strftime('%Y年')) + prompt = prompt.replace("今天",now.strftime('%Y年%m月%d日')) + gpt = "" + gpt_url = "https://api.openai.com/v1/engines/text-davinci-003/completions" + gpt_headers = { + "Authorization": "Bearer "+os.environ['GPTKEY'], + "Content-Type": "application/json", + "OpenAI-Organization": os.environ['GPTORG'] + } + gpt_data = { + "prompt": prompt, + "max_tokens": 256, + "temperature": 0.7, + "top_p": 1, + "frequency_penalty": 0, + "presence_penalty": 0, + "best_of": 1, + "echo": False, + "logprobs": 0, + "stream": False + } + gpt_response = requests.post(gpt_url, headers=gpt_headers, data=json.dumps(gpt_data)) + gpt_json = gpt_response.json() + if 'choices' in gpt_json: + gpt = gpt_json['choices'][0]['text'] + for word in gpt.split('\n'): + if word != "": + gpt = word.replace("\"","").replace("\'","").replace("“","").replace("”","").replace("‘","").replace("’","") + break + if gpt!="": + search_query.query = gpt + except Exception as ee: + logger.exception(ee, exc_info=True) search = SearchWithPlugins(search_query, request.user_plugins, request) # pylint: disable=redefined-outer-name result_container = search.search()