Reverse engineered Edge Chat API
Project description
Edge GPT
The reverse engineering the chat feature of the new version of Bing
Table of Contents
Setup
Install package
python3 -m pip install EdgeGPT --upgrade
Requirements
- python 3.8+
- A Microsoft Account with early access to https://bing.com/chat (Required)
Checking access (Required)
- Install the latest version of Microsoft Edge
- Alternatively, you can use any browser and set the user-agent to look like you're using Edge (e.g.,
Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36 Edg/109.0.1474.0
). You can do this easily with an extension like "User-Agent Switcher and Manager" for Chrome and Firefox. - Open bing.com/chat
- If you see a chat feature, you are good to go
Getting authentication (Required)
Chatbot
Usage
Quick start
$ python3 -m EdgeGPT -h
EdgeGPT - A demo of reverse engineering the Bing GPT chatbot
Repo: github.com/acheong08/EdgeGPT
By: Antonio Cheong
!help for help
Type !exit to exit
Enter twice to send message or set --enter-once to send one line message
usage: EdgeGPT.py [-h] [--enter-once] [--no-stream] [--style {creative,balanced,precise}] --cookie-file COOKIE_FILE
options:
-h, --help show this help message and exit
--enter-once
--no-stream
--style {creative,balanced,precise}
--cookie-file COOKIE_FILE
Developer demo
Three ways to pass in cookies:
-
Environment variable:
export COOKIE_FILE=/path/to/cookies.json
. -
Specify the path to
cookies.json
in the argumentcookiePath
like this:bot = Chatbot(cookiePath='./cookie.json')
-
Pass in the cookies directly by the argument
cookies
, like this:with open('./cookie.json', 'r') as f: cookies = json.load(f) bot = Chatbot(cookies=cookies)
Use Async for the best experience
Reference code for more advanced example of usage:
import asyncio
from EdgeGPT import Chatbot, ConversationStyle
async def main():
bot = Chatbot()
print(await bot.ask(prompt="Hello world", conversation_style=ConversationStyle.creative))
await bot.close()
if __name__ == "__main__":
asyncio.run(main())
Image generator
$ python3 -m ImageGen -h
usage: ImageGen.py [-h] --U U --prompt PROMPT [--output-dir OUTPUT_DIR]
options:
-h, --help show this help message and exit
--U U Auth cookie from browser
--prompt PROMPT Prompt to generate images for
--output-dir OUTPUT_DIR
Output directory
Developer demo
from ImageGen import ImageGen
if __name__ == "__main__":
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--U", help="Auth cookie from browser", type=str, required=True)
parser.add_argument(
"--prompt", help="Prompt to generate images for", type=str, required=True
)
parser.add_argument(
"--output-dir", help="Output directory", type=str, default="./output"
)
args = parser.parse_args()
# Create image generator
image_generator = ImageGen(args.U)
image_generator.saveImages(
image_generator.getImages(args.prompt), output_dir=args.output_dir
)
Star History
Contributors
This project exists thanks to all the people who contribute.
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
EdgeGPT-0.1.0.tar.gz
(9.2 kB
view hashes)
Built Distribution
EdgeGPT-0.1.0-py3-none-any.whl
(10.3 kB
view hashes)