python3 -m pip install EdgeGPT --upgrade
- python 3.8+
- 一个已经通过候补名单的微软账户 https://bing.com/chat (必填)
- 需要在 New Bing 支持的国家(中国大陆需使用VPN)
- 安装最新版本的 Microsoft Edge
- 或者, 您可以使用任何浏览器并将用户代理设置为Edge的用户代理 (例如
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36 Edg/111.0.1661.51
). 您可以使用像 "User-Agent Switcher and Manager" Chrome 和 Firefox 这样的扩展轻松完成此操作. - 打开 bing.com/chat
- 如果您看到聊天功能,就准备就绪
$ 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] [--rich] [--proxy PROXY] [--wss-link WSS_LINK] [--style {creative,balanced,precise}]
[--cookie-file COOKIE_FILE]
options:
-h, --help show this help message and exit
--enter-once
--no-stream
--rich
--proxy PROXY Proxy URL (e.g. socks5://127.0.0.1:1080)
--wss-link WSS_LINK WSS URL(e.g. wss://sydney.bing.com/sydney/ChatHub)
--style {creative,balanced,precise}
--cookie-file COOKIE_FILE
needed if environment variable COOKIE_FILE is not set
传入 cookie 的三种方式:
-
设置环境变量:
export COOKIE_FILE=/path/to/cookies.json
. -
像这样把
cookies.json
的路径传入cookiePath
参数中:bot = Chatbot(cookiePath='./cookie.json')
-
通过参数
cookie
传入 cookie,如下所示:with open('./cookie.json', 'r') as f: cookies = json.load(f) bot = Chatbot(cookies=cookies)
使用 aysnc 获得最佳体验
更高级用法示例的参考代码:
import asyncio
from EdgeGPT import Chatbot, ConversationStyle
async def main():
bot = Chatbot()
print(await bot.ask(prompt="Hello world", conversation_style=ConversationStyle.creative,wss_link="wss://sydney.bing.com/sydney/ChatHub"))
await bot.close()
if __name__ == "__main__":
asyncio.run(main())
$ python3 -m ImageGen -h
usage: ImageGen.py [-h] [-U U] [--cookie-file COOKIE_FILE] --prompt PROMPT [--output-dir OUTPUT_DIR]
options:
-h, --help show this help message and exit
-U U Auth cookie from browser
--cookie-file COOKIE_FILE
File containing auth cookie
--prompt PROMPT Prompt to generate images for
--output-dir OUTPUT_DIR
Output directory
from ImageGen import ImageGen
if __name__ == "__main__":
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("-U", help="Auth cookie from browser", type=str)
parser.add_argument("--cookie-file", help="File containing auth cookie", type=str)
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()
# Load auth cookie
with open(args.cookie_file, encoding="utf-8") as file:
cookie_json = json.load(file)
for cookie in cookie_json:
if cookie.get("name") == "_U":
args.U = cookie.get("value")
break
if args.U is None:
raise Exception("Could not find auth cookie")
# Create image generator
image_generator = ImageGen(args.U)
image_generator.save_images(
image_generator.get_images(args.prompt),
output_dir=args.output_dir,
)
这个项目的存在要归功于所有做出贡献的人。