diff options
Diffstat (limited to '')
-rw-r--r-- | README.md | 1 | ||||
-rw-r--r-- | gpt4free/italygpt/README.md | 18 | ||||
-rw-r--r-- | gpt4free/italygpt/__init__.py | 28 |
3 files changed, 47 insertions, 0 deletions
@@ -109,6 +109,7 @@ Just API's from some language model sites. | [sqlchat.ai](https://sqlchat.ai) | GPT-3.5 | | [bard.google.com](https://bard.google.com) | custom / search | | [bing.com/chat](https://bing.com/chat) | GPT-4/3.5 | +| [italygpt.it](https://italygpt.it) | GPT-3.5 | ## Best sites <a name="best-sites"></a> diff --git a/gpt4free/italygpt/README.md b/gpt4free/italygpt/README.md new file mode 100644 index 00000000..984eff3a --- /dev/null +++ b/gpt4free/italygpt/README.md @@ -0,0 +1,18 @@ +### Example: `italygpt`
+
+```python
+# create an instance
+from gpt4free import italygpt
+italygpt = italygpt.Completion()
+
+# initialize api
+italygpt.init()
+
+# get an answer
+italygpt.create(prompt="What is the meaning of life?")
+print(italygpt.answer) # html formatted
+
+# keep the old conversation
+italygpt.create(prompt="Are you a human?", messages=italygpt.messages)
+print(italygpt.answer)
+```
\ No newline at end of file diff --git a/gpt4free/italygpt/__init__.py b/gpt4free/italygpt/__init__.py new file mode 100644 index 00000000..27a965f1 --- /dev/null +++ b/gpt4free/italygpt/__init__.py @@ -0,0 +1,28 @@ +import requests, time, ast, json
+from bs4 import BeautifulSoup
+from hashlib import sha256
+
+class Completion:
+ # answer is returned with html formatting
+ next_id = None
+ messages = []
+ answer = None
+
+ def init(self):
+ r = requests.get("https://italygpt.it")
+ soup = BeautifulSoup(r.text, "html.parser")
+ self.next_id = soup.find("input", {"name": "next_id"})["value"]
+
+ def create(self, prompt: str, messages: list = []):
+ try:
+ r = requests.get("https://italygpt.it/question", params={"hash": sha256(self.next_id.encode()).hexdigest(), "prompt": prompt, "raw_messages": json.dumps(messages)}).json()
+ except:
+ r = requests.get("https://italygpt.it/question", params={"hash": sha256(self.next_id.encode()).hexdigest(), "prompt": prompt, "raw_messages": json.dumps(messages)}).text
+ if "too many requests" in r.lower():
+ # rate limit is 17 requests per 1 minute
+ time.sleep(20)
+ return self.create(prompt, messages)
+ self.next_id = r["next_id"]
+ self.messages = ast.literal_eval(r["raw_messages"])
+ self.answer = r["response"]
+ return self
\ No newline at end of file |