Proyek ini telah diarsipkan. Karena keadaan pribadi, saya kekurangan waktu untuk memelihara repositori ini.
Rekayasa balik fitur obrolan Bing versi baru
Inggris - 简体中文 - 繁體中文 - Español - 日本語
python3 -m pip install EdgeGPT --upgrade
!!! MUNGKIN TIDAK DIPERLUKAN LAGI!!!
Di beberapa wilayah , Microsoft telah menyediakan fitur obrolan untuk semua orang, jadi Anda mungkin dapat melewati langkah ini . Anda dapat memeriksanya dengan browser (dengan agen pengguna yang disetel untuk mencerminkan Edge), dengan mencoba memulai obrolan tanpa masuk .
Ditemukan juga bahwa ini mungkin bergantung pada alamat IP Anda . Misalnya, jika Anda mencoba mengakses fitur obrolan dari IP yang diketahui termasuk dalam rentang pusat data (vServer, server root, VPN, proxy umum, ...), Anda mungkin diminta untuk masuk sambil bisa masuk mengakses fitur-fiturnya dengan baik dari alamat IP rumah Anda.
Jika Anda menerima kesalahan berikut, Anda dapat mencoba menyediakan cookie dan melihat apakah cookie berfungsi:
Exception: Authentication failed. You have not been accepted into the beta.
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
). Anda dapat melakukannya dengan mudah menggunakan ekstensi seperti "Pengalih dan Manajer Agen-Pengguna" untuk Chrome dan Firefox.bing_cookies_*.json
.bing_cookies_*.json
, sehingga dapat dikenali oleh mekanisme pemrosesan cookie internal cookies = json . loads ( open ( "./path/to/cookies.json" , encoding = "utf-8" ). read ()) # might omit cookies option
bot = await Chatbot . create ( cookies = cookies )
$ 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
usage: EdgeGPT.py [-h] [--enter-once] [--search-result] [--no-stream] [--rich] [--proxy PROXY] [--wss-link WSS_LINK]
[--style {creative,balanced,precise}] [--prompt PROMPT] [--cookie-file COOKIE_FILE]
[--history-file HISTORY_FILE] [--locale LOCALE]
options:
-h, --help show this help message and exit
--enter-once
--search-result
--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}
--prompt PROMPT prompt to start with
--cookie-file COOKIE_FILE
path to cookie file
--history-file HISTORY_FILE
path to history file
--locale LOCALE your locale (e.g. en-US, zh-CN, en-IE, en-GB)
(Tiongkok/AS/Inggris/Norwegia telah meningkatkan dukungan untuk lokal)
Chatbot
dan asyncio
untuk kontrol yang lebih terperinciGunakan Async untuk pengalaman terbaik, misalnya:
import asyncio , json
from EdgeGPT . EdgeGPT import Chatbot , ConversationStyle
async def main ():
bot = await Chatbot . create () # Passing cookies is "optional", as explained above
response = await bot . ask ( prompt = "Hello world" , conversation_style = ConversationStyle . creative , simplify_response = True )
print ( json . dumps ( response , indent = 2 )) # Returns
"""
{
"text": str,
"author": str,
"sources": list[dict],
"sources_text": str,
"suggestions": list[str],
"messages_left": int
}
"""
await bot . close ()
if __name__ == "__main__" :
asyncio . run ( main ())
Query
dan Cookie
Buat kueri Bing Chat AI sederhana (menggunakan gaya percakapan 'tepat' secara default) dan lihat output teks utama saja, bukan respons API keseluruhan:
Ingatlah untuk menyimpan cookie Anda dalam format tertentu: bing_cookies_*.json
.
from EdgeGPT . EdgeUtils import Query , Cookie
q = Query ( "What are you? Give your answer as Python code" )
print ( q )
Direktori default untuk menyimpan file Cookie adalah HOME/bing_cookies
tetapi Anda dapat mengubahnya dengan:
Cookie . dir_path = Path ( r"..." )
Atau ubah gaya percakapan atau file cookie yang akan digunakan:
q = Query (
"What are you? Give your answer as Python code" ,
style = "creative" , # or: 'balanced', 'precise'
cookie_file = "./bing_cookies_alternative.json"
)
# Use `help(Query)` to see other supported parameters.
Ekstrak dengan cepat output teks, cuplikan kode, daftar sumber/referensi, atau saran pertanyaan lanjutan dari respons menggunakan atribut berikut:
q . output # Also: print(q)
q . sources
q . sources_dict
q . suggestions
q . code
q . code_blocks
q . code_block_formatsgiven )
Dapatkan perintah asli dan gaya percakapan yang Anda tentukan:
q . prompt
q . ignore_cookies
q . style
q . simplify_response
q . locale
repr ( q )
Akses Kueri sebelumnya yang dibuat sejak mengimpor Query
:
Query . index # A list of Query objects; updated dynamically
Query . image_dir_path
Dan yang terakhir, kelas Cookie
mendukung beberapa file cookie, jadi jika Anda membuat file cookie tambahan dengan konvensi penamaan bing_cookies_*.json
, kueri Anda akan secara otomatis mencoba menggunakan file berikutnya (berdasarkan abjad) jika Anda telah melampaui kuota permintaan harian Anda ( saat ini ditetapkan pada 200).
Berikut adalah atribut utama yang dapat Anda akses:
Cookie . current_file_index
Cookie . current_file_path
Cookie . current_data
Cookie . dir_path
Cookie . search_pattern
Cookie . files
Cookie . image_token
Cookie . import_next
Cookie . rotate_cookies
Cookie . ignore_files
Cookie . supplied_files
Cookie . request_count
Ini mengasumsikan Anda memiliki file cookies.json di direktori kerja Anda saat ini
docker run --rm -it -v $( pwd ) /cookies.json:/cookies.json:ro -e COOKIE_FILE= ' /cookies.json ' ghcr.io/acheong08/edgegpt
Anda dapat menambahkan tanda tambahan sebagai berikut
docker run --rm -it -v $( pwd ) /cookies.json:/cookies.json:ro -e COOKIE_FILE= ' /cookies.json ' ghcr.io/acheong08/edgegpt --rich --style creative
$ 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
ImageQuery
Hasilkan gambar berdasarkan perintah sederhana dan unduh ke direktori kerja saat ini:
from EdgeGPT . EdgeUtils import ImageQuery
q = ImageQuery ( "Meerkats at a garden party in Devon" )
Ubah direktori unduhan untuk semua gambar masa depan di sesi ini:
Query.image_dirpath = Path("./to_another_folder")
ImageGen
dan asyncio
untuk kontrol yang lebih terperinci 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 ()
# 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 ))
Proyek ini ada berkat semua orang yang berkontribusi.