#openai-api #gpt #openai #gpt-4 #api-key #cli

app pipe-gpt

将内容管道传输到 GPT 的命令行工具

4 个版本 (2 个破坏性更改)

0.4.0 2024 年 5 月 29 日
0.3.1 2024 年 5 月 14 日
0.3.0 2024 年 2 月 5 日
0.2.0 2024 年 1 月 29 日

#1490命令行工具

Download history 155/week @ 2024-05-14 14/week @ 2024-05-21 127/week @ 2024-05-28 5/week @ 2024-06-04 5/week @ 2024-06-11 19/week @ 2024-07-02 9/week @ 2024-07-09

每月 281 次下载

MIT 许可证

22KB
312

pipe-gpt

直接从命令行将内容传输到 gpt。这是一个具有许多可能性的概念。

通过 cargo 安装 cargo install pipe-gpt,通过 cargo build --release 在本地构建,或从版本页面下载。

请注意,您需要一个 OpenAI API 密钥

设置 open api 密钥环境变量

  • 在 Linux 上:export OPENAI_API_KEY=sk-12345abc
  • 在 Windows PowerShell 中:$env:OPENAI_API_KEY = 'sk-12345abc'

用例

本地命令行使用

  • tail-30 /var/httpd.log|pipe-gpt--p"我在 http 日志文件中应该修复什么?"
  • cat main.rs|pipe-gpt-p"你会如何改进这段代码?请在注释中包含行号,这样我可以知道你的意思。"
  • cat main.rs|pipe-gpt-p"这段代码是否已准备好投入生产?如果是,请回复“是”。如果不是,请简要解释原因。"
  • cat file.json|pipe-gpt-p"将此 JSON 转换为 YAML" >file.yaml
  • cat french.txt|pipe-gpt-p"请将其翻译成英文。"
  • gitdiff --staged | pipe-gpt -p "审查此代码更改"
  • cat src/main.rs|pipe-gpt-p"改进代码并只输出替换代码,因为我将直接将输出管道传输回文件,无需解释,只需纯代码即可" >src/main.new.rs

pipe-gpt 用于本地开发

user@computer:/GitHub/pipe-gpt$ cat src/main.rs | pipe-gpt -p "how would you improve this code? include line numbers in your comments so I can tell where you mean"

Here are some suggestions to improve your code:

1. Line 2, 3: You can combine these two lines into one as follows:
`use openai_api_rust::{*, chat::*};`

2. Line 6-16: You can simplify the creation of `conversation_messages` by using a `Vec::new()` and then pushing messages as needed. This way, you avoid creating an unnecessary `Message` when `prepend` is empty.

3. Line 18-19: Instead of using `unwrap()`, it's better to handle the error properly. You can use `?` to propagate the error up.

4. Line 20-33: You can create a function to initialize `ChatBody` to make the code cleaner.

5. Line 35-38: Instead of using `unwrap()`, it's better to handle the error properly. You can use `match` to handle the possible `None` case.

pipe-gpt 用于 CI

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v3
    - name: Build
      run: cargo build --verbose
    - name: Run tests
      run: cargo test --verbose
    - name: GPT Code Review
      env:
        OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
      run: pwd && find . -path './target' -prune -o -name '*.rs' -exec echo {} \; -exec cat {} \; | ./target/debug/pipe-gpt -p "how would you improve this code? include line numbers in your comments so I can tell where you mean"

这在Github Actions CI中产生以下输出:CI中使用Pipe GPT进行代码审查推荐

路线图

  • 优雅的API限速
  • 秘密和配置文件
  • 加载自定义提示作为短参数
  • 命名空间的角色/提示
  • 减少依赖

贡献

如果您想为代码库做出贡献,请参阅CONTRIBUTE.md

依赖

~12–26MB
~394K SLoC