From d719860e2af8a825a9e2eaf6dc97c375ff535cbb Mon Sep 17 00:00:00 2001 From: Commenter123321 <36051603+Commenter123321@users.noreply.github.com> Date: Tue, 10 Oct 2023 14:47:41 +0200 Subject: make internet searching better --- g4f/gui/server/internet.py | 48 ++++++++++++++++++++++++++++++++++++---------- g4f/gui/server/provider.py | 4 +++- 2 files changed, 41 insertions(+), 11 deletions(-) (limited to 'g4f/gui') diff --git a/g4f/gui/server/internet.py b/g4f/gui/server/internet.py index 0d9636a3..75edb9cb 100644 --- a/g4f/gui/server/internet.py +++ b/g4f/gui/server/internet.py @@ -1,28 +1,56 @@ -from requests import get from datetime import datetime +from duckduckgo_search import DDGS + +ddgs = DDGS(timeout=20) + def search(internet_access, prompt): print(prompt) try: - if internet_access == False: + if not internet_access: return [] - search = get('https://ddg-api.herokuapp.com/search', params={ - 'query': prompt['content'], - 'limit': 3 - }) + results = duckduckgo_search(q=prompt) + + if not search: + return [] blob = '' - for index, result in enumerate(search.json()): - blob += f'[{index}] "{result["snippet"]}"\nURL:{result["link"]}\n\n' + for index, result in enumerate(results): + blob += f'[{index}] "{result["body"]}"\nURL:{result["href"]}\n\n' date = datetime.now().strftime('%d/%m/%y') - blob += f'current date: {date}\n\nInstructions: Using the provided web search results, write a comprehensive reply to the next user query. Make sure to cite results using [[number](URL)] notation after the reference. If the provided search results refer to multiple subjects with the same name, write separate answers for each subject. Ignore your previous response if any.' + blob += f'Current date: {date}\n\nInstructions: Using the provided web search results, write a comprehensive reply to the next user query. Make sure to cite results using [[number](URL)] notation after the reference. If the provided search results refer to multiple subjects with the same name, write separate answers for each subject. Ignore your previous response if any.' return [{'role': 'user', 'content': blob}] except Exception as e: - return [] \ No newline at end of file + print("Couldn't search DuckDuckGo:", e) + print(e.__traceback__.tb_next) + return [] + + +def duckduckgo_search(q: str, max_results: int = 3, safesearch: str = "moderate", region: str = "us-en") -> list | None: + if region is None: + region = "us-en" + + if safesearch is None: + safesearch = "moderate" + + if q is None: + return None + + results = [] + + try: + for r in ddgs.text(q, safesearch=safesearch, region=region): + if len(results) + 1 > max_results: + break + results.append(r) + except Exception as e: + print(e) + + return results diff --git a/g4f/gui/server/provider.py b/g4f/gui/server/provider.py index 286f881b..230b5f5f 100644 --- a/g4f/gui/server/provider.py +++ b/g4f/gui/server/provider.py @@ -1,6 +1,8 @@ import g4f +from g4f import BaseProvider -def get_provider(provider: str) -> g4f.Provider.BaseProvider: + +def get_provider(provider: str) -> BaseProvider | None: if isinstance(provider, str): print(provider) -- cgit v1.2.3 From 2c105cb5951792dae57a673381b17570801b3bfb Mon Sep 17 00:00:00 2001 From: Commenter123321 <36051603+Commenter123321@users.noreply.github.com> Date: Tue, 10 Oct 2023 14:53:50 +0200 Subject: fix provider thing in gui --- g4f/gui/server/backend.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'g4f/gui') diff --git a/g4f/gui/server/backend.py b/g4f/gui/server/backend.py index 8f4b529f..cf1f9428 100644 --- a/g4f/gui/server/backend.py +++ b/g4f/gui/server/backend.py @@ -40,7 +40,7 @@ class Backend_Api: def stream(): if provider: answer = g4f.ChatCompletion.create(model=model, - provider=provider, messages=messages, stream=True) + provider=g4f.Provider.ProviderUtils.convert.get(provider), messages=messages, stream=True) else: answer = g4f.ChatCompletion.create(model=model, messages=messages, stream=True) -- cgit v1.2.3 From 9239c5720002f31b67bdd1ee805e2cd9b528d085 Mon Sep 17 00:00:00 2001 From: Commenter123321 <36051603+Commenter123321@users.noreply.github.com> Date: Tue, 10 Oct 2023 15:11:17 +0200 Subject: fix provider thing in gui x2 --- g4f/gui/client/html/index.html | 6 +++++- g4f/gui/server/backend.py | 6 +++--- g4f/gui/server/provider.py | 7 +------ 3 files changed, 9 insertions(+), 10 deletions(-) (limited to 'g4f/gui') diff --git a/g4f/gui/client/html/index.html b/g4f/gui/client/html/index.html index bb472706..c15584b8 100644 --- a/g4f/gui/client/html/index.html +++ b/g4f/gui/client/html/index.html @@ -118,9 +118,13 @@
diff --git a/g4f/gui/server/backend.py b/g4f/gui/server/backend.py index cf1f9428..a76ca12b 100644 --- a/g4f/gui/server/backend.py +++ b/g4f/gui/server/backend.py @@ -33,17 +33,17 @@ class Backend_Api: conversation = request.json['meta']['content']['conversation'] prompt = request.json['meta']['content']['parts'][0] model = request.json['model'] - provider = get_provider(request.json.get('provider')) + provider = request.json.get('provider').split("g4f.Provider.")[1] messages = special_instructions[jailbreak] + conversation + search(internet_access, prompt) + [prompt] def stream(): if provider: answer = g4f.ChatCompletion.create(model=model, - provider=g4f.Provider.ProviderUtils.convert.get(provider), messages=messages, stream=True) + provider=get_provider(provider), messages=messages, stream=True) else: answer = g4f.ChatCompletion.create(model=model, - messages=messages, stream=True) + messages=messages, stream=True) for token in answer: yield token diff --git a/g4f/gui/server/provider.py b/g4f/gui/server/provider.py index 230b5f5f..11202d38 100644 --- a/g4f/gui/server/provider.py +++ b/g4f/gui/server/provider.py @@ -3,17 +3,12 @@ from g4f import BaseProvider def get_provider(provider: str) -> BaseProvider | None: - if isinstance(provider, str): print(provider) if provider == 'g4f.Provider.Auto': return None - if provider in g4f.Provider.ProviderUtils.convert: - return g4f.Provider.ProviderUtils.convert[provider] - - else: - return None + return g4f.Provider.ProviderUtils.convert.get(provider) else: return None -- cgit v1.2.3 From d3040b0c14cd6cb59d824bf7e700bc56f2aecc3d Mon Sep 17 00:00:00 2001 From: Commenter123321 <36051603+Commenter123321@users.noreply.github.com> Date: Tue, 10 Oct 2023 15:37:29 +0200 Subject: change discord icon to telegram icon on gui --- g4f/gui/client/html/index.html | 2 +- g4f/gui/client/js/chat.v2.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'g4f/gui') diff --git a/g4f/gui/client/html/index.html b/g4f/gui/client/html/index.html index c15584b8..f77dd910 100644 --- a/g4f/gui/client/html/index.html +++ b/g4f/gui/client/html/index.html @@ -79,7 +79,7 @@ Clear Conversations
- + telegram: @g4f_official
diff --git a/g4f/gui/client/js/chat.v2.js b/g4f/gui/client/js/chat.v2.js index e1faa6bb..63ec1351 100644 --- a/g4f/gui/client/js/chat.v2.js +++ b/g4f/gui/client/js/chat.v2.js @@ -144,7 +144,7 @@ const ask_gpt = async (message) => { chunk = new TextDecoder().decode(value); - if (chunk.includes(`
Date: Tue, 10 Oct 2023 15:54:07 +0200 Subject: what --- g4f/gui/client/js/chat.v2.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'g4f/gui') diff --git a/g4f/gui/client/js/chat.v2.js b/g4f/gui/client/js/chat.v2.js index 63ec1351..24f2e45b 100644 --- a/g4f/gui/client/js/chat.v2.js +++ b/g4f/gui/client/js/chat.v2.js @@ -144,7 +144,7 @@ const ask_gpt = async (message) => { chunk = new TextDecoder().decode(value); - if (chunk.includes(` { } // if text contains : - if (text.includes(`instead. Maintaining this website and API costs a lot of money`)) { + if (text.includes("instead. Maintaining this website and API costs a lot of money")) { document.getElementById(`gpt_${window.token}`).innerHTML = "An error occured, please reload / refresh cache and try again or use a differnet browser"; } @@ -547,7 +547,7 @@ colorThemes.forEach((themeOption) => { setTimeout(() => { ads_div = document.querySelector('.ads') - if (ads_div.getElementsByTagName("iframe").length == 0) { + if (ads_div != null && ads_div.getElementsByTagName("iframe").length == 0) { ads_div.removeChild(ads_div.querySelector('.sorry')) ads_div.innerHTML += ` -- cgit v1.2.3 From be41898736c80a33033e1cbc5ccbaebd8f5b23cf Mon Sep 17 00:00:00 2001 From: Commenter123321 <36051603+Commenter123321@users.noreply.github.com> Date: Tue, 10 Oct 2023 15:56:35 +0200 Subject: fix html --- g4f/gui/client/html/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'g4f/gui') diff --git a/g4f/gui/client/html/index.html b/g4f/gui/client/html/index.html index f77dd910..7825cf8c 100644 --- a/g4f/gui/client/html/index.html +++ b/g4f/gui/client/html/index.html @@ -121,7 +121,7 @@ - + -- cgit v1.2.3