diff options
author | Raju Komati <komatiraju032@gmail.com> | 2023-04-29 11:31:16 +0200 |
---|---|---|
committer | Raju Komati <komatiraju032@gmail.com> | 2023-04-29 11:31:16 +0200 |
commit | afcaf7b70ce95a18e28422cb29f5c7f3b73f88a5 (patch) | |
tree | 3f9f4885fab823778ab4fd2a8485f088f49be223 /gpt4free | |
parent | added gpt4free package (diff) | |
download | gpt4free-afcaf7b70ce95a18e28422cb29f5c7f3b73f88a5.tar gpt4free-afcaf7b70ce95a18e28422cb29f5c7f3b73f88a5.tar.gz gpt4free-afcaf7b70ce95a18e28422cb29f5c7f3b73f88a5.tar.bz2 gpt4free-afcaf7b70ce95a18e28422cb29f5c7f3b73f88a5.tar.lz gpt4free-afcaf7b70ce95a18e28422cb29f5c7f3b73f88a5.tar.xz gpt4free-afcaf7b70ce95a18e28422cb29f5c7f3b73f88a5.tar.zst gpt4free-afcaf7b70ce95a18e28422cb29f5c7f3b73f88a5.zip |
Diffstat (limited to 'gpt4free')
-rw-r--r-- | gpt4free/theb/__init__.py | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/gpt4free/theb/__init__.py b/gpt4free/theb/__init__.py index 726e025e..96053877 100644 --- a/gpt4free/theb/__init__.py +++ b/gpt4free/theb/__init__.py @@ -1,8 +1,12 @@ -from re import findall from json import loads from queue import Queue, Empty +from re import findall from threading import Thread +from typing import Generator + from curl_cffi import requests +from fake_useragent import UserAgent + class Completion: # experimental @@ -14,29 +18,29 @@ class Completion: message_queue = Queue() stream_completed = False + @staticmethod def request(prompt: str): 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', + 'user-agent': UserAgent().random, } - requests.post('https://chatbot.theb.ai/api/chat-process', headers=headers, - content_callback = Completion.handle_stream_response, - json = { - 'prompt': prompt, - 'options': {} - } + requests.post( + 'https://chatbot.theb.ai/api/chat-process', + headers=headers, + content_callback=Completion.handle_stream_response, + json={'prompt': prompt, 'options': {}}, ) Completion.stream_completed = True @staticmethod - def create(prompt: str): + def create(prompt: str) -> Generator[str, None, None]: Thread(target=Completion.request, args=[prompt]).start() - while Completion.stream_completed != True or not Completion.message_queue.empty(): + while not Completion.stream_completed or not Completion.message_queue.empty(): try: message = Completion.message_queue.get(timeout=0.01) for message in findall(Completion.regex, message): |