Crates.io | binggpt |
lib.rs | binggpt |
version | 0.1.5 |
source | src |
created_at | 2023-02-16 11:19:54.700403 |
updated_at | 2023-02-28 02:47:51.117486 |
description | BingGPT command line client, written in rust |
homepage | https://github.com/jlvihv/BingGPT |
repository | https://github.com/jlvihv/BingGPT |
max_upload_size | |
id | 786673 |
size | 22,724 |
BingGPT command line client, written in rust
This project is a rust language implementation of EdgeGPT, all the hard stuff was done by the original project author acheong08
, I just wrote it in rust, all credit goes to him, thanks for the hard work big guy!
cargo install binggpt
Or download the binary from the release page.
You must have a Microsoft account with access to BingGPT.
cookie-editor
extension~/.config/bing-cookies.json
fileFirst you need to perform the configuration steps above.
If you have a rust development environment, first you need to clone the code, go to this project directory, and run cargo run
.
If you want to compile it into binaries, you can run cargo build --release
. After the compilation is done, you can find the compiled binaries in the target/release
directory.
If you want to install it to the system, you can run cargo install --path .
, so you can easily use the binggpt
command anywhere.
After starting the program, when you see You:
, it means you can start a conversation with BingGPT, press enter twice to send a message.
In the conversation, you can use the following command.
:q
:quit
:exit
to quit the program:more
to enter multi-line mode, where you can safely type more text, or paste text from the clipboard:end
exit multi-line modesee #3
Ensure that users running Windows 10 use this command in their terminal, with administrator privileges, to enable text colors in the terminal.
reg add HKCU\Console /v VirtualTerminalLevel /t REG_DWORD /d 1
cargo add binggpt
cargo add utf8-slice
cargo add tokio --features full
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);
}
}
}
This project exists thanks to all the people who contribute.