#llm #cli #terminal #openai-api

应用 senior

一个命令行工具,可以调用 llm 对给定代码提出改进建议

2 个版本

0.1.1 2023 年 8 月 6 日
0.1.0 2023 年 8 月 5 日

#1948命令行实用工具

Apache-2.0 OR MITLGPL-3.0-or-later

1.5MB
1.5K SLoC

Senior

crates.io docs

与其打扰一位高级工程师来对你的代码提出改进建议,不如 直接询问 Senior

demo

如何安装

需要

  • openssl
  • 一个 openAI API 令牌
  • rust
cargo install senior

或 (尚未)

brew install senior

简介

Senior 使用 LLMs(目前仅限于 openAI 的)和一个高级源代码解析库,tree-sitter,在你的终端中为你提供代码改进建议。

作为 CLI 的参数,你可以提供

  1. 文件的路径
  2. 文件的路径和函数名
  3. 文件的路径、类/结构体/父元素和函数名

作为回报,你将看到一个改进后的版本。如果你接受它,通过按 y,则原始文件将被建议的内容覆盖。

唯一的要求是,你必须有一个名为 OPENAI_API_KEY 的环境变量,其中包含你自己的令牌。

语言支持

语言 整个文件 函数 方法 限制
Rust X X X
Go X X X 未在泛型上测试。可能工作。
JavaScript X X X 不适用于对象字面量内的函数
也不适用于在类内部声明的匿名函数(你本就不应该这样做)
TypeScript X X X 不适用于对象字面量内的函数
也不适用于在类内部声明的匿名函数(你本就不应该这样做)

贡献

如果你希望改进对某种语言的支持,或者完全添加一种语言,不用担心,因为 senior 是以这种方式编写的,应该很容易做到。首先,将其分叉,然后在 supported_languages 下添加一种新的语言,并遵循其他语言所做的工作。

路线图

  1. 利用 tree-sitter 的功能创建代码 上下文。例如,如果需要优化类 X 的方法 A,且 A 内部有其他函数或方法调用,则提供类 X 以及 A 内部的所有函数作为上下文。
  2. Java 和 Python 支持

依赖项

~72MB
~1.5M SLoC