From 38dbe4b8e5ca7f9bc0508e1ba1bf878fd6d8c19c Mon Sep 17 00:00:00 2001 From: Heiner Lohaus Date: Mon, 22 Jan 2024 03:38:11 +0100 Subject: Improve CreateImagesBing Sort providers by category --- g4f/Provider/MyShell.py | 76 ------------------------------------------------- 1 file changed, 76 deletions(-) delete mode 100644 g4f/Provider/MyShell.py (limited to 'g4f/Provider/MyShell.py') diff --git a/g4f/Provider/MyShell.py b/g4f/Provider/MyShell.py deleted file mode 100644 index 145cc0bf..00000000 --- a/g4f/Provider/MyShell.py +++ /dev/null @@ -1,76 +0,0 @@ -from __future__ import annotations - -import time, json - -from ..typing import CreateResult, Messages -from .base_provider import AbstractProvider -from .helper import format_prompt -from ..webdriver import WebDriver, WebDriverSession, bypass_cloudflare - -class MyShell(AbstractProvider): - url = "https://app.myshell.ai/chat" - working = True - supports_gpt_35_turbo = True - supports_stream = True - - @classmethod - def create_completion( - cls, - model: str, - messages: Messages, - stream: bool, - proxy: str = None, - timeout: int = 120, - webdriver: WebDriver = None, - **kwargs - ) -> CreateResult: - with WebDriverSession(webdriver, "", proxy=proxy) as driver: - bypass_cloudflare(driver, cls.url, timeout) - - # Send request with message - data = { - "botId": "4738", - "conversation_scenario": 3, - "message": format_prompt(messages), - "messageType": 1 - } - script = """ -response = await fetch("https://api.myshell.ai/v1/bot/chat/send_message", { - "headers": { - "accept": "application/json", - "content-type": "application/json", - "myshell-service-name": "organics-api", - "visitor-id": localStorage.getItem("mix_visitorId") - }, - "body": '{body}', - "method": "POST" -}) -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; -} -content = ''; -chunk.value.split('\\n').forEach((line, index) => { - if (line.startsWith('data: ')) { - try { - const data = JSON.parse(line.substring('data: '.length)); - if ('content' in data) { - content += data['content']; - } - } catch(e) {} - } -}); -return content; -""" - while True: - chunk = driver.execute_script(script) - if chunk: - yield chunk - elif chunk != "": - break - else: - time.sleep(0.1) \ No newline at end of file -- cgit v1.2.3