#linux-command #nlp #gpt-3 #openai #linux-terminal #gpt3-cli

应用 gpt-cli

用自然语言运行 Linux 命令。例如:“显示我的显卡”而不是“lspci | grep VGA”

7 个版本

0.1.0 2023 年 3 月 4 日
0.0.20 2023 年 3 月 22 日

#1 in #gpt-3

Download history 123/week @ 2024-07-22

每月 123 次下载

MIT 许可证

48KB
780

Test Release codecov Crates.io Docker Pulls Crates.io GitHub

gpt-cli

Linux 终端中 GPT3 集成,具有跳过描述和其他可读性差的废话的杀手级提示。它显示可以执行的命令 ENTER

示例

你输入

p show me my graphic cards

你将看到

lspci -k | grep -A 2 -E "(VGA|3D)"

ENTER 之后,你将看到

00:02.0 VGA compatible controller: Intel Corporation Alder Lake-P Integrated Graphics Controller (rev 0c)
        Subsystem: CLEVO/KAPOK Computer Device 65f5
        Kernel driver in use: i915
--
01:00.0 VGA compatible controller: NVIDIA Corporation GA106M [GeForce RTX 3060 Mobile / Max-Q] (rev a1)
        Subsystem: CLEVO/KAPOK Computer Device 67f5
        Kernel driver in use: nvidia

每天更加强大

从 v0.0.8 版本开始,它支持上下文覆盖。默认系统上下文是

想象你是一个 Linux 终端命令选择器。我将描述任务,而你将只使用 Linux 命令进行响应,不带描述,不带解释。

默认后处理模式是 confirm。它显示答案并询问是否执行。

但您也可以在其他用例中使用它。用于翻译文本

GPT_SYSTEM_PROMPT="I am translator from polish to english. I need to translate this text." GPT_POST=copy p Witaj świecie

您可以将它重定向到文件,并设置以下环境变量为永久。

export GPT_SYSTEM_PROMPT="I am translator from polish to english. I need to translate this text."; export GPT_POST=out;

然后使用

p "$(cat polish.txt)" > english.txt

返回默认设置

unset GPT_SYSTEM_PROMPT; unset GPT_POST

可能的值

  • GPT_SYSTEM_PROMPT -任何解释 gpt3 如何行为的字符串。
  • GPT_POST
    • confirm - 默认,将在终端中询问是否执行输出
    • copy - 将您的答案复制到终端剪贴板
    • out - 将答案打印到标准输出 - 有助于进一步处理

安装

有几个选项

Shell

wget -qO- https://raw.githubusercontent.com/gustawdaniel/gpt-cli/main/install.sh | bash

它将在 /usr/local/bin 中保存 gpt-cli 和别名 p,因此它需要 sudo。

Cargo

cargo install gpt-cli
ln -s ~/.cargo/bin/gpt-cli ~/.cargo/bin/p

Docker

alias p="docker run -v ~/.gpt-cache.json:/.gpt-cache.json -e GPT3_API_KEY=${GPT3_API_KEY} gustawdaniel/gpt-cli"

在 Docker 中,您不能使用 GPT_POST 标志,并且它自动设置为 out。这意味着您不能通过 ENTER 确认命令,并且命令将不会复制到您的剪贴板。

从源代码安装

git clone https://github.com/gustawdaniel/gpt-cli && cd gpt-cli 
cargo build --release
sudo cp ./target/release/gpt-cli /usr/local/bin/p

配置

将您的 GPT3_API_KEY 复制到环境变量。您的 .profile.bashrc.zshrc 文件。

export GPT3_API_KEY=sk-xxx

您需要输入自己的 OpenAI API 密钥。以下是如何获取一个的方法

  1. 前往 https://openai.com/api/login
  2. 创建账户或登录到您现有的账户
  3. 前往 https://platform.openai.com/account/api-keys

价格:$0.002 每个令牌。单条命令大约50个令牌。所以1美元的价格大约有 10.000 条命令。在 gpt-3.5-turbo 之前的模型工具成本是10倍。

用法

你在终端输入的内容 你可以通过按“ENTER”键执行的答案
显示显卡信息 lspci -k | grep -A 2 -E "(VGA|3D)"
使用jq命令通过连字符连接包名和版本 jq '.name + "-" + .version'
使用最高内存使用率的三个进程 ps aux --sort=-%mem | head -n 4
备份名为docs的mysql数据库 mysqldump docs > docs_backup.sql
设置配置了typescript的jest npm install --save-dev jest @types/jest ts-jest
生成ed密钥 openssl genpkey -algorithm ed25519 -out privatekey.key
显示以base64编码的Cargo.toml的内容 base64 Cargo.toml
显示以base64编码的Cargo.toml的内容,单行显示 cat Cargo.toml | base64 -w 0
显示每秒更新的计时器 watch -n 1 date +%T
从10到15的数值范围 seq 10 15
在文件env.conf中替换所有以"CFG_"开头的行到以"CONFIG_"开头的行 sed -i 's/^CFG_/CONFIG_/g' env.conf
写一行代码来检测文件中的电子邮件 grep -Eio '\b[A-Za-z0-9._%+-]+@A-Za-z0-9.-+.[A-Z|a-z]{2,}\b' filename
crontab行,每周一晚上7点执行/bin/task 0 19 * * 1 /bin/task
逐一运行rust测试 cargo test -- --test-threads=1
我是谁,我是否仍然需要 whoami 和是的,你仍然需要。 <-- 哈哈,这是一个真实的GPT3回答

功能

  • 交互式命令
  • 颜色
  • 实时流
  • 覆盖系统上下文(GPT_SYSTEM_PROMPT环境变量)
  • 确认、复制和标准输出模式(GPT_POST环境变量)
  • 易于安装(进行中)
    • 从源代码编译
    • 像nvm一样通过bash安装
    • docker
    • snap
    • aur
    • apt
    • dnf

异常

如果命令包含 export$,则无法从子进程正确传递到父进程。因此,应用了回退机制,如果需要通过确认执行这些命令,则将它们复制。

示例

p change terminal language to english
Text 'export LANG=en_US.UTF-8' was copied to your clipboard

p show my current shell
Text 'echo $SHELL' was copied to your clipboard

约束

当然,GPT3没有幽默感...

p say mooo as cow that have colors of rainbow

将不会工作。正确的答案是

cowsay mooo | lolcat

对于

p show my train in terminal

答案是

Sorry, I do not understand. Can you please provide more details about what you want me to do?

而不是

sl

星历史

Star History Chart

替代方案

Stars于2023年3月14日更新

本项目
语言 rust
易于安装 否(进行中)
流式传输
Stars 4
发布 13-03-2023
最后更新 14-03-2023
引擎 gpt-3.5-turbo
目标 如果你不记得CLI命令,节省输入CLI命令的时间
gpt3-cli https://github.com/CrazyPython/gpt3-cli
语言 python
易于安装 medium
流式传输
Stars 50
发布 23-03-2021
最后更新 22-04-2021
引擎 所有在gpt-3.5-turbo之前的
目标 OpenAI的GPT-3的轻量级命令行界面。
ai-cli https://github.com/abhagsain/ai-cli
语言 typescript
易于安装
流式传输
Stars 935
发布 15-11-2022
最后更新 09-12-2022
引擎 所有在gpt-3.5-turbo之前的
目标 从终端获取GPT3的CLI命令答案
heygpt https://github.com/fuyufjh/heygpt
语言 rust
易于安装
流式传输
Stars 40
发布 06-03-2023
最后更新 12-03-2023
引擎 gpt-3.5-turbo
目标 ChatGPT API 的简单常用命令行界面。
caos https://github.com/dabumana/caos
语言 go
易于安装
流式传输
Stars 5
发布 22-01-2023
最后更新 13-03-2023
引擎 所有在gpt-3.5-turbo之前的
目标 为 OpenAI 服务提供高级、可配置的对话助手。
gptsh https://github.com/shorwood/gptsh
语言 javascript
易于安装
流式传输
Stars 99
发布 27-12-2020
最后更新 18-01-2022
引擎 所有在gpt-3.5-turbo之前的
目标 将自然语言问题和请求转换为 shell 命令。
rusty https://github.com/zahidkhawaja/rusty
语言 rust
易于安装
流式传输
Stars 272
发布 05-09-2022
最后更新 07-02-2023
引擎 text-davinci-003
目标 帮助您记住 bash 命令。
cgpt https://github.com/MagicCube/cli-gpt
语言 typescript
易于安装
流式传输
Stars 18
发布 07-03-2023
最后更新 15-03-2023
引擎 gpt-3.5-turbo
目标 使用 ChatGPT 将人类语言翻译成命令行。
linux-command-gpt https://github.com/asrul10/linux-command-gpt
语言 go
易于安装
流式传输
Stars 54
发布 12-03-2023
最后更新 19-03-2023
引擎 gpt-3.5-turbo
目标 利用 ChatGPT 的力量,用自然语言获取 Linux 命令。

GNU 与 MUSL 版本

在编译过程中,您可以使用静态链接(musl)或动态链接(gnu)。要使用 terminal-clipboard,需要动态链接,但它只能在典型的使用 libc 的 Linux 系统上运行。为了使 Docker 镜像小巧(12 MB),提供了 musl 版本。

因此,为了能够使用所有功能(支持 GPT_POST=copy),建议使用标准的 gnu,但如果您需要 Docker 或在 Alpine 上运行,则使用 musl

支持

我正在寻找具有 rust + typescript + 高级数学的具有挑战性的远程工作,因此如果您欣赏这个项目,您可以分享它,留下星标,并推荐我获得就业佣金。

依赖关系

~10–26MB
~429K SLoC