summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authort.me/xtekky <98614666+xtekky@users.noreply.github.com>2023-04-20 16:34:19 +0200
committert.me/xtekky <98614666+xtekky@users.noreply.github.com>2023-04-20 16:34:19 +0200
commita485cfb180094f14b3fe27ea218d2890033768a3 (patch)
tree8cf4b2f08fb79271a9dc30a0f8843c5561c5d9c9
parentora.sh (diff)
downloadgpt4free-a485cfb180094f14b3fe27ea218d2890033768a3.tar
gpt4free-a485cfb180094f14b3fe27ea218d2890033768a3.tar.gz
gpt4free-a485cfb180094f14b3fe27ea218d2890033768a3.tar.bz2
gpt4free-a485cfb180094f14b3fe27ea218d2890033768a3.tar.lz
gpt4free-a485cfb180094f14b3fe27ea218d2890033768a3.tar.xz
gpt4free-a485cfb180094f14b3fe27ea218d2890033768a3.tar.zst
gpt4free-a485cfb180094f14b3fe27ea218d2890033768a3.zip
-rw-r--r--unfinished/bard/README.md2
-rw-r--r--unfinished/bard/__init__.py (renamed from experimental/bard/__init__.py)0
-rw-r--r--unfinished/bard/typings.py (renamed from experimental/bard/typings.py)0
-rw-r--r--unfinished/bing/README.md2
-rw-r--r--unfinished/bing/__ini__.py (renamed from experimental/bing/__ini__.py)0
-rw-r--r--unfinished/gptbz/README.md4
-rw-r--r--unfinished/gptbz/__init__.py31
-rw-r--r--unfinished/openai/README.md2
-rw-r--r--unfinished/openai/__ini__.py (renamed from experimental/openai/__ini__.py)0
-rw-r--r--unfinished/openprompt/README.md5
-rw-r--r--unfinished/openprompt/create.py64
-rw-r--r--unfinished/openprompt/mail.py109
-rw-r--r--unfinished/openprompt/main.py37
-rw-r--r--unfinished/openprompt/test.py7
-rw-r--r--unfinished/sqlchat/README.md3
-rw-r--r--unfinished/sqlchat/__init__.py29
-rw-r--r--unfinished/theb.ai/README.md3
-rw-r--r--unfinished/theb.ai/__init__.py57
18 files changed, 355 insertions, 0 deletions
diff --git a/unfinished/bard/README.md b/unfinished/bard/README.md
new file mode 100644
index 00000000..67e8645c
--- /dev/null
+++ b/unfinished/bard/README.md
@@ -0,0 +1,2 @@
+to do:
+- code refractoring \ No newline at end of file
diff --git a/experimental/bard/__init__.py b/unfinished/bard/__init__.py
index 2b26997f..2b26997f 100644
--- a/experimental/bard/__init__.py
+++ b/unfinished/bard/__init__.py
diff --git a/experimental/bard/typings.py b/unfinished/bard/typings.py
index 69239762..69239762 100644
--- a/experimental/bard/typings.py
+++ b/unfinished/bard/typings.py
diff --git a/unfinished/bing/README.md b/unfinished/bing/README.md
new file mode 100644
index 00000000..67e8645c
--- /dev/null
+++ b/unfinished/bing/README.md
@@ -0,0 +1,2 @@
+to do:
+- code refractoring \ No newline at end of file
diff --git a/experimental/bing/__ini__.py b/unfinished/bing/__ini__.py
index 38ef55eb..38ef55eb 100644
--- a/experimental/bing/__ini__.py
+++ b/unfinished/bing/__ini__.py
diff --git a/unfinished/gptbz/README.md b/unfinished/gptbz/README.md
new file mode 100644
index 00000000..05bc2770
--- /dev/null
+++ b/unfinished/gptbz/README.md
@@ -0,0 +1,4 @@
+https://chat.gpt.bz
+
+to do:
+- code refractoring \ No newline at end of file
diff --git a/unfinished/gptbz/__init__.py b/unfinished/gptbz/__init__.py
new file mode 100644
index 00000000..6762b4ab
--- /dev/null
+++ b/unfinished/gptbz/__init__.py
@@ -0,0 +1,31 @@
+import asyncio
+import websockets
+
+from json import dumps, loads
+
+async def test():
+ async with websockets.connect('wss://chatgpt.func.icu/conversation+ws') as wss:
+
+ await wss.send(dumps(separators=(',', ':'), obj = {
+ 'content_type':'text',
+ 'engine':'chat-gpt',
+ 'parts':['hello world'],
+ 'options':{}
+ }
+ ))
+
+ ended = None
+
+ while not ended:
+ try:
+ response = await wss.recv()
+ json_response = loads(response)
+ ended = json_response.get('eof')
+
+ if not ended:
+ print(json_response['content']['parts'][0])
+
+ except websockets.ConnectionClosed:
+ break
+
+asyncio.run(test()) \ No newline at end of file
diff --git a/unfinished/openai/README.md b/unfinished/openai/README.md
new file mode 100644
index 00000000..67e8645c
--- /dev/null
+++ b/unfinished/openai/README.md
@@ -0,0 +1,2 @@
+to do:
+- code refractoring \ No newline at end of file
diff --git a/experimental/openai/__ini__.py b/unfinished/openai/__ini__.py
index b24184c6..b24184c6 100644
--- a/experimental/openai/__ini__.py
+++ b/unfinished/openai/__ini__.py
diff --git a/unfinished/openprompt/README.md b/unfinished/openprompt/README.md
new file mode 100644
index 00000000..489d054a
--- /dev/null
+++ b/unfinished/openprompt/README.md
@@ -0,0 +1,5 @@
+https://openprompt.co/
+
+to do:
+- finish integrating email client
+- code refractoring \ No newline at end of file
diff --git a/unfinished/openprompt/create.py b/unfinished/openprompt/create.py
new file mode 100644
index 00000000..6ccb66f4
--- /dev/null
+++ b/unfinished/openprompt/create.py
@@ -0,0 +1,64 @@
+from requests import post, get
+from json import dumps
+#from mail import MailClient
+from time import sleep
+from re import findall
+
+html = get('https://developermail.com/mail/')
+print(html.cookies.get('mailboxId'))
+email = findall(r'mailto:(.*)">', html.text)[0]
+
+headers = {
+ 'apikey': 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InVzanNtdWZ1emRjcnJjZXVobnlqIiwicm9sZSI6ImFub24iLCJpYXQiOjE2NzgyODYyMzYsImV4cCI6MTk5Mzg2MjIzNn0.2MQ9Lkh-gPqQwV08inIgqozfbYm5jdYWtf-rn-wfQ7U',
+ 'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36',
+ 'x-client-info': '@supabase/auth-helpers-nextjs@0.5.6',
+}
+
+json_data = {
+ 'email' : email,
+ 'password': 'T4xyt4Yn6WWQ4NC',
+ 'data' : {},
+ 'gotrue_meta_security': {},
+}
+
+response = post('https://usjsmufuzdcrrceuhnyj.supabase.co/auth/v1/signup', headers=headers, json=json_data)
+print(response.json())
+
+# email_link = None
+# while not email_link:
+# sleep(1)
+
+# mails = mailbox.getmails()
+# print(mails)
+
+
+quit()
+
+url = input("Enter the url: ")
+response = get(url, allow_redirects=False)
+
+# https://openprompt.co/#access_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJhdXRoZW50aWNhdGVkIiwiZXhwIjoxNjgyMjk0ODcxLCJzdWIiOiI4NWNkNTNiNC1lZTUwLTRiMDQtOGJhNS0wNTUyNjk4ODliZDIiLCJlbWFpbCI6ImNsc2J5emdqcGhiQGJ1Z2Zvby5jb20iLCJwaG9uZSI6IiIsImFwcF9tZXRhZGF0YSI6eyJwcm92aWRlciI6ImVtYWlsIiwicHJvdmlkZXJzIjpbImVtYWlsIl19LCJ1c2VyX21ldGFkYXRhIjp7fSwicm9sZSI6ImF1dGhlbnRpY2F0ZWQiLCJhYWwiOiJhYWwxIiwiYW1yIjpbeyJtZXRob2QiOiJvdHAiLCJ0aW1lc3RhbXAiOjE2ODE2OTAwNzF9XSwic2Vzc2lvbl9pZCI6ImY4MTg1YTM5LTkxYzgtNGFmMy1iNzAxLTdhY2MwY2MwMGNlNSJ9.UvcTfpyIM1TdzM8ZV6UAPWfa0rgNq4AiqeD0INy6zV8&expires_in=604800&refresh_token=_Zp8uXIA2InTDKYgo8TCqA&token_type=bearer&type=signup
+
+redirect = response.headers.get('location')
+access_token = redirect.split('&')[0].split('=')[1]
+refresh_token = redirect.split('&')[2].split('=')[1]
+
+supabase_auth_token = dumps([access_token, refresh_token, None, None, None], separators=(',', ':'))
+print(supabase_auth_token)
+
+cookies = {
+ 'supabase-auth-token': supabase_auth_token
+}
+
+json_data = {
+ 'messages': [
+ {
+ 'role': 'user',
+ 'content': 'how do I reverse a string in python?'
+ }
+ ]
+}
+
+response = post('https://openprompt.co/api/chat2', cookies=cookies, json=json_data, stream=True)
+for chunk in response.iter_content(chunk_size=1024):
+ print(chunk) \ No newline at end of file
diff --git a/unfinished/openprompt/mail.py b/unfinished/openprompt/mail.py
new file mode 100644
index 00000000..082ac9fb
--- /dev/null
+++ b/unfinished/openprompt/mail.py
@@ -0,0 +1,109 @@
+import requests
+import email
+
+class MailClient:
+
+ def __init__(self):
+ self.username = None
+ self.token = None
+ self.raw = None
+ self.mailids = None
+ self.mails = None
+ self.mail = None
+
+ def create(self, force=False):
+ headers = {
+ 'accept': 'application/json',
+ }
+
+ if self.username:
+ pass
+ else:
+ self.response = requests.put(
+ 'https://www.developermail.com/api/v1/mailbox', headers=headers)
+ self.response = self.response.json()
+ self.username = self.response['result']['name']
+ self.token = self.response['result']['token']
+
+ return {'username': self.username, 'token': self.token}
+
+ def destroy(self):
+ headers = {
+ 'accept': 'application/json',
+ 'X-MailboxToken': self.token,
+ }
+ self.response = requests.delete(
+ f'https://www.developermail.com/api/v1/mailbox/{self.username}', headers=headers)
+ self.response = self.response.json()
+ self.username = None
+ self.token = None
+ return self.response
+
+ def newtoken(self):
+ headers = {
+ 'accept': 'application/json',
+ 'X-MailboxToken': self.token,
+ }
+ self.response = requests.put(
+ f'https://www.developermail.com/api/v1/mailbox/{self.username}/token', headers=headers)
+ self.response = self.response.json()
+ self.token = self.response['result']['token']
+ return {'username': self.username, 'token': self.token}
+
+ def getmailids(self):
+ headers = {
+ 'accept': 'application/json',
+ 'X-MailboxToken': self.token,
+ }
+
+ self.response = requests.get(
+ f'https://www.developermail.com/api/v1/mailbox/{self.username}', headers=headers)
+ self.response = self.response.json()
+ self.mailids = self.response['result']
+ return self.mailids
+
+ def getmails(self, mailids: list = None):
+ headers = {
+ 'accept': 'application/json',
+ 'X-MailboxToken': self.token,
+ 'Content-Type': 'application/json',
+ }
+
+ if mailids is None:
+ mailids = self.mailids
+
+ data = str(mailids)
+
+ self.response = requests.post(
+ f'https://www.developermail.com/api/v1/mailbox/{self.username}/messages', headers=headers, data=data)
+ self.response = self.response.json()
+ self.mails = self.response['result']
+ return self.mails
+
+ def getmail(self, mailid: str, raw=False):
+ headers = {
+ 'accept': 'application/json',
+ 'X-MailboxToken': self.token,
+ }
+ self.response = requests.get(
+ f'https://www.developermail.com/api/v1/mailbox/{self.username}/messages/{mailid}', headers=headers)
+ self.response = self.response.json()
+ self.mail = self.response['result']
+ if raw is False:
+ self.mail = email.message_from_string(self.mail)
+ return self.mail
+
+ def delmail(self, mailid: str):
+ headers = {
+ 'accept': 'application/json',
+ 'X-MailboxToken': self.token,
+ }
+ self.response = requests.delete(
+ f'https://www.developermail.com/api/v1/mailbox/{self.username}/messages/{mailid}', headers=headers)
+ self.response = self.response.json()
+ return self.response
+
+
+client = MailClient()
+client.newtoken()
+print(client.getmails()) \ No newline at end of file
diff --git a/unfinished/openprompt/main.py b/unfinished/openprompt/main.py
new file mode 100644
index 00000000..2fa4508e
--- /dev/null
+++ b/unfinished/openprompt/main.py
@@ -0,0 +1,37 @@
+import requests
+
+cookies = {
+ 'supabase-auth-token': '["eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJhdXRoZW50aWNhdGVkIiwiZXhwIjoxNjgyMjk1NzQyLCJzdWIiOiJlOGExOTdiNS03YTAxLTQ3MmEtODQ5My1mNGUzNTNjMzIwNWUiLCJlbWFpbCI6InFlY3RncHZhamlibGNjQGJ1Z2Zvby5jb20iLCJwaG9uZSI6IiIsImFwcF9tZXRhZGF0YSI6eyJwcm92aWRlciI6ImVtYWlsIiwicHJvdmlkZXJzIjpbImVtYWlsIl19LCJ1c2VyX21ldGFkYXRhIjp7fSwicm9sZSI6ImF1dGhlbnRpY2F0ZWQiLCJhYWwiOiJhYWwxIiwiYW1yIjpbeyJtZXRob2QiOiJvdHAiLCJ0aW1lc3RhbXAiOjE2ODE2OTA5NDJ9XSwic2Vzc2lvbl9pZCI6IjIwNTg5MmE5LWU5YTAtNDk2Yi1hN2FjLWEyMWVkMTkwZDA4NCJ9.o7UgHpiJMfa6W-UKCSCnAncIfeOeiHz-51sBmokg0MA","RtPKeb7KMMC9Dn2fZOfiHA",null,null,null]',
+}
+
+headers = {
+ 'authority': 'openprompt.co',
+ 'accept': '*/*',
+ 'accept-language': 'en,fr-FR;q=0.9,fr;q=0.8,es-ES;q=0.7,es;q=0.6,en-US;q=0.5,am;q=0.4,de;q=0.3',
+ 'content-type': 'application/json',
+ # 'cookie': 'supabase-auth-token=%5B%22eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJhdXRoZW50aWNhdGVkIiwiZXhwIjoxNjgyMjkzMjQ4LCJzdWIiOiJlODQwNTZkNC0xZWJhLTQwZDktOWU1Mi1jMTc4MTUwN2VmNzgiLCJlbWFpbCI6InNia2didGJnZHB2bHB0ZUBidWdmb28uY29tIiwicGhvbmUiOiIiLCJhcHBfbWV0YWRhdGEiOnsicHJvdmlkZXIiOiJlbWFpbCIsInByb3ZpZGVycyI6WyJlbWFpbCJdfSwidXNlcl9tZXRhZGF0YSI6e30sInJvbGUiOiJhdXRoZW50aWNhdGVkIiwiYWFsIjoiYWFsMSIsImFtciI6W3sibWV0aG9kIjoib3RwIiwidGltZXN0YW1wIjoxNjgxNjg4NDQ4fV0sInNlc3Npb25faWQiOiJiNDhlMmU3NS04NzlhLTQxZmEtYjQ4MS01OWY0OTgxMzg3YWQifQ.5-3E7WvMMVkXewD1qA26Rv4OFSTT82wYUBXNGcYaYfQ%22%2C%22u5TGGMMeT3zZA0agm5HGuA%22%2Cnull%2Cnull%2Cnull%5D',
+ 'origin': 'https://openprompt.co',
+ 'referer': 'https://openprompt.co/ChatGPT',
+ 'sec-ch-ua': '"Chromium";v="112", "Google Chrome";v="112", "Not:A-Brand";v="99"',
+ 'sec-ch-ua-mobile': '?0',
+ 'sec-ch-ua-platform': '"macOS"',
+ 'sec-fetch-dest': 'empty',
+ 'sec-fetch-mode': 'cors',
+ 'sec-fetch-site': 'same-origin',
+ 'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36',
+}
+
+json_data = {
+ 'messages': [
+ {
+ 'role': 'user',
+ 'content': 'hello world',
+ },
+ ],
+}
+
+response = requests.post('https://openprompt.co/api/chat2', cookies=cookies, headers=headers, json=json_data, stream=True)
+for chunk in response.iter_content(chunk_size=1024):
+ print(chunk)
+
+
diff --git a/unfinished/openprompt/test.py b/unfinished/openprompt/test.py
new file mode 100644
index 00000000..d178462e
--- /dev/null
+++ b/unfinished/openprompt/test.py
@@ -0,0 +1,7 @@
+access_token = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJhdXRoZW50aWNhdGVkIiwiZXhwIjoxNjgyMjk0ODcxLCJzdWIiOiI4NWNkNTNiNC1lZTUwLTRiMDQtOGJhNS0wNTUyNjk4ODliZDIiLCJlbWFpbCI6ImNsc2J5emdqcGhiQGJ1Z2Zvby5jb20iLCJwaG9uZSI6IiIsImFwcF9tZXRhZGF0YSI6eyJwcm92aWRlciI6ImVtYWlsIiwicHJvdmlkZXJzIjpbImVtYWlsIl19LCJ1c2VyX21ldGFkYXRhIjp7fSwicm9sZSI6ImF1dGhlbnRpY2F0ZWQiLCJhYWwiOiJhYWwxIiwiYW1yIjpbeyJtZXRob2QiOiJvdHAiLCJ0aW1lc3RhbXAiOjE2ODE2OTAwNzF9XSwic2Vzc2lvbl9pZCI6ImY4MTg1YTM5LTkxYzgtNGFmMy1iNzAxLTdhY2MwY2MwMGNlNSJ9.UvcTfpyIM1TdzM8ZV6UAPWfa0rgNq4AiqeD0INy6zV'
+supabase_auth_token= '%5B%22eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJhdXRoZW50aWNhdGVkIiwiZXhwIjoxNjgyMjk0ODcxLCJzdWIiOiI4NWNkNTNiNC1lZTUwLTRiMDQtOGJhNS0wNTUyNjk4ODliZDIiLCJlbWFpbCI6ImNsc2J5emdqcGhiQGJ1Z2Zvby5jb20iLCJwaG9uZSI6IiIsImFwcF9tZXRhZGF0YSI6eyJwcm92aWRlciI6ImVtYWlsIiwicHJvdmlkZXJzIjpbImVtYWlsIl19LCJ1c2VyX21ldGFkYXRhIjp7fSwicm9sZSI6ImF1dGhlbnRpY2F0ZWQiLCJhYWwiOiJhYWwxIiwiYW1yIjpbeyJtZXRob2QiOiJvdHAiLCJ0aW1lc3RhbXAiOjE2ODE2OTAwNzF9XSwic2Vzc2lvbl9pZCI6ImY4MTg1YTM5LTkxYzgtNGFmMy1iNzAxLTdhY2MwY2MwMGNlNSJ9.UvcTfpyIM1TdzM8ZV6UAPWfa0rgNq4AiqeD0INy6zV8%22%2C%22_Zp8uXIA2InTDKYgo8TCqA%22%2Cnull%2Cnull%2Cnull%5D'
+
+
+idk = [
+ "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJhdXRoZW50aWNhdGVkIiwiZXhwIjoxNjgyMjk0ODcxLCJzdWIiOiI4NWNkNTNiNC1lZTUwLTRiMDQtOGJhNS0wNTUyNjk4ODliZDIiLCJlbWFpbCI6ImNsc2J5emdqcGhiQGJ1Z2Zvby5jb20iLCJwaG9uZSI6IiIsImFwcF9tZXRhZGF0YSI6eyJwcm92aWRlciI6ImVtYWlsIiwicHJvdmlkZXJzIjpbImVtYWlsIl19LCJ1c2VyX21ldGFkYXRhIjp7fSwicm9sZSI6ImF1dGhlbnRpY2F0ZWQiLCJhYWwiOiJhYWwxIiwiYW1yIjpbeyJtZXRob2QiOiJvdHAiLCJ0aW1lc3RhbXAiOjE2ODE2OTAwNzF9XSwic2Vzc2lvbl9pZCI6ImY4MTg1YTM5LTkxYzgtNGFmMy1iNzAxLTdhY2MwY2MwMGNlNSJ9.UvcTfpyIM1TdzM8ZV6UAPWfa0rgNq4AiqeD0INy6zV8",
+ "_Zp8uXIA2InTDKYgo8TCqA",None,None,None] \ No newline at end of file
diff --git a/unfinished/sqlchat/README.md b/unfinished/sqlchat/README.md
new file mode 100644
index 00000000..ddd5c8f9
--- /dev/null
+++ b/unfinished/sqlchat/README.md
@@ -0,0 +1,3 @@
+https://www.sqlchat.ai/
+to do:
+- code refractoring \ No newline at end of file
diff --git a/unfinished/sqlchat/__init__.py b/unfinished/sqlchat/__init__.py
new file mode 100644
index 00000000..a7c2c54b
--- /dev/null
+++ b/unfinished/sqlchat/__init__.py
@@ -0,0 +1,29 @@
+import requests
+
+headers = {
+ 'authority': 'www.sqlchat.ai',
+ 'accept': '*/*',
+ 'accept-language': 'en,fr-FR;q=0.9,fr;q=0.8,es-ES;q=0.7,es;q=0.6,en-US;q=0.5,am;q=0.4,de;q=0.3',
+ 'content-type': 'text/plain;charset=UTF-8',
+ 'origin': 'https://www.sqlchat.ai',
+ 'referer': 'https://www.sqlchat.ai/',
+ 'sec-fetch-dest': 'empty',
+ 'sec-fetch-mode': 'cors',
+ 'sec-fetch-site': 'same-origin',
+ 'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36',
+}
+
+data = {
+ 'messages':[
+ {'role':'system','content':''},
+ {'role':'user','content':'hello world'},
+ ],
+ 'openAIApiConfig':{
+ 'key':'',
+ 'endpoint':''
+ }
+}
+
+response = requests.post('https://www.sqlchat.ai/api/chat', headers=headers, json=data, stream=True)
+for message in response.iter_content(chunk_size=1024):
+ print(message) \ No newline at end of file
diff --git a/unfinished/theb.ai/README.md b/unfinished/theb.ai/README.md
new file mode 100644
index 00000000..c221f860
--- /dev/null
+++ b/unfinished/theb.ai/README.md
@@ -0,0 +1,3 @@
+https://chatbot.theb.ai/
+to do:
+- code refractoring \ No newline at end of file
diff --git a/unfinished/theb.ai/__init__.py b/unfinished/theb.ai/__init__.py
new file mode 100644
index 00000000..a90a32f5
--- /dev/null
+++ b/unfinished/theb.ai/__init__.py
@@ -0,0 +1,57 @@
+from curl_cffi import requests
+from json import loads
+from re import findall
+from threading import Thread
+from queue import Queue, Empty
+
+class Completion:
+ # experimental
+ part1 = '{"role":"assistant","id":"chatcmpl'
+ part2 = '"},"index":0,"finish_reason":null}]}}'
+ regex = rf'{part1}(.*){part2}'
+
+ timer = None
+ message_queue = Queue()
+ stream_completed = False
+
+ def request():
+ headers = {
+ 'authority' : 'chatbot.theb.ai',
+ 'content-type': 'application/json',
+ 'origin' : 'https://chatbot.theb.ai',
+ 'user-agent' : 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36',
+ }
+
+ requests.post('https://chatbot.theb.ai/api/chat-process', headers=headers, content_callback=Completion.handle_stream_response,
+ json = {
+ 'prompt' : 'hello world',
+ 'options': {}
+ }
+ )
+
+ Completion.stream_completed = True
+
+ @staticmethod
+ def create():
+ Thread(target=Completion.request).start()
+
+ while Completion.stream_completed != True or not Completion.message_queue.empty():
+ try:
+ message = Completion.message_queue.get(timeout=0.01)
+ for message in findall(Completion.regex, message):
+ yield loads(Completion.part1 + message + Completion.part2)
+
+ except Empty:
+ pass
+
+ @staticmethod
+ def handle_stream_response(response):
+ Completion.message_queue.put(response.decode())
+
+def start():
+ for message in Completion.create():
+ yield message['delta']
+
+if __name__ == '__main__':
+ for message in start():
+ print(message)