From 8de44d1e41ff304a950659899a3b19b81b24f189 Mon Sep 17 00:00:00 2001 From: Concedo <39025047+LostRuins@users.noreply.github.com> Date: Mon, 30 Dec 2024 22:30:27 +0800 Subject: [PATCH] refactored some outputs --- koboldcpp.py | 52 +++++++++++++++++++++++++++++----------------------- 1 file changed, 29 insertions(+), 23 deletions(-) diff --git a/koboldcpp.py b/koboldcpp.py index c733c6bf6..ec4ddfbed 100644 --- a/koboldcpp.py +++ b/koboldcpp.py @@ -565,7 +565,12 @@ def exit_with_error(code, message, title="Error"): time.sleep(2) sys.exit(code) -def utfprint(str): +def utfprint(str, importance = 2): #0 = only debugmode, 1 = except quiet, 2 = always print + if args.debugmode < 1: + if importance==1 and (args.debugmode == -1 or args.quiet): + return + if importance==0: + return maxlen = 32000 if args.debugmode >= 1: maxlen = 64000 @@ -1285,18 +1290,26 @@ def websearch(query): import urllib.parse import urllib.request import difflib + import random from html.parser import HTMLParser from concurrent.futures import ThreadPoolExecutor num_results = 3 searchresults = [] - if args.debugmode != -1 and not args.quiet: - print("Performing new websearch...") + utfprint("Performing new websearch...",1) - def fetch_searched_webpage(url): + def fetch_searched_webpage(url, random_agent=False): + uagent = 'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)' + if random_agent: + agents = ["Mozilla/5.0 (Macintosh; Intel Mac OS X 13_2) Gecko/20100101 Firefox/114.0", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:133.0) Gecko/20100101 Firefox/133.0", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.1823.79 Safari/537.36 Edg/114.0.1823.79", + "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.5938.132 Safari/537.36"] + uagent = random.choice(agents) if args.debugmode: utfprint(f"WebSearch URL: {url}") try: - req = urllib.request.Request(url, headers={'User-Agent': 'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)'}) + req = urllib.request.Request(url, headers={'User-Agent': uagent}) with urllib.request.urlopen(req, timeout=15) as response: html_content = response.read().decode('utf-8', errors='ignore') return html_content @@ -1307,12 +1320,10 @@ def websearch(query): html_content = response.read().decode('utf-8', errors='ignore') return html_content except Exception as e: - if args.debugmode != -1 and not args.quiet: - print(f"Error fetching text from URL {url}: {e}") + utfprint(f"Error fetching text from URL {url}: {e}",1) return "" except Exception as e: - if args.debugmode != -1 and not args.quiet: - print(f"Error fetching text from URL {url}: {e}") + utfprint(f"Error fetching text from URL {url}: {e}",1) return "" def fetch_webpages_parallel(urls): with ThreadPoolExecutor() as executor: @@ -1389,13 +1400,15 @@ def websearch(query): search_url = f"https://html.duckduckgo.com/html/?q={encoded_query}" try: - search_html = fetch_searched_webpage(search_url) + search_html = fetch_searched_webpage(search_url, random_agent=True) parser = ExtractResultsParser() parser.feed(search_html) titles = parser.titles[:num_results] searchurls = parser.urls[:num_results] descs = parser.descs[:num_results] fetchedcontent = fetch_webpages_parallel(searchurls) + if len(descs)==0: + utfprint("No results found! Maybe something went wrong...",1) for i in range(len(descs)): # dive into the results to try and get even more details title = titles[i] @@ -1425,8 +1438,7 @@ def websearch(query): searchresults.append({"title":title,"url":url,"desc":desc,"content":pagedesc}) except Exception as e: - if args.debugmode != -1 and not args.quiet: - print(f"Error fetching URL {search_url}: {e}") + utfprint(f"Error fetching URL {search_url}: {e}",1) return "" if len(searchresults) > 0: websearch_lastquery = query @@ -1770,8 +1782,7 @@ class ServerRequestHandler(http.server.SimpleHTTPRequestHandler): global last_non_horde_req_time last_non_horde_req_time = time.time() - if (args.debugmode != -1 and not is_quiet) or args.debugmode >= 1: - utfprint("\nOutput: " + recvtxt) + utfprint("\nOutput: " + recvtxt,1) if api_format == 1: res = {"data": {"seqs": [recvtxt]}} @@ -2554,9 +2565,7 @@ Enter Prompt:
}}).encode()) return - is_quiet = args.quiet - if (args.debugmode != -1 and not is_quiet) or args.debugmode >= 1: - utfprint("\nInput: " + json.dumps(genparams)) + utfprint("\nInput: " + json.dumps(genparams),1) if args.foreground: bring_terminal_to_foreground() @@ -2577,8 +2586,7 @@ Enter Prompt:
self.end_headers(content_type='application/json') self.wfile.write(genresp) except Exception as ex: - if args.debugmode: - print(ex) + utfprint(ex,0) print("Generate: The response could not be sent, maybe connection was terminated?") handle.abort_generate() time.sleep(0.2) #short delay @@ -2604,8 +2612,7 @@ Enter Prompt:
self.end_headers(content_type='application/json') self.wfile.write(genresp) except Exception as ex: - if args.debugmode: - print(ex) + utfprint(ex,0) print("Generate Image: The response could not be sent, maybe connection was terminated?") time.sleep(0.2) #short delay return @@ -2618,8 +2625,7 @@ Enter Prompt:
self.end_headers(content_type='application/json') self.wfile.write(genresp) except Exception as ex: - if args.debugmode: - print(ex) + utfprint(ex,0) print("Transcribe: The response could not be sent, maybe connection was terminated?") time.sleep(0.2) #short delay return