summaryrefslogtreecommitdiffstats
path: root/gpt4free/cocalc
diff options
context:
space:
mode:
Diffstat (limited to 'gpt4free/cocalc')
-rw-r--r--gpt4free/cocalc/__init__.py47
-rw-r--r--gpt4free/cocalc/readme.md19
2 files changed, 66 insertions, 0 deletions
diff --git a/gpt4free/cocalc/__init__.py b/gpt4free/cocalc/__init__.py
new file mode 100644
index 00000000..372f29a4
--- /dev/null
+++ b/gpt4free/cocalc/__init__.py
@@ -0,0 +1,47 @@
+import requests
+from fake_useragent import UserAgent
+from pydantic import BaseModel
+
+
+class CoCalcResponse(BaseModel):
+ text: str
+ status: bool
+
+
+class Completion:
+ @staticmethod
+ def create(prompt: str, cookie_input: str) -> CoCalcResponse:
+ # Initialize a session with custom headers
+ session = Completion._initialize_session(cookie_input)
+
+ # Set the data that will be submitted
+ payload = Completion._create_payload(prompt, 'ASSUME I HAVE FULL ACCESS TO COCALC. ')
+
+ # Submit the request and return the results
+ return Completion._submit_request(session, payload)
+
+ @classmethod
+ def _initialize_session(cls, conversation_cookie) -> requests.Session:
+ """Initialize a session with custom headers for the request."""
+
+ session = requests.Session()
+ headers = {
+ 'Accept': '*/*',
+ 'Accept-Language': 'en-US,en;q=0.5',
+ 'Origin': 'https://cocalc.com',
+ 'Referer': 'https://cocalc.com/api/v2/openai/chatgpt',
+ 'Cookie': conversation_cookie,
+ 'User-Agent': UserAgent().random,
+ }
+ session.headers.update(headers)
+
+ return session
+
+ @staticmethod
+ def _create_payload(prompt: str, system_prompt: str) -> dict:
+ return {'input': prompt, 'system': system_prompt, 'tag': 'next:index'}
+
+ @staticmethod
+ def _submit_request(session: requests.Session, payload: dict) -> CoCalcResponse:
+ response = session.post('https://cocalc.com/api/v2/openai/chatgpt', json=payload).json()
+ return CoCalcResponse(text=response['output'], status=response['success'])
diff --git a/gpt4free/cocalc/readme.md b/gpt4free/cocalc/readme.md
new file mode 100644
index 00000000..f0911155
--- /dev/null
+++ b/gpt4free/cocalc/readme.md
@@ -0,0 +1,19 @@
+### Example: `cocalc` <a name="example-cocalc"></a>
+
+```python
+# import library
+from gpt4free import cocalc
+
+cocalc.Completion.create(prompt="How are you!", cookie_input="cookieinput") ## Tutorial
+```
+
+### How to grab cookie input
+```js
+// input this into ur developer tools console and the exact response u get from this u put into ur cookieInput!
+var cookies = document.cookie.split("; ");
+var cookieString = "";
+for (var i = 0; i < cookies.length; i++) {
+ cookieString += cookies[i] + "; ";
+}
+console.log(cookieString);
+```