File size: 2,707 Bytes
cbd58d0
e097d14
 
e3f67ce
 
 
 
 
 
 
 
e097d14
 
 
e3f67ce
e097d14
 
 
 
e3f67ce
e097d14
 
 
 
 
e3f67ce
 
e097d14
3de061f
e097d14
 
295085f
bcd6bf2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
e097d14
 
 
 
 
 
3de061f
e097d14
73912cd
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
e097d14
 
 
 
 
 
 
73912cd
e097d14
 
 
73912cd
 
e097d14
 
 
73912cd
 
e097d14
 
 
 
 
73912cd
 
 
 
 
e097d14
 
 
 
 
 
 
 
63ae3ec
98e04a7
900675e
 
 
7a42723
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
# Edge GPT
ChatGPT with internet access

<details>
<summary>

## Setup (optional)
Completely optional, but recommended if you have beta access to Bing Chat
</summary>

### Requirements (Optional)
- A Microsoft Account with early access to http://bing.com/chat
- Microsoft Edge

### Checking access (Optional)
- 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 (Optional)
- Open the developer tools (F12)
- Go to the Application tab → Storage → Cookies
- Find the cookie named "_U"
- Copy the value of the cookie

</details>

## Installation
- `python3 -m pip install EdgeGPT`

## Demo usage
```
 $ 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
    
usage: EdgeGPT.py [-h] [--stream] [--bing-cookie BING_COOKIE]

options:
  -h, --help            show this help message and exit
  --stream
  --bing-cookie BING_COOKIE (Optional)
```

## Developer
Use Async for the best experience

```python
import asyncio
from EdgeGPT import Chatbot

def get_input(prompt):
    """
    Multi-line input function
    """
    # Display the prompt
    print(prompt, end="")

    # Initialize an empty list to store the input lines
    lines = []

    # Read lines of input until the user enters an empty line
    while True:
        line = input()
        if line == "":
            break
        lines.append(line)

    # Join the lines, separated by newlines, and store the result
    user_input = "\n".join(lines)

    # Return the input
    return user_input


async def main():
    """
    Main function
    """
    print("Initializing...")
    bot = Chatbot()
    while True:
        prompt = get_input("\nYou:\n")
        if prompt == "!exit":
            break
        elif prompt == "!help":
            print(
                """
            !help - Show this help message
            !exit - Exit the program
            !reset - Reset the conversation
            """,
            )
            continue
        elif prompt == "!reset":
            await bot.reset()
            continue
        print("Bot:")
        print(
            (await bot.ask(prompt=prompt))["item"]["messages"][1]["adaptiveCards"][0][
                "body"
            ][0]["text"],
        )
    await bot.close()


if __name__ == "__main__":
    asyncio.run(main())

```

## Work in progress
- Error handling

# Credits
- pig#8932 (Discord) - Sharing account with beta access
- [Jimmy-Z](https://github.com/Jimmy-Z) - Bugfixes