Sydney.py: 强大的Python客户端连接Copilot(原Bing Chat)
Sydney.py是一个功能强大的非官方Python客户端库,专门用于连接和操作微软的AI助手Copilot(原Bing Chat)。该库提供了丰富的功能和灵活的接口,让开发者能够轻松地与Copilot进行交互和对话,实现各种智能化应用。
主要特性
Sydney.py提供了以下主要功能:
-
连接Copilot: 轻松建立与微软AI助手Copilot的连接。
-
多样化对话: 支持不同的对话风格,如创意型、平衡型和精确型。
-
内容生成: 可以生成各种格式和语气的内容,如电子邮件、博客文章等。
-
实时响应: 支持流式响应,实现实时交互。
-
引用和建议: 能够获取引用信息和Copilot给出的建议回复。
-
图像增强: 支持在提示中添加图片,丰富交互体验。
-
个性化设置: 可以使用不同的personas来定制体验。
-
异步操作: 使用asyncio实现高效的非阻塞I/O操作。
安装和使用
要安装Sydney.py,只需运行以下命令:
pip install sydney-py
使用poetry的用户可以运行:
poetry add sydney-py
在使用Sydney.py之前,需要先从Copilot网页提取cookies来进行身份验证。具体步骤如下:
- 访问Copilot网页。
- 打开浏览器开发者工具(通常按F12)。
- 选择"Network"标签页。
- 在网页上发送一条消息。
- 在网络请求中找到名为"create?bundleVersion=XYZ"的请求。
- 复制该请求头部中"Cookie:"字段的全部值。
然后,可以将这些cookies设置为环境变量:
export BING_COOKIES=<your-cookies>
或者在Python代码中设置:
import os
os.environ["BING_COOKIES"] = "<your-cookies>"
代码示例
以下是一个使用Sydney.py创建CLI客户端的简单示例:
import asyncio
from sydney import SydneyClient
async def main() -> None:
async with SydneyClient() as sydney:
while True:
prompt = input("You: ")
if prompt == "!reset":
await sydney.reset_conversation()
continue
elif prompt == "!exit":
break
print("Sydney: ", end="", flush=True)
async for response in sydney.ask_stream(prompt):
print(response, end="", flush=True)
print("\n")
if __name__ == "__main__":
asyncio.run(main())
高级功能
Sydney.py还提供了许多高级功能,如:
- 对话风格设置
- 重置对话
- 添加图片附件
- 使用网页内容作为上下文
- 控制网络搜索
- 使用不同的personas
- 内容生成与建议
- 获取原始JSON响应
例如,设置对话风格:
sydney = SydneyClient(style="creative")
添加图片附件:
response = await sydney.ask("What does this picture show?", attachment="<image-url-or-path>")
使用personas:
async with SydneyClient(persona="travel") as sydney:
response = await sydney.ask("Tourist attractions in Sydney")
print(response)
异常处理
Sydney.py定义了一系列异常来处理可能出现的错误情况,如连接超时、验证码挑战等。开发者应当适当处理这些异常以提高应用的健壮性。
结语
Sydney.py为开发者提供了一个强大而灵活的工具,可以轻松地将Copilot的智能对话能力集成到各种Python应用中。无论是构建聊天机器人、内容生成工具,还是智能问答系统,Sydney.py都能为您的项目带来强大的AI支持。
Sydney.py是开源项目,遵循MIT许可证。欢迎开发者们为这个项目做出贡献,共同推动AI应用的发展。
如果您在使用过程中遇到任何问题或有任何建议,欢迎在GitHub上提交issue或pull request。让我们一起探索AI的无限可能!