Shell-AI 项目介绍
Shell-AI 是一个命令行界面(CLI)工具,旨在将自然语言理解的强大功能带到您的命令行终端。用户只需用自然语言输入他们想要执行的操作,Shell-AI(简称 shai
)就会建议单行命令来实现用户的意图。该工具在后台利用 LangChain 用于大语言模型(LLM)的应用,并基于优秀的 InquirerPy 提供交互式 CLI。
安装
用户可以通过 PyPI 使用 pip 直接安装 Shell-AI:
pip install shell-ai
需要注意的是,在 Linux 系统上,要求 Python 版本为 3.10 或更高版本。安装完成后,可以通过输入 shai
命令来调用该工具。
使用方法
要使用 Shell-AI,可以在终端中输入:
shai run terraform dry run thingy
Shell-AI 将建议以下三个命令来满足用户的请求:
terraform plan
terraform plan -input=false
terraform plan
功能特点
- 自然语言输入:用户可以使用简明的英文(或其他支持的语言)描述他们想要完成的任务。
- 命令建议:获得实现用户请求的单行命令建议。
- 跨平台:该工具可以在 Linux、macOS 和 Windows 系统上运行。
- Azure 兼容性:Shell-AI 现在支持 Azure OpenAI 的部署。
配置
环境变量
OPENAI_API_KEY
:这是必需的。用户需要设置此环境变量为其 OpenAI API 密钥,可以在 OpenAI Dashboard 上找到。
可选变量
OPENAI_MODEL
:默认为gpt-3.5-turbo
。用户可根据需要更改为其他 OpenAI 模型。OPENAI_MAX_TOKENS
:默认值为None
,用户可设置生成的 token 最大数量。SHAI_SUGGESTION_COUNT
:默认建议数为 3,用户可调整生成的建议数量。OPENAI_API_BASE
:默认为https://api.openai.com/v1
,用户可指定为代理或服务模拟器。OPENAI_ORGANIZATION
:OpenAI 组织 ID。OPENAI_PROXY
:OpenAI 代理。OPENAI_API_TYPE
:如果使用 Azure 部署,设为 "azure"。AZURE_DEPLOYMENT_NAME
:Azure 部署名称(Azure 使用时必需)。AZURE_API_BASE
:Azure API 基础地址(Azure 使用时必需)。CTX
:允许助手将控制台输出作为上下文以使生成更精确的输出。重要提示:输出将通过 API 发送至 OpenAI,请谨慎使用敏感数据。默认设置为 false。
用户还可以在命令行中使用 --ctx
标志启用上下文模式:
shai --ctx [request]
配置文件
或者,用户可以在 JSON 配置文件中存储这些变量:
- 对于 Linux/macOS:创建一个名为
config.json
的文件放置在~/.config/shell-ai/
目录下,并使用chmod 600 ~/.config/shell-ai/config.json
保护。 - 对于 Windows:创建一个名为
config.json
的文件放置在%APPDATA%\shell-ai\
目录下。
config.json
示例:
{
"OPENAI_API_KEY": "your_openai_api_key_here",
"OPENAI_MODEL": "gpt-3.5-turbo",
"SHAI_SUGGESTION_COUNT": "3",
"CTX": true
}
如果该文件存在,应用程序将从中读取设置,覆盖任何现有的环境变量。
贡献
Shell-AI 的实现仍有提升空间,欢迎大家提供建议和想法,以 Pull Requests 的方式贡献,并让 AI Shell 对每个人更好用。详细的贡献指南可以参考 CONTRIBUTING.md。
许可证
Shell-AI 根据 MIT 许可证授权。详见 LICENSE 文档。