mirror of
https://github.com/xtekky/gpt4free.git
synced 2024-11-10 15:14:41 +03:00
commit
43e5e21bbb
@ -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>
|
||||
|
||||
|
18
gpt4free/italygpt/README.md
Normal file
18
gpt4free/italygpt/README.md
Normal file
@ -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)
|
||||
```
|
28
gpt4free/italygpt/__init__.py
Normal file
28
gpt4free/italygpt/__init__.py
Normal file
@ -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
|
Loading…
Reference in New Issue
Block a user