EdgeGPT:微软必应聊天AI的逆向工程API全解析
你还在为无法自由调用微软必应聊天AI(Bing Chat AI)而烦恼吗?作为普通用户,想在自己的程序中集成这项强大的AI能力却苦于没有官方API?本文将带你全面了解EdgeGPT——这个由开发者逆向工程实现的必应聊天AI接口,让你无需复杂配置就能轻松接入AI对话能力。读完本文,你将掌握EdgeGPT的安装配置、核心功能使用以及实际应用场景,让AI对话能力成为你项目中的得力助手。
项目概述:打破壁垒的EdgeGPT
EdgeGPT是一个开源项目,其核心功能是对微软必应聊天AI的API进行逆向工程,从而提供一套可供开发者直接使用的接口。项目路径为gh_mirrors/ed/EdgeGPT,主要目标是让开发者能够绕过官方限制,在合规合法的前提下自由地在自己的应用中集成必应聊天AI的功能。
该项目的核心文件结构清晰,主要包含以下几个部分:
- 核心代码目录:src/EdgeGPT/,包含了实现聊天功能的EdgeGPT.py和图像生成的ImageGen.py等关键文件
- 文档目录:docs/,提供了详细的使用说明,如docs/README_zh-cn.md和docs/wiki/EdgeGPT.md
- 配置文件:如requirements.txt和example.env
快速上手:从安装到首次对话
环境准备与安装
使用EdgeGPT非常简单,首先需要确保你的环境满足以下要求:
- Python 3.8或更高版本
- 能够访问必应聊天的微软账户(部分地区可能需要)
- 网络环境需在必应聊天支持的国家或地区
安装EdgeGPT模块的命令非常简单,只需在终端中执行:
python3 -m pip install EdgeGPT --upgrade
如果你需要从源码安装,可以通过以下命令获取项目:
git clone https://gitcode.com/gh_mirrors/ed/EdgeGPT
cd EdgeGPT
python3 -m pip install -r requirements.txt
python3 setup.py install
身份验证配置
在大多数地区,微软已将聊天功能开放给所有人,可能不需要额外的身份验证。但如果你遇到了Exception: Authentication failed.错误,就需要提供cookie来解决。
获取cookie的步骤如下:
- 使用Microsoft Edge浏览器访问https://bing.com/chat
- 安装Chrome或Firefox的cookie editor扩展
- 访问https://bing.com,打开扩展程序
- 点击"导出"并选择"导出为JSON",将内容保存到剪贴板
- 将剪贴板内容粘贴到
bing_cookies_*.json文件中(文件名必须符合此模式)
在代码中使用cookie的方式如下:
import json
from EdgeGPT.EdgeGPT import Chatbot
cookies = json.loads(open("./path/to/cookies.json", encoding="utf-8").read())
bot = await Chatbot.create(cookies=cookies)
首次对话:命令行与Python API
安装完成后,你可以直接通过命令行启动EdgeGPT聊天:
python3 -m EdgeGPT.EdgeGPT
这将启动一个交互式对话界面,你可以直接输入问题与AI对话。
如果你想在Python代码中使用EdgeGPT,可以通过以下简单示例实现:
import asyncio
from EdgeGPT.EdgeGPT import Chatbot, ConversationStyle
async def main():
# 创建聊天机器人实例
bot = await Chatbot.create()
# 发送问题并获取回答
response = await bot.ask(
prompt="你好,介绍一下你自己",
conversation_style=ConversationStyle.creative,
simplify_response=True
)
# 打印回答结果
print(response["text"])
# 关闭连接
await bot.close()
if __name__ == "__main__":
asyncio.run(main())
核心功能解析:聊天与图像生成
聊天机器人核心功能
EdgeGPT的聊天功能主要通过src/EdgeGPT/EdgeGPT.py中的Chatbot类实现。这个类提供了丰富的方法来管理和进行对话:
ask(prompt, conversation_style): 发送问题并获取回答ask_stream(prompt): 以流的方式获取回答,适合实时显示save_conversation(filename): 保存对话历史到文件load_conversation(filename): 从文件加载对话历史reset(): 重置对话
对话风格可以通过ConversationStyle来指定,主要有三种类型:
creative: 创意模式,回答更具创造性和想象力balanced: 平衡模式,兼顾创造性和准确性precise: 精确模式,回答更注重事实和准确性
以下是一个使用不同对话风格的示例:
from EdgeGPT.EdgeGPT import ConversationStyle
# 创意模式
creative_response = await bot.ask(
prompt="写一首关于人工智能的诗",
conversation_style=ConversationStyle.creative
)
# 精确模式
precise_response = await bot.ask(
prompt="什么是人工智能?请给出准确的定义",
conversation_style=ConversationStyle.precise
)
图像生成功能
除了聊天功能,EdgeGPT还提供了图像生成能力,通过src/EdgeGPT/ImageGen.py中的ImageGen类实现。使用图像生成功能同样简单直观。
从命令行使用图像生成功能:
python3 -m ImageGen.ImageGen --prompt "在花园派对上的猫鼬" --output-dir ./images
在Python代码中使用图像生成:
from EdgeGPT.ImageGen import ImageGen
# 创建图像生成器实例
image_generator = ImageGen(auth_cookie="你的认证cookie")
# 生成图像链接
images = image_generator.get_images("在花园派对上的猫鼬")
# 保存图像
image_generator.save_images(images, output_dir="./images")
EdgeGPT还提供了一个更简单的ImageQuery助手类,可以一行代码实现图像生成:
from EdgeGPT.EdgeUtils import ImageQuery
# 生成图像并保存到当前目录
q = ImageQuery("在花园派对上的猫鼬")
高级应用:深入EdgeGPT功能
对话历史管理
EdgeGPT提供了对话历史的保存和加载功能,这对于需要持续对话的应用场景非常有用。
保存对话历史:
await bot.save_conversation("my_conversation.json")
加载之前保存的对话:
await bot.load_conversation("my_conversation.json")
# 获取对话历史
history = await bot.get_conversation()
print(history)
使用Query助手类简化操作
EdgeGPT提供了Query助手类,可以极大简化常见操作。使用Query类可以快速创建查询并获取结果:
from EdgeGPT.EdgeUtils import Query
# 创建一个查询(默认使用精确模式)
q = Query("什么是Python?用代码示例解释")
# 直接打印结果
print(q)
# 获取其他相关信息
print("来源:", q.sources)
print("建议问题:", q.suggestions)
print("代码片段:", q.code)
你还可以修改对话模式或指定cookie文件:
q = Query(
"解释机器学习的基本概念",
style="creative", # 使用创意模式
cookie_file="./my_cookies.json" # 指定cookie文件
)
批量与异步处理
对于需要处理大量请求的场景,EdgeGPT支持异步操作,可以显著提高效率。以下是一个异步批量处理问题的示例:
import asyncio
from EdgeGPT.EdgeGPT import Chatbot, ConversationStyle
async def process_questions(questions):
bot = await Chatbot.create()
results = []
for question in questions:
response = await bot.ask(
prompt=question,
conversation_style=ConversationStyle.balanced,
simplify_response=True
)
results.append({
"question": question,
"answer": response["text"]
})
await bot.close()
return results
# 要处理的问题列表
questions = [
"什么是人工智能?",
"机器学习和深度学习有什么区别?",
"Python在数据科学中有什么应用?"
]
# 运行异步处理
results = asyncio.run(process_questions(questions))
# 打印结果
for result in results:
print(f"问题: {result['question']}")
print(f"回答: {result['answer']}\n")
实际应用场景与案例
集成到自己的应用程序
EdgeGPT可以轻松集成到各种Python应用程序中,为你的项目添加AI对话能力。以下是一个简单的Web应用示例(使用Flask框架):
from flask import Flask, request, jsonify
import asyncio
from EdgeGPT.EdgeGPT import Chatbot, ConversationStyle
app = Flask(__name__)
bot = None
async def init_bot():
global bot
bot = await Chatbot.create()
# 在应用启动时初始化bot
loop = asyncio.get_event_loop()
loop.run_until_complete(init_bot())
@app.route('/chat', methods=['POST'])
def chat():
data = request.json
prompt = data.get('prompt', '')
if not prompt:
return jsonify({"error": "请提供问题"}), 400
# 使用异步运行bot.ask
loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
try:
response = loop.run_until_complete(
bot.ask(
prompt=prompt,
conversation_style=ConversationStyle.balanced,
simplify_response=True
)
)
return jsonify({
"answer": response["text"],
"suggestions": response["suggestions"],
"messages_left": response["messages_left"]
})
finally:
loop.close()
if __name__ == '__main__':
app.run(debug=True)
Docker部署
为了更方便地部署和使用EdgeGPT,项目提供了Docker支持。使用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
总结与展望
EdgeGPT作为微软必应聊天AI的逆向工程API,为开发者提供了一个强大而灵活的工具,可以轻松地将AI对话和图像生成能力集成到自己的项目中。无论是构建聊天机器人、开发AI辅助工具,还是探索AI的各种可能性,EdgeGPT都能提供有力的支持。
项目的主要优势在于:
- 使用简单,安装配置便捷
- 功能完整,支持聊天和图像生成
- 接口友好,提供多种使用方式
- 持续更新,跟进官方API变化
随着AI技术的不断发展,EdgeGPT也将继续进化,为开发者带来更多可能性。无论你是AI爱好者、学生还是专业开发者,EdgeGPT都是一个值得尝试的强大工具。
如果你对EdgeGPT感兴趣,不妨立即开始尝试,探索AI世界的无限可能!记得点赞、收藏本文,关注项目更新,以便获取最新的功能和使用技巧。
提示:使用AI技术时,请遵守相关法律法规和服务条款,合理使用AI能力。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



