EdgeGPTBing Chat 逆向工程

联合创作 · 2023-09-25 23:18

EdgeGPT 是 Bing Chat AI 逆向工程的 API。

设置

安装模块

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
  • 如果您看到聊天功能,就准备就绪

获取身份验证 (必需)

  • 安装 Chrome  Firefox 的 cookie editor 扩展
  • 移步到 bing.com
  • 打开扩展程序
  • 点击右下角的"导出" (将会把内容保存到你的剪贴板上)
  • 把你剪贴板上的内容粘贴到 cookies.json 文件中

图片生成

$ python3 -m ImageGen -h
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

开发演示

from ImageGen import ImageGen
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))
浏览 8
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报