EdgeGPT 是 Bing Chat AI 逆向工程的 API。
设置
安装模块
要求
- 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
- 如果您看到聊天功能,就准备就绪
获取身份验证 (必需)
- 安装 Chrome 或 Firefox 的 cookie editor 扩展
- 移步到
bing.com
- 打开扩展程序
- 点击右下角的”导出” (将会把内容保存到你的剪贴板上)
- 把你剪贴板上的内容粘贴到
cookies.json
文件中
图片生成
usage: ImageGen.py [-h] [-U U] [–cookie-file COOKIE_FILE] –prompt PROMPT [–output-dir OUTPUT_DIR] [–quiet] [–asyncio]
optional arguments:
-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
–quiet Disable pipeline messages
–asyncio Run ImageGen using asyncio
开发演示
import argparse
import json
async def async_image_gen(args) -> None:
async with ImageGenAsync(args.U, args.quiet) as image_generator:
images = await image_generator.get_images(args.prompt)
await image_generator.save_images(images, output_dir=args.output_dir)
if __name__ == “__main__”:
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”)
if not args.asyncio:
# Create image generator
image_generator = ImageGen(args.U, args.quiet)
image_generator.save_images(
image_generator.get_images(args.prompt),
output_dir=args.output_dir,
)
else:
asyncio.run(async_image_gen(args))