diff --git a/README.md b/README.md index a37dc9b..7eff009 100644 --- a/README.md +++ b/README.md @@ -38,7 +38,7 @@ Please note the following: | **Copyright** | Copyright information | [![Link to Section](https://img.shields.io/badge/Link-Go%20to%20Section-blue)](#copyright) | - | | **Star History** | Star History | [![Link to Section](https://img.shields.io/badge/Link-Go%20to%20Section-blue)](#star-history) | - | | **Usage Examples** | | | | -| `theb` | Example usage for theb (gpt-3.5) | [![Link to File](https://img.shields.io/badge/Link-Go%20to%20File-blue)](./theb/README.md) | ![Active](https://img.shields.io/badge/Active-brightgreen) | +| `theb` | Example usage for theb (gpt-3.5) | [![Link to File](https://img.shields.io/badge/Link-Go%20to%20File-blue)](openai_rev/theb/README.md) | ![Active](https://img.shields.io/badge/Active-brightgreen) | | `forefront` | Example usage for forefront (gpt-4) | [![Link to File](https://img.shields.io/badge/Link-Go%20to%20File-blue)](./forefront/README.md) | ![Active](https://img.shields.io/badge/Active-brightgreen) | || | `quora (poe)` | Example usage for quora | [![Link to File](https://img.shields.io/badge/Link-Go%20to%20File-blue)](./quora/README.md) | ![Active](https://img.shields.io/badge/Active-brightgreen) | | `you` | Example usage for you | [![Link to File](https://img.shields.io/badge/Link-Go%20to%20File-blue)](./you/README.md) | ![Active](https://img.shields.io/badge/Active-brightgreen) | diff --git a/openai_rev/forefront/__init__.py b/openai_rev/forefront/__init__.py index 1020261..6fece65 100644 --- a/openai_rev/forefront/__init__.py +++ b/openai_rev/forefront/__init__.py @@ -169,7 +169,6 @@ class Completion: ) -> ForeFrontResponse: text = '' final_response = None - res = list(StreamingCompletion.create(token=token, prompt=prompt)) for response in StreamingCompletion.create( token=token, chat_id=chat_id, diff --git a/openai_rev/openai_rev.py b/openai_rev/openai_rev.py index 7d483c0..6b88298 100644 --- a/openai_rev/openai_rev.py +++ b/openai_rev/openai_rev.py @@ -2,6 +2,7 @@ from enum import Enum from openai_rev import forefront from openai_rev import quora +from openai_rev import theb from openai_rev import you @@ -9,6 +10,7 @@ class Provider(Enum): You = 'you' Poe = 'poe' ForeFront = 'fore_front' + Theb = 'theb' class Completion: @@ -20,6 +22,8 @@ class Completion: return Completion.__you_service(prompt, **kwargs) elif provider == Provider.ForeFront: return Completion.__fore_front_service(prompt, **kwargs) + elif provider == Provider.Theb: + return Completion.__theb_service(prompt, **kwargs) @classmethod def __you_service(cls, prompt: str, **kwargs) -> str: @@ -32,3 +36,7 @@ class Completion: @classmethod def __fore_front_service(cls, prompt: str, **kwargs) -> str: return forefront.Completion.create(prompt=prompt, **kwargs).text + + @classmethod + def __theb_service(cls, prompt: str, **kwargs): + return ''.join(theb.Completion.create(prompt=prompt)) diff --git a/theb/README.md b/openai_rev/theb/README.md similarity index 87% rename from theb/README.md rename to openai_rev/theb/README.md index 982c34a..bd37ba3 100644 --- a/theb/README.md +++ b/openai_rev/theb/README.md @@ -1,9 +1,8 @@ ### Example: `theb` (use like openai pypi package) - ```python # import library -import theb +from openai_rev import theb # simple streaming completion for token in theb.Completion.create('hello world'): diff --git a/theb/__init__.py b/openai_rev/theb/__init__.py similarity index 77% rename from theb/__init__.py rename to openai_rev/theb/__init__.py index 726e025..fa79fdd 100644 --- a/theb/__init__.py +++ b/openai_rev/theb/__init__.py @@ -1,9 +1,11 @@ -from re import findall from json import loads from queue import Queue, Empty +from re import findall from threading import Thread + from curl_cffi import requests + class Completion: # experimental part1 = '{"role":"assistant","id":"chatcmpl' @@ -14,7 +16,8 @@ class Completion: message_queue = Queue() stream_completed = False - def request(prompt: str): + @classmethod + def request(cls, prompt: str): headers = { 'authority': 'chatbot.theb.ai', 'content-type': 'application/json', @@ -22,12 +25,11 @@ class Completion: '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': 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 @@ -36,7 +38,7 @@ class Completion: def create(prompt: str): 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): diff --git a/openai_rev/theb/theb_test.py b/openai_rev/theb/theb_test.py new file mode 100644 index 0000000..805ef09 --- /dev/null +++ b/openai_rev/theb/theb_test.py @@ -0,0 +1,4 @@ +from openai_rev import theb + +for token in theb.Completion.create('hello world'): + print(token, end='', flush=True) diff --git a/testing/accounts.txt b/testing/accounts.txt index 82a8957..9d58df0 100644 --- a/testing/accounts.txt +++ b/testing/accounts.txt @@ -15,3 +15,6 @@ trbfmqhnokevio@bugfoo.com:eyJhbGciOiJSUzI1NiIsImtpZCI6Imluc18yTzZ3UTFYd3dxVFdXUW gprzdsftrckwbj@bugfoo.com:eyJhbGciOiJSUzI1NiIsImtpZCI6Imluc18yTzZ3UTFYd3dxVFdXUWUyQ1VYZHZ2bnNaY2UiLCJ0eXAiOiJKV1QifQ.eyJhenAiOiJodHRwczovL2FjY291bnRzLmZvcmVmcm9udC5haSIsImV4cCI6MTY4MjYyNzM3NiwiaWF0IjoxNjgyNjI3MzE2LCJpc3MiOiJodHRwczovL2NsZXJrLmZvcmVmcm9udC5haSIsIm5iZiI6MTY4MjYyNzMwNiwic2lkIjoic2Vzc18yUDFiMTkxUUdYZ3YxZ2VDTHRJUXA2QjZVWjIiLCJzdWIiOiJ1c2VyXzJQMWIxNkRSdmpNS2FQaGV6aGFSWFF3WDhDRyJ9.MzKp7sLGFxWyupd6V2Ohl9btKV0SOMGixeV-qPxpNi4uh4r0CMSctSLR0SfxArsYskFwUF9DNqAp2YbrPP4c9rEiL8ShNimvUzCncG7pG1I4roPxQcz_8zm1mquh3BdDQD7L5-RvTm4_KLCrJ6d9QGIoNxHYhbotCfr_7T90iMzLCYs1hPjVU0XGtTMB9cQI_1b49tHswcWouqpP7RdqMupAACo1lxC9JjG1LHs2WIqHNkbyD8q3WepbjH3_4d4AoP4-XdD5lO7FHTr4xcc-fKJLV7D6EThH2BRDjuRNywUTa_jc4UlIpxMWT11RV8G9DE-ExckUm7e0EUO-0eNiVg hsecrzgezneibp@bugfoo.com:eyJhbGciOiJSUzI1NiIsImtpZCI6Imluc18yTzZ3UTFYd3dxVFdXUWUyQ1VYZHZ2bnNaY2UiLCJ0eXAiOiJKV1QifQ.eyJhenAiOiJodHRwczovL2FjY291bnRzLmZvcmVmcm9udC5haSIsImV4cCI6MTY4MjYyODU4NiwiaWF0IjoxNjgyNjI4NTI2LCJpc3MiOiJodHRwczovL2NsZXJrLmZvcmVmcm9udC5haSIsIm5iZiI6MTY4MjYyODUxNiwic2lkIjoic2Vzc18yUDFkVERHT3I5b2l5NktRajRWUnQ0YVg1UHYiLCJzdWIiOiJ1c2VyXzJQMWRUN2FUZUJtUndjcVlMMDNtaVlnamVaNSJ9.UKqZKGsCY-wWuPPMYnziaB-3cVKAvBWtddjNnuCakbl_nh2BnQugb1iPp0Ov8IKbHQr7vIE14CHp_07-BK_1GRCoFlmk4bhOrtZ8FeKIqVR_1JpcF6YYiZwc0ebV_rtEoD9mSuFytjcG_cufdKCTZoS_ddAckQZDduzfK1LtenbUMNigd9YjTXBeJV6tNOJIyiKXJCA58_puT7_baMKKnCiSlOA4OazatbLBv8vwKrCz1zdFZvkvPLmXoZ4-EA16CWxbmaJmi-G7fzdfohqxuZn7vguWumSgx8P3YDODggYfqvy3cd2-PAcpde066UgWCvRqXWn8s-01EropKbI_lg ogokkecbrckufe@bugfoo.com:eyJhbGciOiJSUzI1NiIsImtpZCI6Imluc18yTzZ3UTFYd3dxVFdXUWUyQ1VYZHZ2bnNaY2UiLCJ0eXAiOiJKV1QifQ.eyJhenAiOiJodHRwczovL2FjY291bnRzLmZvcmVmcm9udC5haSIsImV4cCI6MTY4MjYyODgwMSwiaWF0IjoxNjgyNjI4NzQxLCJpc3MiOiJodHRwczovL2NsZXJrLmZvcmVmcm9udC5haSIsIm5iZiI6MTY4MjYyODczMSwic2lkIjoic2Vzc18yUDFkdThHWkdJUHR4bXZvY2ZQMVJaSU12TnEiLCJzdWIiOiJ1c2VyXzJQMWR1N1RIN0VEeGx6NTQwTktITHdFalZSWCJ9.S-VMHfS9U-OYRBJsL6VjQzQawnV3opwYf0AQNQYiXaieMQTD8Op351zx9X6wKUk7JWeNZykP9-D8eNMBR8MeQ4ePxIRWmLtVnTBxJsoTNkXpC9FpbRzhTr84fXwkFccg-Yr3uPqdYuDz2EiPpROi3D2o072cNU1ZE2P4gSf6MOkatXP2l7ZYyNyI9WJEjkDJ5nRuGErPk9HLUuWzpqefmJSoo0PyrCT0OZSSGaNeB-QrcrLrw19UxqHcBdMYsay0HicX8A94HFerVlGz14s8aM4TdZNHWRZAgI627-HP23DZe53HUVTBCsRA6KYv4D7TI1PzVGrZVMweG1oaMkvr0A +xprysdgqgcljde@bugfoo.com:eyJhbGciOiJSUzI1NiIsImtpZCI6Imluc18yTzZ3UTFYd3dxVFdXUWUyQ1VYZHZ2bnNaY2UiLCJ0eXAiOiJKV1QifQ.eyJhenAiOiJodHRwczovL2FjY291bnRzLmZvcmVmcm9udC5haSIsImV4cCI6MTY4MjYzMDMxNSwiaWF0IjoxNjgyNjMwMjU1LCJpc3MiOiJodHRwczovL2NsZXJrLmZvcmVmcm9udC5haSIsIm5iZiI6MTY4MjYzMDI0NSwic2lkIjoic2Vzc18yUDFneVNHbWNFYzFjUmJwaGVPcVBNaEZNeWciLCJzdWIiOiJ1c2VyXzJQMWd5Uk45VXZHOHpzSjB5RGV2dW9IM0lRNiJ9.l4_UxRJy33HCl2hsjA3GBVrRH9gE8j9zusPvxYt531ze70UuXT8kaKXolDEJmub32LMEyGFjpTqvvKUdKAVfdhLnlIWvTbaIrwP5IQ1x38RA5ADNFGXRIizLjU2unsJR6Y_50yTuLerux9AVn_o2B0777FSm9aFAip0JdQjP_LHPCGE5fa6VU93VkP90qHf-m-WpimhIf8aqO4N8YeIr_E39TNM_RSWmRj6nqNp8aeY6PQYTq4csd57kMRCM4bgL_B9VeNI0khdQE42qbLvFqWQu2Cf1j2a7ZX6Qng2m6IauykzmJ8zMlbqGBTBIVHUviX_RuEYFWcCECQLVtOIlJQ +othjyimaedmaum@bugfoo.com:eyJhbGciOiJSUzI1NiIsImtpZCI6Imluc18yTzZ3UTFYd3dxVFdXUWUyQ1VYZHZ2bnNaY2UiLCJ0eXAiOiJKV1QifQ.eyJhenAiOiJodHRwczovL2FjY291bnRzLmZvcmVmcm9udC5haSIsImV4cCI6MTY4MjYzMDUwNywiaWF0IjoxNjgyNjMwNDQ3LCJpc3MiOiJodHRwczovL2NsZXJrLmZvcmVmcm9udC5haSIsIm5iZiI6MTY4MjYzMDQzNywic2lkIjoic2Vzc18yUDFoTWFCaEw5Nzg3MzJJWTVFcFpMamZWOVAiLCJzdWIiOiJ1c2VyXzJQMWhNYUhYaXF3dnV3SUZQZTYwNDducDcwQyJ9.xKg5zVlDlLC0ZVT21g9WmJrm6dW4Z9-WmMdBjskyaK_Gp7zytF0QFaCit_nmI-lWZ5mfUaiVm1sMAJcbAP8uyV1SJcv2dbBQ7vsYSoklDRSdiQCwHS5YL_fH77a7Bk5z3QMnssouIne3oJLD1qadD5Dv68uumvyZ5iq4a-PB8kV0cprl44GiMOkgBsoseZ8kgAkUUMmktScgtEFDO5ALBbNAPFZzt8nsrKDZO_fD9hQE9eWhF50Htchj3HE27gRGY5zC6n_XyMxsFmxoHSIt0vi74atqbFtlzp4Ct7YuDm_PFA6Dy0VoWx2FtkyjFow4ZcqHUubn2Nw3r8BlwpUReA +vcwbipuximmpzo@bugfoo.com:eyJhbGciOiJSUzI1NiIsImtpZCI6Imluc18yTzZ3UTFYd3dxVFdXUWUyQ1VYZHZ2bnNaY2UiLCJ0eXAiOiJKV1QifQ.eyJhenAiOiJodHRwczovL2FjY291bnRzLmZvcmVmcm9udC5haSIsImV4cCI6MTY4MjYzMDg2MywiaWF0IjoxNjgyNjMwODAzLCJpc3MiOiJodHRwczovL2NsZXJrLmZvcmVmcm9udC5haSIsIm5iZiI6MTY4MjYzMDc5Mywic2lkIjoic2Vzc18yUDFpNUhDM0JHUTRlRXY2VnFkcUdCQnNMUzgiLCJzdWIiOiJ1c2VyXzJQMWk1R2U5VFRzQjFCMDVXTFRIcXBjNzA2ZSJ9.vZt1afDAZ1UANpZwW30p4GWEezpQ2pCtQ6oD7bKxl68-_tsyOHlTd_Tqo1EChkqHKfaKdiSN2opjl3EpPqOq1DEwn7Oc0xFGod489juO-KSpbT5zyJtuUQn8t56UnOvC3ofCJvveE51aaPNt2it7-8vyhqDgkrEfw03PGFCv8PFK1zhqpjERuhBA_Cw8lFCtsc-uDcgMMSrenYmGnlPt8cD49k7OGNzE-GAXjVoxaVUFNQSloP76C-Nh919ycDId6x8U6P9DkOojLRUhEaGRNPI5SopO7IAOWt3S7jgpczzRW70pC_tn3EEcxFPm67tb2c41PdXk2vxrOwRo38cXPA diff --git a/testing/test_main.py b/testing/test_main.py index 956c004..612ec69 100644 --- a/testing/test_main.py +++ b/testing/test_main.py @@ -3,15 +3,13 @@ from openai_rev import openai_rev, Provider, quora, forefront # usage You response = openai_rev.Completion.create(Provider.You, prompt='Write a poem on Lionel Messi') print(response) -print(f'END') + # usage Poe -# token = quora.Account.create(logging=False) -token = 'GKzCahZYGKhp76LfE197xw==' +token = quora.Account.create(logging=False) response = openai_rev.Completion.create( Provider.Poe, prompt='Write a poem on Lionel Messi', token=token, model='ChatGPT' ) print(response) -print(f'END') # usage forefront token = forefront.Account.create(logging=False) @@ -19,3 +17,8 @@ response = openai_rev.Completion.create( Provider.ForeFront, prompt='Write a poem on Lionel Messi', model='gpt-4', token=token ) print(response) +print(f'END') + +# usage theb +response = openai_rev.Completion.create(Provider.Theb, prompt='Write a poem on Lionel Messi') +print(response) diff --git a/theb/theb_test.py b/theb/theb_test.py deleted file mode 100644 index 177c970..0000000 --- a/theb/theb_test.py +++ /dev/null @@ -1,4 +0,0 @@ -import theb - -for token in theb.Completion.create('hello world'): - print(token, end='', flush=True) \ No newline at end of file