summaryrefslogtreecommitdiffstats
path: root/g4f/.v1/unfinished/chatpdf
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--g4f/.v1/unfinished/chatpdf/__init__.py82
1 files changed, 0 insertions, 82 deletions
diff --git a/g4f/.v1/unfinished/chatpdf/__init__.py b/g4f/.v1/unfinished/chatpdf/__init__.py
deleted file mode 100644
index 30dc1d3e..00000000
--- a/g4f/.v1/unfinished/chatpdf/__init__.py
+++ /dev/null
@@ -1,82 +0,0 @@
-import requests
-import json
-
-from queue import Queue, Empty
-from threading import Thread
-from json import loads
-from re import findall
-
-
-class Completion:
-
- def request(prompt: str):
- '''TODO: some sort of authentication + upload PDF from URL or local file
- Then you should get the atoken and chat ID
- '''
-
- token = "your_token_here"
- chat_id = "your_chat_id_here"
-
- url = "https://chat-pr4yueoqha-ue.a.run.app/"
-
- payload = json.dumps({
- "v": 2,
- "chatSession": {
- "type": "join",
- "chatId": chat_id
- },
- "history": [
- {
- "id": "VNsSyJIq_0",
- "author": "p_if2GPSfyN8hjDoA7unYe",
- "msg": "<start>",
- "time": 1682672009270
- },
- {
- "id": "Zk8DRUtx_6",
- "author": "uplaceholder",
- "msg": prompt,
- "time": 1682672181339
- }
- ]
- })
-
- # TODO: fix headers, use random user-agent, streaming response, etc
- headers = {
- 'authority': 'chat-pr4yueoqha-ue.a.run.app',
- 'accept': '*/*',
- 'accept-language': 'en-US,en;q=0.9',
- 'atoken': token,
- 'content-type': 'application/json',
- 'origin': 'https://www.chatpdf.com',
- 'referer': 'https://www.chatpdf.com/',
- 'sec-ch-ua': '"Chromium";v="112", "Google Chrome";v="112", "Not:A-Brand";v="99"',
- 'sec-ch-ua-mobile': '?0',
- 'sec-ch-ua-platform': '"Windows"',
- 'sec-fetch-dest': 'empty',
- 'sec-fetch-mode': 'cors',
- 'sec-fetch-site': 'cross-site',
- 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36'
- }
-
- response = requests.request(
- "POST", url, headers=headers, data=payload).text
- Completion.stream_completed = True
- return {'response': response}
-
- @staticmethod
- def create(prompt: str):
- Thread(target=Completion.request, args=[prompt]).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)['delta']
-
- except Empty:
- pass
-
- @staticmethod
- def handle_stream_response(response):
- Completion.message_queue.put(response.decode())