#ChatGPT #命令行 #binggpt

app binggpt-cli

BingGPT命令行客户端,用Rust编写

1个不稳定版本

0.1.5 2023年2月28日

#7 in #chat-gpt

每月30次下载

MIT许可协议

36KB
570

BingGPT

BingGPT

BingGPT命令行客户端,用Rust编写


中文说明

此项目是EdgeGPT的Rust语言实现,所有困难的工作都由原始项目作者 acheong08 完成,我只是用Rust编写了它,所有功劳都归他,感谢你的辛勤工作,大兄弟!

安装

cargo install binggpt-cli
# use `binggpt` 
binggpt

或从发布页面下载二进制文件。

需求

您必须有一个可以访问BingGPT的Microsoft账户。

配置(必需)

  • 对于ChromeFirefox,安装cookie-editor扩展程序
  • 前往bing.com并登录您的Microsoft账户
  • 打开扩展程序
  • 点击右下角的"导出"(这将把您的cookies保存到剪贴板)
  • 将cookies创建或写入到~/.config/bing-cookies.json文件中

用法

首先您需要执行上述配置步骤。

如果您有一个Rust开发环境,首先需要克隆代码,进入此项目目录,然后运行cargo run

如果您想将其编译成二进制文件,可以运行cargo build --release。编译完成后,您可以在target/release目录中找到编译后的二进制文件。

如果您想将其安装到系统中,可以运行cargo install --path binggpt-cli,这样您就可以在任何地方轻松使用binggpt命令。

程序启动后,当您看到:时,这意味着您可以与BingGPT开始对话,按两次Enter键发送消息。

在对话中,您可以使用以下命令。

  • :q :quit :exit来退出程序
  • :more进入多行模式,在此模式下您可以安全地输入更多文本,或从剪贴板粘贴文本
  • :end 退出多行模式

可能的问题

针对Windows10用户

请参阅 #3

请确保正在运行Windows 10的用户在终端中使用此命令,并具有管理员权限,以启用终端中的文本颜色。

reg add HKCU\Console /v VirtualTerminalLevel /t REG_DWORD /d 1

作为Rust包

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);
        }
    }
}

贡献者

本项目之所以存在,离不开所有贡献者的努力。

许可证

MIT

依赖项

~13–27MB
~386K SLoC