The Wayback Machine - http://web.archive.org/web/20230318205047/https://github.com/acheong08/EdgeGPT
Skip to content

acheong08/EdgeGPT

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
March 17, 2023 18:46
February 9, 2023 19:55
src
March 17, 2023 22:52
February 15, 2023 12:44
February 9, 2023 19:54
February 15, 2023 08:30
March 5, 2023 10:53
February 10, 2023 12:02
March 17, 2023 18:46
February 20, 2023 12:02
March 17, 2023 18:55
EdgeGPT

Edge GPT

The reverse engineering the chat feature of the new version of Bing

PyPI version Python version


Table of Contents

Setup

Install package

python3 -m pip install EdgeGPT --upgrade

Requirements

Checking access (Required)

  • Install the latest version of Microsoft Edge
  • Open http://bing.com/chat
  • If you see a chat feature, you are good to go

Getting authentication (Required)

  • Install the cookie editor extension for Chrome or Firefox
  • Go to bing.com
  • Open the extension
  • Click "Export" on the bottom right (This saves your cookies to clipboard)
  • Paste your cookies into a file cookies.json

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 argument cookiePath 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())

Work in progress

  • Error handling

Star History

Star History Chart

Contributors

This project exists thanks to all the people who contribute.