From 4d15b77a203a46ecb8c90886bbda923d92f1db59 Mon Sep 17 00:00:00 2001 From: "No.5972" <32865305+No5972@users.noreply.github.com> Date: Wed, 28 Jun 2023 16:51:01 +0800 Subject: [PATCH] sync zh-SC & zh-TC readme (#574) * Update README_zh-cn.md * Update README_zh-tw.md * Update README_zh-tw.md * Update README_zh-tw.md * Update README_zh-cn.md * Update README_zh-cn.md * Update README_zh-tw.md --- docs/README_zh-cn.md | 163 ++++++++++++++++------------------------- docs/README_zh-tw.md | 170 +++++++++++++++++-------------------------- 2 files changed, 126 insertions(+), 207 deletions(-) diff --git a/docs/README_zh-cn.md b/docs/README_zh-cn.md index cf84c183d..f3fbcd6b0 100644 --- a/docs/README_zh-cn.md +++ b/docs/README_zh-cn.md @@ -22,7 +22,7 @@ _新必应聊天功能的逆向工程_

-
+
@@ -30,41 +30,33 @@ _新必应聊天功能的逆向工程_ -### 安装模块 +## 安装模块 ```bash python3 -m pip install EdgeGPT --upgrade ``` -### 要求 +## 要求 + - python 3.8+ - 一个可以访问必应聊天的微软账户 (可选,视所在地区而定) - 需要在 New Bing 支持的国家或地区(中国大陆需使用VPN) - [Selenium](https://pypi.org/project/selenium/) (对于需要自动配置cookie的情况) -
-
- - - -# 聊天机器人 - - - ## 身份验证 -基本上不需要了。在部分地区,微软已将聊天功能开放给所有人,这一步或许可以省略了。可以使用浏览器来确认(将 UA 设置为能表示为 Edge 的),试一下能不能不登录就可以开始聊天。 +基本上不需要了。 -但是也得看当前所在地区。例如,如果试图从一个已知属于数据中心范围的 IP 来访问聊天功能(虚拟服务器、根服务器、虚拟专网、公共代理等),可能就需要登录;但是要是用家里的 IP 地址访问聊天功能,就没有问题。如果收到这样的错误,可以试试提供一个 cookie 看看能不能解决:```Exception: Authentication failed. You have not been accepted into the beta.``` +**在部分地区**,微软已将聊天功能**开放**给所有人,或许可以**省略这一步**了。可以使用浏览器来确认(将 UA 设置为能表示为 Edge 的),**试一下能不能不登录就可以开始聊天**。 -
+可能也得**看当前所在 IP 地址**。例如,如果试图从一个已知**属于数据中心范围**的 IP 来访问聊天功能(虚拟服务器、根服务器、虚拟专网、公共代理等),**可能就需要登录**;但是要是用家里的 IP 地址访问聊天功能,就没有问题。 - +如果收到这样的错误,可以试试**提供一个 cookie** 看看能不能解决: -### 收集 cookie +`Exception: Authentication failed. You have not been accepted into the beta.` - +### 收集 cookie 1. 获取一个看着像 Microsoft Edge 的浏览器。 @@ -77,16 +69,27 @@ python3 -m pip install EdgeGPT --upgrade 5. 移步到 [bing.com](https://bing.com) 6. 打开扩展程序 7. 点击右下角的"导出" ,然后点击"导出为 JSON" (将会把内容保存到你的剪贴板上) -8. 把你剪贴板上的内容粘贴到 `cookies.json` 文件中 +8. 把你剪贴板上的内容粘贴到 `bing_cookies_*.json` 文件中 + * 注意:**Cookie 文件名必须遵守正则表达式 `bing_cookies_*.json`**,这样才能让本模块的 cookie 处理程序识别到。 -
-### 在代码中: + +### 在代码中使用 cookie: ```python cookies = json.loads(open("./path/to/cookies.json", encoding="utf-8").read()) # 可能会忽略 cookie 选项 bot = await Chatbot.create(cookies=cookies) ``` +
+ +
+ + + +# 如何使用聊天机器人 + + + ## 从命令行运行 ``` @@ -99,7 +102,6 @@ bot = await Chatbot.create(cookies=cookies) !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] [--search-result] [--no-stream] [--rich] [--proxy PROXY] [--wss-link WSS_LINK] [--style {creative,balanced,precise}] [--prompt PROMPT] [--cookie-file COOKIE_FILE] @@ -121,7 +123,6 @@ options: path to history file --locale LOCALE your locale (e.g. en-US, zh-CN, en-IE, en-GB) ``` - (中/美/英/挪具有更好的本地化支持) ## 在 Python 运行 @@ -131,90 +132,28 @@ options: 使用 async 获得最佳体验,例如: ```python -import asyncio +import asyncio, json from EdgeGPT.EdgeGPT import Chatbot, ConversationStyle async def main(): - bot = await Chatbot.create() - print(await bot.ask(prompt="Hello world", conversation_style=ConversationStyle.creative)) + bot = await Chatbot.create() # 导入 cookie 是“可选”的,如前所述 + response = await bot.ask(prompt="Hello world", conversation_style=ConversationStyle.creative, simplify_response=True) + print(json.dumps(response, indent=2)) # 返回下面这些 + """ +{ + "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()) ``` - -
- - -### 2) `Query` 和 `Cookie` 助手类 - - - -创建一个简易的必应聊天 AI 查询(默认使用精确模式),这样可以只查看主要的文字输出,而不会打出整个 API 响应内容: - -注意按照特定格式保存 cookie:`bing_cookies_*.json`. - - -```python -from EdgeGPT.EdgeUtils import Query, Cookie - -q = Query("你是谁?用python代码给出回答") -print(q) -``` - -也可以修改对话模式,或者指定要使用的 cookie 文件: - -```python -q = Query( - "你是谁?用python代码给出回答", - style="creative", # 或者平衡模式 'balanced' - cookies="./bing_cookies_alternative.json" -) -``` - -使用以下属性快速提取文本输出、代码片段、来源/参考列表或建议的后续问题: - -```python -q.output -q.code -q.suggestions -q.sources # 用于完整的 JSON 输出 -q.sources_dict # 用于标题和 URL 的字典 -``` - -获得原始 prompt 和指定的对话模式: - -```python -q.prompt -q.style -repr(q) -``` - -通过 import `Query` 获取之前的查询: - -```python -Query.index # 一个查询对象的列表;是动态更新的 -Query.request_count # 使用每个 cookie 文件发出的请求数 -``` - -最后,`Cookie` 类支持多个 Cookie 文件,因此,如果您使用命名约定 `bing_cookies_*.json` 创建其他 Cookie 文件,那么如果超过了每日请求配额(目前设置为 200),查询将自动尝试使用下一个文件(按字母顺序)。 - -这些是可以访问的主要属性: - -```python -Cookie.current_file_index -Cookie.dirpath -Cookie.search_pattern # 默认为 `bing_cookies_*.json` -Cookie.files() # 匹配 .search_pattern 的文件列表 -Cookie.current_filepath -Cookie.current_data -Cookie.import_next() -Cookie.image_token -Cookie.ignore_files -``` - -
- --- ## 使用 Docker 运行 @@ -222,22 +161,26 @@ Cookie.ignore_files 假设当前工作目录有一个文件 `cookies.json` ```bash + docker run --rm -it -v $(pwd)/cookies.json:/cookies.json:ro -e COOKIE_FILE='/cookies.json' ghcr.io/acheong08/edgegpt ``` 可以像这样添加任意参数 ```bash + docker run --rm -it -v $(pwd)/cookies.json:/cookies.json:ro -e COOKIE_FILE='/cookies.json' ghcr.io/acheong08/edgegpt --rich --style creative ```
-
+
+ +
-# 图片生成 +# 如何使用图片生成器 @@ -324,7 +267,7 @@ if __name__ == "__main__": raise Exception("未能找到认证 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), @@ -337,14 +280,30 @@ if __name__ == "__main__":
+
+ + + # Star 历史 + + [![Star History Chart](https://api.star-history.com/svg?repos=acheong08/EdgeGPT&type=Date)](https://star-history.com/#acheong08/EdgeGPT&Date) +
+ +
+ + + # 贡献者 + + 这个项目的存在要归功于所有做出贡献的人。 + +
diff --git a/docs/README_zh-tw.md b/docs/README_zh-tw.md index ede909cb3..d4a4d879e 100644 --- a/docs/README_zh-tw.md +++ b/docs/README_zh-tw.md @@ -22,7 +22,7 @@ _新必應聊天功能的逆向工程_

-
+
@@ -30,41 +30,33 @@ _新必應聊天功能的逆向工程_ -### 安裝模組 +## 安裝模組 ```bash python3 -m pip install EdgeGPT --upgrade ``` -### 要求 +## 要求 + - python 3.8+ - 一個可以訪問必應聊天的微軟帳戶 (可選,取決於所在地區) - 需要在 New Bing 支持的國家或地區(中國大陸需使用VPN) - [Selenium](https://pypi.org/project/selenium/) (對於需要自動配置cookie的情況) -
-
- - - -# 聊天機器人 - - - ## 認證 -基本上不需要了。在某些地區,微軟已向所有人提供聊天功能,這一步或許可以省略了。您可以使用瀏覽器進行檢查(將 UA 設置為能表示為 Edge 的),嘗試能否在不登錄的情況下開始聊天。 +基本上不需要了。 -但是也得看當前所在地區。 例如,如果試圖從一個已知屬於數據中心範圍的 IP 來訪問聊天功能(虛擬伺服器、根伺服器、虛擬專網、公共代理等),可能就需要登錄;但是要是用家裡的 IP 位址訪問聊天功能,就沒有問題。 如果收到這樣的錯誤,可以試試提供一個cookie看看能不能解決:```Exception: Authentication failed. You have not been accepted into the beta.``` +**在某些地區**,微軟已將聊天功能**開放**給所有人,或許可以**省略這一步**了。您可以使用瀏覽器進行檢查(將 UA 設置為能表示為 Edge 的),**嘗試能否在不登錄的情況下開始聊天**。 -
+可能也得**看當前所在 IP 位址**。例如,如果試圖從一個已知**屬於數據中心範圍**的 IP 來訪問聊天功能(虛擬伺服器、根伺服器、虛擬專網、公共代理等),**可能就需要登錄**;但是要是用家裡的 IP 位址訪問聊天功能,就沒有問題。 - +如果收到這樣的錯誤,可以試試**提供一個 cookie** 看看能不能解決: -### 收集 cookie +`Exception: Authentication failed. You have not been accepted into the beta.` - +### 收集 cookie 1. 獲取一個看著像 Microsoft Edge 的瀏覽器。 @@ -77,17 +69,28 @@ python3 -m pip install EdgeGPT --upgrade 5. 轉到 [bing.com](https://bing.com) 6. 打開擴展程式 7. 單擊右下角的「匯出」,然後按「匯出為 JSON」(這會將您的 cookie 保存到剪貼簿) -8. 將您剪貼簿上的 cookie 粘貼到檔 `cookies.json` 中 +8. 將您剪貼簿上的 cookie 粘貼到檔 `bing_cookies_*.json` 中 + * 注意:**cookie 檔名必須遵循正則表示式 `bing_cookies_*.json`**,這樣才能讓本模組的 cookie 處理程式識別到。 -
-### 在代碼中: + +### 在代碼中使用 cookie: ```python -cookies = json.loads(open("./path/to/cookies.json", encoding="utf-8").read()) #可能會省略 cookie 選項 +cookies = json.loads(open("./path/to/cookies.json", encoding="utf-8").read()) # 可能会忽略 cookie 选项 bot = await Chatbot.create(cookies=cookies) ``` -## 從命令行運行 +
+ +
+ + + +# 如何使用聊天機器人 + + + +## 從命令列運行 ``` $ python3 -m EdgeGPT.EdgeGPT -h @@ -99,7 +102,6 @@ bot = await Chatbot.create(cookies=cookies) !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] [--search-result] [--no-stream] [--rich] [--proxy PROXY] [--wss-link WSS_LINK] [--style {creative,balanced,precise}] [--prompt PROMPT] [--cookie-file COOKIE_FILE] @@ -121,7 +123,6 @@ options: path to history file --locale LOCALE your locale (e.g. en-US, zh-CN, en-IE, en-GB) ``` - (中/美/英/挪具有更好的本地化支援) ## 在 Python 運行 @@ -131,116 +132,59 @@ options: 使用 async 獲得最佳體驗,例如: ```python -import asyncio +import asyncio, json from EdgeGPT.EdgeGPT import Chatbot, ConversationStyle async def main(): - bot = await Chatbot.create() - print(await bot.ask(prompt="Hello world", conversation_style=ConversationStyle.creative)) + bot = await Chatbot.create() # 導入 cookie 是“可選”的,如前所述 + response = await bot.ask(prompt="Hello world", conversation_style=ConversationStyle.creative, simplify_response=True) + print(json.dumps(response, indent=2)) # 返回如下 + """ +{ + "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()) ``` - -
- - -### 2) `Query` 和 `Cookie` 助手類 - - - -創建一個簡單的必應聊天 AI 查詢(預設情況下使用“精確”對話樣式),這樣可以僅查看主要文本輸出,而不是整個 API 回應: - -注意按照特定格式儲存 cookie: ```bing_cookies_*.json```。 - -```python -from EdgeGPT.EdgeUtils import Query, Cookie - -q = Query("你是誰?用python代碼給出回答") -print(q) -``` - -或者更改要使用的對話風格或 Cookie 檔: - -```python -q = Query( - "你是誰?用python代碼給出回答", - style="creative", # 或者平衡模式 'balanced' - cookies="./bing_cookies_alternative.json" -) -``` - -使用以下屬性快速提取文字輸出、代碼片段、來源/參考清單或建議的後續問題: - -```python -q.output -q.code -q.suggestions -q.sources # 用於完整的 JSON 輸出 -q.sources_dict # 用於標題和 URL 的字典 -``` - -抓取原始 prompt 與您指定的對話風格: - -```python -q.prompt -q.style -repr(q) -``` - -通過 import `Query` 獲取進行的先前查詢: - -```python -Query.index # 一个查詢物件的串列;是動態更新的 -Query.request_count # 使用每個 cookie 檔發出的請求的計數 -``` - -最後,`Cookie` 類支援多個 cookie 檔,因此,如果您使用命名約定 `bing_cookies_*.json` 創建其他 cookie 檔,則如果您的請求數已超出每日配額(當前設置為 200),您的查詢將自動嘗試使用下一個檔(按字母順序)。 - -以下是您可以獲得的主要屬性: - -```python -Cookie.current_file_index -Cookie.dirpath -Cookie.search_pattern # 默認情況下 `bing_cookies_*.json` -Cookie.files() # 匹配 .search_pattern 的檔案串列 -Cookie.current_filepath -Cookie.current_data -Cookie.import_next() -Cookie.image_token -Cookie.ignore_files -``` - -
- --- ## 使用 Docker 運行 -假設在當前工作目錄中有一個檔 `cookie.json` +假設在當前工作目錄中有一個檔 `cookies.json` ```bash + docker run --rm -it -v $(pwd)/cookies.json:/cookies.json:ro -e COOKIE_FILE='/cookies.json' ghcr.io/acheong08/edgegpt ``` 可以像這樣添加任意參數 ```bash + docker run --rm -it -v $(pwd)/cookies.json:/cookies.json:ro -e COOKIE_FILE='/cookies.json' ghcr.io/acheong08/edgegpt --rich --style creative ```
-
+
+ +
-# 圖像生成 +# 如何使用圖像生成器 -## 從命令行運行 +## 從命令列運行 ```bash $ python3 -m ImageGen.ImageGen -h @@ -323,7 +267,7 @@ if __name__ == "__main__": raise Exception("找不到身份驗證 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), @@ -336,14 +280,30 @@ if __name__ == "__main__":
+
+ + + # Star 歷史 + + [![Star History Chart](https://api.star-history.com/svg?repos=acheong08/EdgeGPT&type=Date)](https://star-history.com/#acheong08/EdgeGPT&Date) +
+ +
+ + + # 貢獻者 + + 這個專案的存在要歸功於所有做出貢獻的人。 + +