BingGPT # BingGPT _BingGPT 命令行客户端,使用 rust 编写_ ---
这个项目是 [EdgeGPT](https://github.com/acheong08/EdgeGPT) 的 rust 语言实现,所有困难的事情都是原项目作者 `acheong08` 完成的,我仅仅是用 rust 写了一遍,所有的功劳都归功于他,感谢大佬的辛勤付出! ## 安装 ```bash cargo install binggpt-cli ``` ```bash # 执行 binggpt ``` 或者从 [release](https://github.com/jlvihv/BingGPT/releases) 页面下载预编译的二进制文件。 ## 要求 你必须有一个可以访问 BingGPT 的微软账户。 ## 配置 (必须的) - 为 [Chrome](https://chrome.google.com/webstore/detail/cookie-editor/hlkenndednhfkekhgcdicdfddnkalmdm) 或 [Firefox](https://addons.mozilla.org/en-US/firefox/addon/cookie-editor/) 安装 `cookie-editor` 扩展 - 去 [bing.com](https://www.bing.com) 登录你的微软账户 - 打开扩展 - 单击右下角的“Export”(这会将您的 cookie 保存到剪贴板) - 将您的 cookie 新建或写入到 `~/.config/bing-cookies.json` 文件中 ## 使用方法 > 首先你需要执行上面的配置步骤。 如果你有 rust 开发环境,首先你需要克隆代码,进入本项目目录,然后运行 `cargo run` 。 如果你想编译成二进制文件,可以运行 `cargo build --release`,编译完成后,你可以在 `target/release` 目录下找到编译好的二进制文件。 如果你想安装到系统中,可以运行 `cargo install --path .`,这样你就可以方便的在任何地方使用 `binggpt` 命令了。 启动程序后,当看到`You:`时,表示你可以开始与 BingGPT 对话了,按两次回车键,即可发送消息。 在对话中,你可以使用如下指令: - `:q` `:quit` `:exit` 退出程序 - `:more` 进入多行模式,你可以放心的输入更多文本,或者从剪贴板中粘贴文本 - `:end` 退出多行模式 ## 可能遇到的问题 ### Windows10 用户 见 [#3](https://github.com/jlvihv/BingGPT/issues/3) 确保运行 Windows 10 的用户在其终端中使用此命令并具有管理员权限,以在终端中启用文本颜色。 ```powershell reg add HKCU\Console /v VirtualTerminalLevel /t REG_DWORD /d 1 ``` ## 针对国内用户的特别说明 如果国内 IP 无法使用,你需要想办法换国外 IP 试试。 ## 作为 rust crate 使用 ```bash cargo add binggpt cargo add utf8-slice cargo add tokio --features full ``` ```rust use std::io::{stdout, Write}; #[tokio::main] async fn main() { let mut bing = binggpt::Bing::new("~/.config/bing-cookies.json") .await .unwrap(); // send message bing.send_msg("hello").await.unwrap(); // receive message let mut index = 0; // loop until the chat is done loop { if bing.is_done() { break; } let Some(answer) = bing.recv_text().await.unwrap() else{ continue; }; // print the new part of the answer if !answer.is_empty() { print!("{}", utf8_slice::from(&answer, index)); if stdout().flush().is_err() { println!("Warning: Failed to flush stdout"); }; index = utf8_slice::len(&answer); } } } ``` ## 贡献者 这个项目的存在要感谢所有作出贡献的人。 ## License [MIT](LICENSE)