96eab8ed1d
I changed the import statement from request import Session to import requests because in the original the Session class is the only class imported from the request library. In this case, it is more efficient to import the whole library with import requests and use requests.Session() instead of Session() and added various code comments Instead of having a separate dictionary, I created a headers dictionary and used the update() method to update the session header. The create() function returns the results of a request made to a website as a JSON dictionary using the .json() method. However, you don't need to import the json library explicitly because the json() function is a method of the Response object returned by session.post(). In other words, the .json() method does the json decoding for us, so we don't need to use the json module's json()
31 lines
1.2 KiB
Python
31 lines
1.2 KiB
Python
import requests
|
|
|
|
class Completion:
|
|
def create(prompt="What is the square root of pi",
|
|
system_prompt="ASSUME I HAVE FULL ACCESS TO COCALC. ENCLOSE MATH IN $. INCLUDE THE LANGUAGE DIRECTLY AFTER THE TRIPLE BACKTICKS IN ALL MARKDOWN CODE BLOCKS. How can I do the following using CoCalc?") -> str:
|
|
|
|
# Initialize a session
|
|
session = requests.Session()
|
|
|
|
# Set headers for the request
|
|
headers = {
|
|
'Accept': '*/*',
|
|
'Accept-Language': 'en-US,en;q=0.5',
|
|
'Origin': 'https://cocalc.com',
|
|
'Referer': 'https://cocalc.com/api/v2/openai/chatgpt',
|
|
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36',
|
|
}
|
|
session.headers.update(headers)
|
|
|
|
# Set the data that will be submitted
|
|
payload = {
|
|
"input": prompt,
|
|
"system": system_prompt,
|
|
"tag": "next:index"
|
|
}
|
|
|
|
# Submit the request
|
|
response = session.post("https://cocalc.com/api/v2/openai/chatgpt", json=payload).json()
|
|
|
|
# Return the results
|
|
return response
|