适用于 Microsoft 全新 AI 驱动的 Bing Chat 的 .NET API 包装器。
警告过时和维护
目前,该实现与最近的 API 更改不同步,导致频繁错误并触发验证码。计划对此进行调查,并将实施与官方 API 客户端(iOS 应用程序和浏览器)保持一致,以减少这些问题或完全缓解这些问题(如果存在这种可能性)。此外,这个存储库长期以来缺乏维护者。如果有人想接手,请联系我。
警告该库是非官方的,严重依赖于逆向工程。使用风险自负。
注意自BingChat公开发布以来,不再需要有效的 cookie。您无需任何身份验证即可使用此包。
通过 NuGet 包管理器或 dotnet CLI 安装此包:
dotnet add package --prerelease BingChat
然后,
using BingChat ;
// Construct the chat client
var client = new BingChat Client ( new BingChat ClientOptions
{
// Tone used for conversation
Tone = BingChat Tone . Balanced ,
} ) ;
var message = "Do you like cats?" ;
var answer = await client . AskAsync ( message ) ;
Console . WriteLine ( $ "Answer: { answer } " ) ;
上面的代码向聊天 AI 发送一条消息,并从中获取答案。
此方法创建一次性对话并在完成后将其丢弃。如果您想在相同的上下文中继续聊天(就像网络界面中的行为一样),您需要创建一个共享对话:
// Create a conversation, so we can continue chatting in the same context.
var conversation = await client . CreateConversation ( ) ;
var firstMessage = "Do you like cats?" ;
var answer = await conversation . AskAsync ( firstMessage ) ;
Console . WriteLine ( $ "First answer: { answer } " ) ;
await Task . Delay ( TimeSpan . FromSeconds ( 5 ) ) ;
var secondMessage = "What did I just say?" ;
answer = await conversation . AskAsync ( secondMessage ) ;
Console . WriteLine ( $ "Second answer: { answer } " ) ;
我们还为您开发了一个令人惊叹的命令行工具!请参阅下面的预览:
您只需执行以下命令即可安装 CLI:
dotnet tool install -g --prerelease dotnet- BingChat
然后启动 CLI:
dotnet BingChat
harmonyv3
是否可以使旧模型具有更好的性能.SendAsync(..)
公开丰富的响应对象,以允许详细访问和控制对话状态您可以设置自己的 cookie 来与BingChat服务器交互,而不是生成随机 cookie。
要获取它,您可以访问 www.bing.com,登录有访问权限的帐户,然后打开开发人员工具 (F12) > 应用程序选项卡 > 存储 > Cookies,找到名为_U
的 cookie,并复制其值。然后将其传递给BingChat ClientOptions
的构造函数。
原因有多种。您可以按照以下步骤来处理问题。
刷新网页,确认“_U”值是最新的并且复制正确,然后重试。
如果您使用代理 (VPN),请尝试设置全局代理,然后重试。代码如下:
HttpClient . DefaultProxy = new WebProxy ( "127.0.0.1:8807" ) ; //Your proxy address and port
找到另一个名为“KievRPSSecAuth”的 cookie,设置其值,然后重试。代码如下:
var client = new BingChat Client ( new BingChat ClientOptions {
// The "_U" cookie's value
CookieU = strU ,
// The "KievRPSSecAuth" cookie's value
CookieKievRPSSecAuth = strKievRPSSecAuth ,
} ) ;
打开浏览器菜单 > 扩展。搜索“Cookie 编辑器”并安装它。转到 Bing Chat 网页并将所有 cookie 以 JSON 格式导出到本地文件。设置文件路径值如下(此时不需要“_U”和“KievRPSSecAuth”值):
var client = new BingChat Client ( new BingChat ClientOptions {
// The exported cookie file path
CookieFilePath = strFilePath ,
} ) ;
感谢这些开发或改进这个库的贡献者:
如果您对此项目有任何想法,请随时打开 PR 并与我们分享:D
该项目已获得 MIT 许可。我们❤开源!