ChatGPT is a reverse engineering of OpenAI's ChatGPT API
Project description
ChatGPT
Reverse Engineered ChatGPT API by OpenAI. Extensible for chatbots etc.
Connect with me on Linkedin to support this project. (Not open for commercial opportunities yet. Too busy)
You can also follow me on Twitter to stay up to date.
OpenAI releasing official API soon
Official API released! I will add it to this repository soon -- Browserless!
Official API (Browserless, token required, paid)
Installation
pip3 install revChatGPT
Setup
- Create account on OpenAI
- Go to https://platform.openai.com/account/api-keys
- Copy API key
Usage
Command line
OfficialChatGPT --api_key API_KEY
(Assumes Python PyPi in PATH)
Developer
revChatGPT.Official
A simple wrapper for the official ChatGPT API
Chatbot Objects
class Chatbot()
Official ChatGPT API
__init__
def __init__(api_key: str) -> None
Initialize Chatbot with API key (from https://platform.openai.com/account/api-keys)
ask
def ask(user_request: str) -> dict
Send a request to ChatGPT and return the response
{
"id": "...",
"object": "text_completion",
"created": <time>,
"model": "text-chat-davinci-002-20230126",
"choices": [
{
"text": "<Response here>",
"index": 0,
"logprobs": null,
"finish_details": { "type": "stop", "stop": "<|endoftext|>" }
}
],
"usage": { "prompt_tokens": x, "completion_tokens": y, "total_tokens": z }
}
rollback
def rollback(num: int) -> None
Rollback chat history num times
reset
def reset() -> None
Reset chat history
Unofficial API (Browser required, free)
Installation
pip3 install revChatGPT[unofficial]
Configuration
Refer to the setup guide for more information.
Usage
Command line
python3 -m revChatGPT
!help - Show this message
!reset - Forget the current conversation
!refresh - Refresh the session authentication
!config - Show the current configuration
!rollback x - Rollback the conversation (x being the number of messages to rollback)
!exit - Exit this program
API
python3 -m GPTserver
HTTP POST request:
{
"session_token": "eyJhbGciOiJkaXIiL...",
"prompt": "Your prompt here"
}
Optional:
{
"session_token": "eyJhbGciOiJkaXIiL...",
"prompt": "Your prompt here",
"conversation_id": "UUID...",
"parent_id": "UUID..."
}
- Rate limiting is enabled by default to prevent simultaneous requests
Developer
from revChatGPT.ChatGPT import Chatbot
chatbot = Chatbot({
"session_token": "<YOUR_TOKEN>"
}, conversation_id=None, parent_id=None) # You can start a custom conversation
response = chatbot.ask("Prompt", conversation_id=None, parent_id=None) # You can specify custom conversation and parent ids. Otherwise it uses the saved conversation (yes. conversations are automatically saved)
print(response)
# {
# "message": message,
# "conversation_id": self.conversation_id,
# "parent_id": self.parent_id,
# }
Detailed Documentation (Auto-generated)
In wiki
Awesome ChatGPT
If you have a cool project you want added to the list, open an issue.
Disclaimers
This is not an official OpenAI product. This is a personal project and is not affiliated with OpenAI in any way. Don't sue me
Credits
- virtualharby - Memes for emotional support
- rawandahmad698 - Reverse engineering Auth0
- FlorianREGAZ - TLS client
- PyRo1121 - Linting
- Harry-Jing - Async support
- Ukenn2112 - Documentation
- aliferouss19 - Logo
- All other contributors
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for revChatGPT-1.0.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9ac571f00ffd65ae5abb01d482e9529c2bfda1c60cf7ac17890f7653d19237f8 |
|
MD5 | e28f1a57bcc6628841c4b5e40f91a8fc |
|
BLAKE2b-256 | f4207a1df3b9624044762d6fe314fe44c0a42fd19a834fa33b7c28773b91ba31 |