From 789b209d03ba45d4dbe9af924f5806abda371cd9 Mon Sep 17 00:00:00 2001
From: "t.me/xtekky" <98614666+xtekky@users.noreply.github.com>
Date: Sat, 22 Apr 2023 13:54:01 +0100
Subject: move documenation to individual folder
---
README.md | 291 ++-----------------------------------
ora/README.md | 41 ++++++
phind/README.md | 33 +++++
quora/README.md | 49 +++++++
quora/poe_account_create_test.py | 104 -------------
t3nsor/README.md | 42 ++++++
testing/poe_account_create_test.py | 104 +++++++++++++
writesonic/README.md | 53 +++++++
you/README.md | 36 +++++
9 files changed, 369 insertions(+), 384 deletions(-)
create mode 100644 ora/README.md
create mode 100644 phind/README.md
create mode 100644 quora/README.md
delete mode 100644 quora/poe_account_create_test.py
create mode 100644 t3nsor/README.md
create mode 100644 testing/poe_account_create_test.py
create mode 100644 writesonic/README.md
create mode 100644 you/README.md
diff --git a/README.md b/README.md
index 478c9d96..4cbd77d9 100644
--- a/README.md
+++ b/README.md
@@ -43,292 +43,23 @@ These sites will be reverse engineered but need account access:
## Usage Examples
-### Example: `quora (poe)` (use like openai pypi package) - GPT-4
-
-```python
-# quora model names: (use left key as argument)
-models = {
- 'sage' : 'capybara',
- 'gpt-4' : 'beaver',
- 'claude-v1.2' : 'a2_2',
- 'claude-instant-v1.0' : 'a2',
- 'gpt-3.5-turbo' : 'chinchilla'
-}
-```
-
-#### !! new: bot creation
-
-```python
-# import quora (poe) package
-import quora
-
-# create account
-# make shure to set enable_bot_creation to True
-token = quora.Account.create(logging = True, enable_bot_creation=True)
-
-model = quora.Model.create(
- token = token,
- model = 'gpt-3.5-turbo', # or claude-instant-v1.0
- system_prompt = 'you are ChatGPT a large language model ...'
-)
-
-print(model.name) # gptx....
-
-# streaming response
-for response in quora.StreamingCompletion.create(
- custom_model = model.name,
- prompt ='hello world',
- token = token):
-
- print(response.completion.choices[0].text)
-```
-
-#### Normal Response:
-```python
-
-response = quora.Completion.create(model = 'gpt-4',
- prompt = 'hello world',
- token = token)
-
-print(response.completion.choices[0].text)
-```
-
-### Example: `phind` (use like openai pypi package)
-
-```python
-import phind
-
-# set cf_clearance cookie
-phind.cf_clearance = 'xx.xx-1682166681-0-160'
-
-prompt = 'who won the quatar world cup'
-
-# help needed: not getting newlines from the stream, please submit a PR if you know how to fix this
-# stream completion
-for result in phind.StreamingCompletion.create(
- model = 'gpt-4',
- prompt = prompt,
- results = phind.Search.create(prompt, actualSearch = True), # create search (set actualSearch to False to disable internet)
- creative = False,
- detailed = False,
- codeContext = ''): # up to 3000 chars of code
-
- print(result.completion.choices[0].text, end='', flush=True)
-
-# normal completion
-result = phind.Completion.create(
- model = 'gpt-4',
- prompt = prompt,
- results = phind.Search.create(prompt, actualSearch = True), # create search (set actualSearch to False to disable internet)
- creative = False,
- detailed = False,
- codeContext = '') # up to 3000 chars of code
-
-print(result.completion.choices[0].text)
-```
-
-### Example: `t3nsor` (use like openai pypi package)
-
-```python
-# Import t3nsor
-import t3nsor
-
-# t3nsor.Completion.create
-# t3nsor.StreamCompletion.create
-
-[...]
-
-```
-
-#### Example Chatbot
-```python
-messages = []
-
-while True:
- user = input('you: ')
-
- t3nsor_cmpl = t3nsor.Completion.create(
- prompt = user,
- messages = messages
- )
-
- print('gpt:', t3nsor_cmpl.completion.choices[0].text)
-
- messages.extend([
- {'role': 'user', 'content': user },
- {'role': 'assistant', 'content': t3nsor_cmpl.completion.choices[0].text}
- ])
-```
-
-#### Streaming Response:
-
-```python
-for response in t3nsor.StreamCompletion.create(
- prompt = 'write python code to reverse a string',
- messages = []):
-
- print(response.completion.choices[0].text)
-```
-
-### Example: `ora` (use like openai pypi package)
-
-### load model (new)
-
-more gpt4 models in `/testing/ora_gpt4.py`
-
-```python
-# normal gpt-4: b8b12eaa-5d47-44d3-92a6-4d706f2bcacf
-model = ora.CompletionModel.load(chatbot_id, 'gpt-4') # or gpt-3.5
-```
-
-#### create model / chatbot:
-```python
-# inport ora
-import ora
-
-# create model
-model = ora.CompletionModel.create(
- system_prompt = 'You are ChatGPT, a large language model trained by OpenAI. Answer as concisely as possible',
- description = 'ChatGPT Openai Language Model',
- name = 'gpt-3.5')
-
-# init conversation (will give you a conversationId)
-init = ora.Completion.create(
- model = model,
- prompt = 'hello world')
-
-print(init.completion.choices[0].text)
-
-while True:
- # pass in conversationId to continue conversation
-
- prompt = input('>>> ')
- response = ora.Completion.create(
- model = model,
- prompt = prompt,
- includeHistory = True, # remember history
- conversationId = init.id)
-
- print(response.completion.choices[0].text)
-```
-
-### Example: `writesonic` (use like openai pypi package)
-
-```python
-# import writesonic
-import writesonic
-
-# create account (3-4s)
-account = writesonic.Account.create(logging = True)
-
-# with loging:
- # 2023-04-06 21:50:25 INFO __main__ -> register success : '{"id":"51aa0809-3053-44f7-922a...' (2s)
- # 2023-04-06 21:50:25 INFO __main__ -> id : '51aa0809-3053-44f7-922a-2b85d8d07edf'
- # 2023-04-06 21:50:25 INFO __main__ -> token : 'eyJhbGciOiJIUzI1NiIsInR5cCI6Ik...'
- # 2023-04-06 21:50:28 INFO __main__ -> got key : '194158c4-d249-4be0-82c6-5049e869533c' (2s)
-
-# simple completion
-response = writesonic.Completion.create(
- api_key = account.key,
- prompt = 'hello world'
-)
-
-print(response.completion.choices[0].text) # Hello! How may I assist you today?
-
-# conversation
-
-response = writesonic.Completion.create(
- api_key = account.key,
- prompt = 'what is my name ?',
- enable_memory = True,
- history_data = [
- {
- 'is_sent': True,
- 'message': 'my name is Tekky'
- },
- {
- 'is_sent': False,
- 'message': 'hello Tekky'
- }
- ]
-)
-
-print(response.completion.choices[0].text) # Your name is Tekky.
-
-# enable internet
-
-response = writesonic.Completion.create(
- api_key = account.key,
- prompt = 'who won the quatar world cup ?',
- enable_google_results = True
-)
-
-print(response.completion.choices[0].text) # Argentina won the 2022 FIFA World Cup tournament held in Qatar ...
-```
-
-### Example: `you` (use like openai pypi package)
-
-```python
-import you
-
-# simple request with links and details
-response = you.Completion.create(
- prompt = "hello world",
- detailed = True,
- includelinks = True,)
-
-print(response)
-
-# {
-# "response": "...",
-# "links": [...],
-# "extra": {...},
-# "slots": {...}
-# }
-# }
-
-#chatbot
-
-chat = []
-
-while True:
- prompt = input("You: ")
-
- response = you.Completion.create(
- prompt = prompt,
- chat = chat)
-
- print("Bot:", response["response"])
-
- chat.append({"question": prompt, "answer": response["response"]})
-```
+| NOTE: the instructions of each module has been moved in the folder of the module itsself|
+| --- |
## Dependencies
-The repository is written in Python and requires the following packages:
-
* websocket-client
* requests
* tls-client
-
-You can install these packages using the provided `requirements.txt` file.
-
-## Repository structure:
- .
- ├── ora/
- ├── quora/ (/poe)
- ├── t3nsor/
- ├── testing/
- ├── writesonic/
- ├── you/
- ├── README.md <-- this file.
- └── requirements.txt
-
-
-## Star History
-
-[![Star History Chart](https://api.star-history.com/svg?repos=xtekky/openai-gpt4&type=Timeline)](https://star-history.com/#xtekky/openai-gpt4&Timeline)
-
+* pypasser
+* names
+* colorama
+* curl_cffi
+
+install with:
+```sh
+pip3 install -r requirements.txt
+```
## Copyright:
This program is licensed under the [GNU GPL v3](https://www.gnu.org/licenses/gpl-3.0.txt)
diff --git a/ora/README.md b/ora/README.md
new file mode 100644
index 00000000..2cc350d4
--- /dev/null
+++ b/ora/README.md
@@ -0,0 +1,41 @@
+### Example: `ora` (use like openai pypi package)
+
+### load model (new)
+
+more gpt4 models in `/testing/ora_gpt4.py`
+
+```python
+# normal gpt-4: b8b12eaa-5d47-44d3-92a6-4d706f2bcacf
+model = ora.CompletionModel.load(chatbot_id, 'gpt-4') # or gpt-3.5
+```
+
+#### create model / chatbot:
+```python
+# inport ora
+import ora
+
+# create model
+model = ora.CompletionModel.create(
+ system_prompt = 'You are ChatGPT, a large language model trained by OpenAI. Answer as concisely as possible',
+ description = 'ChatGPT Openai Language Model',
+ name = 'gpt-3.5')
+
+# init conversation (will give you a conversationId)
+init = ora.Completion.create(
+ model = model,
+ prompt = 'hello world')
+
+print(init.completion.choices[0].text)
+
+while True:
+ # pass in conversationId to continue conversation
+
+ prompt = input('>>> ')
+ response = ora.Completion.create(
+ model = model,
+ prompt = prompt,
+ includeHistory = True, # remember history
+ conversationId = init.id)
+
+ print(response.completion.choices[0].text)
+```
\ No newline at end of file
diff --git a/phind/README.md b/phind/README.md
new file mode 100644
index 00000000..c9b85dbb
--- /dev/null
+++ b/phind/README.md
@@ -0,0 +1,33 @@
+### Example: `phind` (use like openai pypi package)
+
+```python
+import phind
+
+# set cf_clearance cookie
+phind.cf_clearance = 'xx.xx-1682166681-0-160'
+
+prompt = 'who won the quatar world cup'
+
+# help needed: not getting newlines from the stream, please submit a PR if you know how to fix this
+# stream completion
+for result in phind.StreamingCompletion.create(
+ model = 'gpt-4',
+ prompt = prompt,
+ results = phind.Search.create(prompt, actualSearch = True), # create search (set actualSearch to False to disable internet)
+ creative = False,
+ detailed = False,
+ codeContext = ''): # up to 3000 chars of code
+
+ print(result.completion.choices[0].text, end='', flush=True)
+
+# normal completion
+result = phind.Completion.create(
+ model = 'gpt-4',
+ prompt = prompt,
+ results = phind.Search.create(prompt, actualSearch = True), # create search (set actualSearch to False to disable internet)
+ creative = False,
+ detailed = False,
+ codeContext = '') # up to 3000 chars of code
+
+print(result.completion.choices[0].text)
+```
diff --git a/quora/README.md b/quora/README.md
new file mode 100644
index 00000000..e1ec140b
--- /dev/null
+++ b/quora/README.md
@@ -0,0 +1,49 @@
+### Example: `quora (poe)` (use like openai pypi package) - GPT-4
+
+```python
+# quora model names: (use left key as argument)
+models = {
+ 'sage' : 'capybara',
+ 'gpt-4' : 'beaver',
+ 'claude-v1.2' : 'a2_2',
+ 'claude-instant-v1.0' : 'a2',
+ 'gpt-3.5-turbo' : 'chinchilla'
+}
+```
+
+#### !! new: bot creation
+
+```python
+# import quora (poe) package
+import quora
+
+# create account
+# make shure to set enable_bot_creation to True
+token = quora.Account.create(logging = True, enable_bot_creation=True)
+
+model = quora.Model.create(
+ token = token,
+ model = 'gpt-3.5-turbo', # or claude-instant-v1.0
+ system_prompt = 'you are ChatGPT a large language model ...'
+)
+
+print(model.name) # gptx....
+
+# streaming response
+for response in quora.StreamingCompletion.create(
+ custom_model = model.name,
+ prompt ='hello world',
+ token = token):
+
+ print(response.completion.choices[0].text)
+```
+
+#### Normal Response:
+```python
+
+response = quora.Completion.create(model = 'gpt-4',
+ prompt = 'hello world',
+ token = token)
+
+print(response.completion.choices[0].text)
+```
diff --git a/quora/poe_account_create_test.py b/quora/poe_account_create_test.py
deleted file mode 100644
index 627520ca..00000000
--- a/quora/poe_account_create_test.py
+++ /dev/null
@@ -1,104 +0,0 @@
-from requests import Session
-from tls_client import Session as TLS
-from json import dumps
-from hashlib import md5
-from time import sleep
-from re import findall
-from pypasser import reCaptchaV3
-from quora import extract_formkey
-from quora.mail import Emailnator
-from twocaptcha import TwoCaptcha
-
-solver = TwoCaptcha('72747bf24a9d89b4dcc1b24875efd358')
-
-class Account:
- def create(proxy: None or str = None, logging: bool = False, enable_bot_creation: bool = False):
- client = TLS(client_identifier='chrome110')
- client.proxies = {
- 'http': f'http://{proxy}',
- 'https': f'http://{proxy}'} if proxy else None
-
- mail_client = Emailnator()
- mail_address = mail_client.get_mail()
-
- if logging: print('email', mail_address)
-
- client.headers = {
- 'authority' : 'poe.com',
- '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',
- 'origin' : 'https://poe.com',
- 'poe-formkey' : 'null',
- 'poe-tag-id' : 'null',
- 'poe-tchannel' : 'null',
- 'referer' : 'https://poe.com/login',
- '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'
- }
-
- client.headers["poe-formkey"] = extract_formkey(client.get('https://poe.com/login').text)
- client.headers["poe-tchannel"] = client.get('https://poe.com/api/settings').json()['tchannelData']['channel']
-
- #token = reCaptchaV3('https://www.recaptcha.net/recaptcha/enterprise/anchor?ar=1&k=6LflhEElAAAAAI_ewVwRWI9hsyV4mbZnYAslSvlG&co=aHR0cHM6Ly9wb2UuY29tOjQ0Mw..&hl=en&v=4PnKmGB9wRHh1i04o7YUICeI&size=invisible&cb=bi6ivxoskyal')
- token = solver.recaptcha(sitekey='6LflhEElAAAAAI_ewVwRWI9hsyV4mbZnYAslSvlG',
- url = 'https://poe.com/login?redirect_url=%2F',
- version = 'v3',
- enterprise = 1,
- invisible = 1,
- action = 'login',)['code']
-
- payload = dumps(separators = (',', ':'), obj = {
- 'queryName': 'MainSignupLoginSection_sendVerificationCodeMutation_Mutation',
- 'variables': {
- 'emailAddress' : mail_address,
- 'phoneNumber' : None,
- 'recaptchaToken': token
- },
- 'query': 'mutation MainSignupLoginSection_sendVerificationCodeMutation_Mutation(\n $emailAddress: String\n $phoneNumber: String\n $recaptchaToken: String\n) {\n sendVerificationCode(verificationReason: login, emailAddress: $emailAddress, phoneNumber: $phoneNumber, recaptchaToken: $recaptchaToken) {\n status\n errorMessage\n }\n}\n',
- })
-
- base_string = payload + client.headers["poe-formkey"] + 'WpuLMiXEKKE98j56k'
- client.headers["poe-tag-id"] = md5(base_string.encode()).hexdigest()
-
- print(dumps(client.headers, indent=4))
-
- response = client.post('https://poe.com/api/gql_POST', data=payload)
-
- if 'automated_request_detected' in response.text:
- print('please try using a proxy / wait for fix')
-
- if 'Bad Request' in response.text:
- if logging: print('bad request, retrying...' , response.json())
- quit()
-
- if logging: print('send_code' ,response.json())
-
- mail_content = mail_client.get_message()
- mail_token = findall(r';">(\d{6,7})', mail_content)[0]
-
- if logging: print('code', mail_token)
-
- payload = dumps(separators = (',', ':'), obj={
- "queryName": "SignupOrLoginWithCodeSection_signupWithVerificationCodeMutation_Mutation",
- "variables": {
- "verificationCode": str(mail_token),
- "emailAddress": mail_address,
- "phoneNumber": None
- },
- "query": "mutation SignupOrLoginWithCodeSection_signupWithVerificationCodeMutation_Mutation(\n $verificationCode: String!\n $emailAddress: String\n $phoneNumber: String\n) {\n signupWithVerificationCode(verificationCode: $verificationCode, emailAddress: $emailAddress, phoneNumber: $phoneNumber) {\n status\n errorMessage\n }\n}\n"
- })
-
- base_string = payload + client.headers["poe-formkey"] + 'WpuLMiXEKKE98j56k'
- client.headers["poe-tag-id"] = md5(base_string.encode()).hexdigest()
-
- response = client.post('https://poe.com/api/gql_POST', data = payload)
- if logging: print('verify_code', response.json())
-
-
-Account.create(proxy = 'xtekky:wegwgwegwed_streaming-1@geo.iproyal.com:12321', logging = True)
\ No newline at end of file
diff --git a/t3nsor/README.md b/t3nsor/README.md
new file mode 100644
index 00000000..373a0d1a
--- /dev/null
+++ b/t3nsor/README.md
@@ -0,0 +1,42 @@
+### Example: `t3nsor` (use like openai pypi package)
+
+```python
+# Import t3nsor
+import t3nsor
+
+# t3nsor.Completion.create
+# t3nsor.StreamCompletion.create
+
+[...]
+
+```
+
+#### Example Chatbot
+```python
+messages = []
+
+while True:
+ user = input('you: ')
+
+ t3nsor_cmpl = t3nsor.Completion.create(
+ prompt = user,
+ messages = messages
+ )
+
+ print('gpt:', t3nsor_cmpl.completion.choices[0].text)
+
+ messages.extend([
+ {'role': 'user', 'content': user },
+ {'role': 'assistant', 'content': t3nsor_cmpl.completion.choices[0].text}
+ ])
+```
+
+#### Streaming Response:
+
+```python
+for response in t3nsor.StreamCompletion.create(
+ prompt = 'write python code to reverse a string',
+ messages = []):
+
+ print(response.completion.choices[0].text)
+```
diff --git a/testing/poe_account_create_test.py b/testing/poe_account_create_test.py
new file mode 100644
index 00000000..627520ca
--- /dev/null
+++ b/testing/poe_account_create_test.py
@@ -0,0 +1,104 @@
+from requests import Session
+from tls_client import Session as TLS
+from json import dumps
+from hashlib import md5
+from time import sleep
+from re import findall
+from pypasser import reCaptchaV3
+from quora import extract_formkey
+from quora.mail import Emailnator
+from twocaptcha import TwoCaptcha
+
+solver = TwoCaptcha('72747bf24a9d89b4dcc1b24875efd358')
+
+class Account:
+ def create(proxy: None or str = None, logging: bool = False, enable_bot_creation: bool = False):
+ client = TLS(client_identifier='chrome110')
+ client.proxies = {
+ 'http': f'http://{proxy}',
+ 'https': f'http://{proxy}'} if proxy else None
+
+ mail_client = Emailnator()
+ mail_address = mail_client.get_mail()
+
+ if logging: print('email', mail_address)
+
+ client.headers = {
+ 'authority' : 'poe.com',
+ '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',
+ 'origin' : 'https://poe.com',
+ 'poe-formkey' : 'null',
+ 'poe-tag-id' : 'null',
+ 'poe-tchannel' : 'null',
+ 'referer' : 'https://poe.com/login',
+ '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'
+ }
+
+ client.headers["poe-formkey"] = extract_formkey(client.get('https://poe.com/login').text)
+ client.headers["poe-tchannel"] = client.get('https://poe.com/api/settings').json()['tchannelData']['channel']
+
+ #token = reCaptchaV3('https://www.recaptcha.net/recaptcha/enterprise/anchor?ar=1&k=6LflhEElAAAAAI_ewVwRWI9hsyV4mbZnYAslSvlG&co=aHR0cHM6Ly9wb2UuY29tOjQ0Mw..&hl=en&v=4PnKmGB9wRHh1i04o7YUICeI&size=invisible&cb=bi6ivxoskyal')
+ token = solver.recaptcha(sitekey='6LflhEElAAAAAI_ewVwRWI9hsyV4mbZnYAslSvlG',
+ url = 'https://poe.com/login?redirect_url=%2F',
+ version = 'v3',
+ enterprise = 1,
+ invisible = 1,
+ action = 'login',)['code']
+
+ payload = dumps(separators = (',', ':'), obj = {
+ 'queryName': 'MainSignupLoginSection_sendVerificationCodeMutation_Mutation',
+ 'variables': {
+ 'emailAddress' : mail_address,
+ 'phoneNumber' : None,
+ 'recaptchaToken': token
+ },
+ 'query': 'mutation MainSignupLoginSection_sendVerificationCodeMutation_Mutation(\n $emailAddress: String\n $phoneNumber: String\n $recaptchaToken: String\n) {\n sendVerificationCode(verificationReason: login, emailAddress: $emailAddress, phoneNumber: $phoneNumber, recaptchaToken: $recaptchaToken) {\n status\n errorMessage\n }\n}\n',
+ })
+
+ base_string = payload + client.headers["poe-formkey"] + 'WpuLMiXEKKE98j56k'
+ client.headers["poe-tag-id"] = md5(base_string.encode()).hexdigest()
+
+ print(dumps(client.headers, indent=4))
+
+ response = client.post('https://poe.com/api/gql_POST', data=payload)
+
+ if 'automated_request_detected' in response.text:
+ print('please try using a proxy / wait for fix')
+
+ if 'Bad Request' in response.text:
+ if logging: print('bad request, retrying...' , response.json())
+ quit()
+
+ if logging: print('send_code' ,response.json())
+
+ mail_content = mail_client.get_message()
+ mail_token = findall(r';">(\d{6,7})', mail_content)[0]
+
+ if logging: print('code', mail_token)
+
+ payload = dumps(separators = (',', ':'), obj={
+ "queryName": "SignupOrLoginWithCodeSection_signupWithVerificationCodeMutation_Mutation",
+ "variables": {
+ "verificationCode": str(mail_token),
+ "emailAddress": mail_address,
+ "phoneNumber": None
+ },
+ "query": "mutation SignupOrLoginWithCodeSection_signupWithVerificationCodeMutation_Mutation(\n $verificationCode: String!\n $emailAddress: String\n $phoneNumber: String\n) {\n signupWithVerificationCode(verificationCode: $verificationCode, emailAddress: $emailAddress, phoneNumber: $phoneNumber) {\n status\n errorMessage\n }\n}\n"
+ })
+
+ base_string = payload + client.headers["poe-formkey"] + 'WpuLMiXEKKE98j56k'
+ client.headers["poe-tag-id"] = md5(base_string.encode()).hexdigest()
+
+ response = client.post('https://poe.com/api/gql_POST', data = payload)
+ if logging: print('verify_code', response.json())
+
+
+Account.create(proxy = 'xtekky:wegwgwegwed_streaming-1@geo.iproyal.com:12321', logging = True)
\ No newline at end of file
diff --git a/writesonic/README.md b/writesonic/README.md
new file mode 100644
index 00000000..a658a87c
--- /dev/null
+++ b/writesonic/README.md
@@ -0,0 +1,53 @@
+### Example: `writesonic` (use like openai pypi package)
+
+```python
+# import writesonic
+import writesonic
+
+# create account (3-4s)
+account = writesonic.Account.create(logging = True)
+
+# with loging:
+ # 2023-04-06 21:50:25 INFO __main__ -> register success : '{"id":"51aa0809-3053-44f7-922a...' (2s)
+ # 2023-04-06 21:50:25 INFO __main__ -> id : '51aa0809-3053-44f7-922a-2b85d8d07edf'
+ # 2023-04-06 21:50:25 INFO __main__ -> token : 'eyJhbGciOiJIUzI1NiIsInR5cCI6Ik...'
+ # 2023-04-06 21:50:28 INFO __main__ -> got key : '194158c4-d249-4be0-82c6-5049e869533c' (2s)
+
+# simple completion
+response = writesonic.Completion.create(
+ api_key = account.key,
+ prompt = 'hello world'
+)
+
+print(response.completion.choices[0].text) # Hello! How may I assist you today?
+
+# conversation
+
+response = writesonic.Completion.create(
+ api_key = account.key,
+ prompt = 'what is my name ?',
+ enable_memory = True,
+ history_data = [
+ {
+ 'is_sent': True,
+ 'message': 'my name is Tekky'
+ },
+ {
+ 'is_sent': False,
+ 'message': 'hello Tekky'
+ }
+ ]
+)
+
+print(response.completion.choices[0].text) # Your name is Tekky.
+
+# enable internet
+
+response = writesonic.Completion.create(
+ api_key = account.key,
+ prompt = 'who won the quatar world cup ?',
+ enable_google_results = True
+)
+
+print(response.completion.choices[0].text) # Argentina won the 2022 FIFA World Cup tournament held in Qatar ...
+```
\ No newline at end of file
diff --git a/you/README.md b/you/README.md
new file mode 100644
index 00000000..69da131a
--- /dev/null
+++ b/you/README.md
@@ -0,0 +1,36 @@
+### Example: `you` (use like openai pypi package)
+
+```python
+import you
+
+# simple request with links and details
+response = you.Completion.create(
+ prompt = "hello world",
+ detailed = True,
+ includelinks = True,)
+
+print(response)
+
+# {
+# "response": "...",
+# "links": [...],
+# "extra": {...},
+# "slots": {...}
+# }
+# }
+
+#chatbot
+
+chat = []
+
+while True:
+ prompt = input("You: ")
+
+ response = you.Completion.create(
+ prompt = prompt,
+ chat = chat)
+
+ print("Bot:", response["response"])
+
+ chat.append({"question": prompt, "answer": response["response"]})
+```
\ No newline at end of file
--
cgit v1.2.3