Skip to content
This repository has been archived by the owner on Aug 3, 2023. It is now read-only.

Latest commit

 

History

History
262 lines (186 loc) · 7.83 KB

README_ja.md

File metadata and controls

262 lines (186 loc) · 7.83 KB
EdgeGPT

Edge GPT

Bing の新バージョンのチャット機能のリバースエンジニアリング

English - 简体中文 - 繁體中文 - Español - 日本語

PyPI version Python version Total downloads


設定

パッケージをインストール

python3 -m pip install EdgeGPT --upgrade

要件

  • python 3.8+
  • https://bing.com/chat に早期アクセスできる Microsoft アカウント(必須)
  • 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 Safari/537.36 Edg/111.0.1661.51)。ChromeFirefox の"User-Agent Switcher and Manager"のような拡張機能を使えば、簡単に行えます。
  • bing.com/chat を開く
  • チャット機能が表示されたら、準備完了

認証の取得 (必須)

  • Chrome または Firefox の Cookie エディター拡張機能をインストール
  • bing.com へ移動
  • 拡張機能を開く
  • 右下の"エクスポート"から"JSONとしてエクスポート"をクリック(これで Cookie がクリップボードに保存されます)
  • クッキーをファイル cookies.json に貼り付け

チャットボット

使用方法

クイックスタート

 $ python3 -m EdgeGPT.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

Docker での実行

これは、現在の作業ディレクトリに cookies.json ファイルがあることを前提としています

docker run --rm -it -v $(pwd)/cookies.json:/cookies.json:ro -e COOKIE_FILE='/cookies.json' ghcr.io/acheong08/edgegpt

次のように追加のフラグを追加できます

docker run --rm -it -v $(pwd)/cookies.json:/cookies.json:ro -e COOKIE_FILE='/cookies.json' ghcr.io/acheong08/edgegpt --rich --style creative

開発者デモ

Cookie を渡す 3 つの方法:

  • 環境変数: export COOKIE_FILE=/path/to/cookies.json

  • 引数 cookie_path には、次のように cookies.json へのパスを指定する:

    bot = Chatbot(cookie_path='./cookies.json')
  • 次のように、引数 cookies で直接クッキーを渡します:

    with open('./cookies.json', 'r') as f:
        cookies = json.load(f)
    bot = Chatbot(cookies=cookies)

最高のエクスペリエンスを得るには Async を使用してください

より高度な使用例の参照コード:

import asyncio
from EdgeGPT.EdgeGPT import Chatbot, ConversationStyle

async def main():
    bot = await Chatbot.create()
    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.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 EdgeGPT.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",
    )
    parser.add_argument(
        "--quiet", help="Disable pipeline messages", action="store_true"
    )
    parser.add_argument(
        "--asyncio", help="Run ImageGen using asyncio", action="store_true"
    )
    args = parser.parse_args()
    # 認証クッキーを読み込む
    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:
        # 画像ジェネレーターの作成
        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))

Star ヒストリー

Star History Chart

コントリビューター

このプロジェクトが存在するのはコントリビュートしてくださるすべての方々のおかげです。