summaryrefslogtreecommitdiffstats
path: root/g4f/Provider/MyShell.py
diff options
context:
space:
mode:
Diffstat (limited to 'g4f/Provider/MyShell.py')
-rw-r--r--g4f/Provider/MyShell.py76
1 files changed, 0 insertions, 76 deletions
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