故事始于一个充满好奇心的开发者,他对Bing全新GPT聊天功能充满兴趣,但发现官方API存在一些限制。于是,他决定自己动手,进行了反向工程,创建了这个非官方的EdgeGPT项目,以解锁更多人使用Bing GPT聊天功能的可能性。
安装EdgeGPT
EdgeGPT的安装非常简单,只需运行以下命令:
python3 -m pip install EdgeGPT --upgrade
请注意,EdgeGPT需要Python的版本为3.8或更高版本。根据您的地区,您可能需要一个具有访问https://bing.com/chat的Microsoft帐户。
配置EdgeGPT
要使用EdgeGPT,您需要进行一些配置,以便进行身份验证和设置API选项。以下是配置的步骤:
-
首先,您需要一个Microsoft帐户,并确保具有访问https://bing.com/chat的权限(根据您的地区可能需要)。
-
您可以使用自己的帐户身份验证信息,也可以尝试不使用身份验证(根据地区的不同,可能无需身份验证)。
-
如果需要身份验证,您可以尝试提供Cookie以进行身份验证。
使用EdgeGPT
您可以使用EdgeGPT通过命令行界面或开发API进行交互。
命令行界面
要在命令行中使用EdgeGPT,只需运行以下命令:
python3 -m EdgeGPT.EdgeGPT -h
命令行界面支持多种参数选项,以满足不同需求。您可以使用命令行界面与Bing GPT进行互动,并探索其各种功能。
开发API
如果您希望在自己的应用程序中使用EdgeGPT,可以使用开发API。以下是一些基本示例:
基本示例:
import asyncio, json
from EdgeGPT.EdgeGPT import Chatbot, ConversationStyle
async def main():
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())
Query 和 Cookie 助手类
您可以使用Query和Cookie助手类来更灵活地生成查询和管理Cookie。这些助手类可帮助您自定义查询和管理Cookie文件。
使用Docker
如果您使用Docker,可以使用以下命令运行EdgeGPT,假设您已经在当前工作目录中有一个名为cookies.json
的Cookie文件:
docker run --rm -it -v $(pwd)/cookies.json:/cookies.json:ro -e COOKIE_FILE='/cookies.json' ghcr.io/acheong08/edgegpt
您还可以添加其他标志来自定义EdgeGPT的行为。
图像生成器的使用
EdgeGPT还包括一个图像生成器,可以根据提示生成图像。您可以从命令行界面或Python代码中使用它。
命令行界面
要从命令行中使用图像生成器,只需运行以下命令:
python3 -m ImageGen.ImageGen -h
命令行界面支持多种参数选项,以满足不同需求。您可以使用图像生成器根据提示生成图像。
在Python中运行
如果您希望在Python代码中使用图像生成器,可以使用ImageGen类。以下是一个示例:
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()
# 省略部分参数解析代码,详见上述配置部分
args = parser.parse_args()
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))
结语
EdgeGPT是一个令人兴奋的项目,它为开发者提供了更多自由和灵活性,以探索和利用Bing GPT聊天功能的潜力。无论您是要创建自己的聊天机器人还是进行创新性的实验,EdgeGPT都可以成为您的强大工具。希望您享受使用EdgeGPT的过程,并探索各种有趣的应用场景!