diff options
author | Tekky <98614666+xtekky@users.noreply.github.com> | 2023-11-20 19:27:38 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-11-20 19:27:38 +0100 |
commit | e8d88c955f75f539dd71bd4b713e90094751161c (patch) | |
tree | 6d1ad2636abfd7ad0b4f5a59aa4630cf2a29723e /g4f/Provider/MyShell.py | |
parent | Merge pull request #1275 from egcash/patch-1 (diff) | |
parent | Merge branch 'main' into webdriver (diff) | |
download | gpt4free-e8d88c955f75f539dd71bd4b713e90094751161c.tar gpt4free-e8d88c955f75f539dd71bd4b713e90094751161c.tar.gz gpt4free-e8d88c955f75f539dd71bd4b713e90094751161c.tar.bz2 gpt4free-e8d88c955f75f539dd71bd4b713e90094751161c.tar.lz gpt4free-e8d88c955f75f539dd71bd4b713e90094751161c.tar.xz gpt4free-e8d88c955f75f539dd71bd4b713e90094751161c.tar.zst gpt4free-e8d88c955f75f539dd71bd4b713e90094751161c.zip |
Diffstat (limited to 'g4f/Provider/MyShell.py')
-rw-r--r-- | g4f/Provider/MyShell.py | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/g4f/Provider/MyShell.py b/g4f/Provider/MyShell.py index a1c8d335..5c9c4fe6 100644 --- a/g4f/Provider/MyShell.py +++ b/g4f/Provider/MyShell.py @@ -4,7 +4,8 @@ import time, json from ..typing import CreateResult, Messages from .base_provider import BaseProvider -from .helper import WebDriver, WebDriverSession, format_prompt +from .helper import format_prompt +from .webdriver import WebDriver, WebDriverSession class MyShell(BaseProvider): url = "https://app.myshell.ai/chat" @@ -20,10 +21,10 @@ class MyShell(BaseProvider): stream: bool, proxy: str = None, timeout: int = 120, - web_driver: WebDriver = None, + webdriver: WebDriver = None, **kwargs ) -> CreateResult: - with WebDriverSession(web_driver, "", proxy=proxy) as driver: + with WebDriverSession(webdriver, "", proxy=proxy) as driver: from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC @@ -52,15 +53,16 @@ response = await fetch("https://api.myshell.ai/v1/bot/chat/send_message", { "body": '{body}', "method": "POST" }) -window.reader = response.body.getReader(); +window._reader = response.body.pipeThrough(new TextDecoderStream()).getReader(); """ driver.execute_script(script.replace("{body}", json.dumps(data))) script = """ -chunk = await window.reader.read(); -if (chunk['done']) return null; -text = (new TextDecoder()).decode(chunk['value']); +chunk = await window._reader.read(); +if (chunk['done']) { + return null; +} content = ''; -text.split('\\n').forEach((line, index) => { +chunk['value'].split('\\n').forEach((line, index) => { if (line.startsWith('data: ')) { try { const data = JSON.parse(line.substring('data: '.length)); |