Loz 项目介绍
Loz 是一个强大的命令行工具,它的设计目标是让用户可以使用首选的人工智能语言模型(LLM)来执行系统命令并利用 Unix 管道,从而将 AI 的能力与其他 Unix 工具整合在一起。这一项目为用户提供了一种自然语言与计算机系统交互的新方式。
项目新特性
版本 v0.3.1 - 2024年3月18日
- 新增特性
- Git 提交日志文件现在保存在每个 Git 仓库的 .loz_log 中。
- 用户可以通过运行 config attribution true 或 config attribution false 来开启或关闭在 Git 提交消息末尾附加“generated by ${model name}”这一功能。
- 添加了 --attribution (-a) 运行时参数以覆盖配置信息中的归属设置,但不改变原有的归属值。
版本 v0.3.0 - 2024年2月24日
- 新增功能
- 用户现在可以基于自然语言提示运行 Linux 命令。例如,通过运行
loz "寻找当前目录中的最大文件"
,Loz 会解析指令并执行相应的 Linux 命令,如find . -type f -exec ls -l {} + | sort -k 5 -nr | head -n 1
来找出最大文件。
- 用户现在可以基于自然语言提示运行 Linux 命令。例如,通过运行
版本 v0.2.13 - 2024年2月22日
- 增强功能
- Git 提交格式改进:提交消息现在的结构更加清晰,标题和主体之间有明显分隔,提升了可读性并遵循 Git 最佳实践。
快速开始
要开始使用 Loz,可以运行以下 npm 命令:
$ sudo npm install loz -g
或者克隆仓库:
$ git clone https://github.com/joone/loz.git
这要求系统安装了 NodeJS 和 npm。如果您使用的是 Linux 系统,可以通过包管理器安装这些工具,如 sudo apt install nodejs npm
。
接着安装其他所需的依赖:
$ ./install.sh
配置语言模型(LLM)
Loz 支持 OpenAI API 和 Ollama,用户可以轻松地在这些 LLM 服务之间切换。用 config
命令在交互方式下进行配置。
设置 Ollama
若要在本地系统上使用 Ollama,需要安装 llama2 和 codellama 模型:
$ curl https://ollama.ai/install.sh | sh
$ ollama run llama2
$ ollama run codellama
设置 OpenAI API
设置 OpenAI API 凭证需要几个简单步骤:
首先,在项目根目录创建一个 .env
文件,并添加下述变量:
OPENAI_API_KEY=YOUR_KEY
遇到请求超过免费配额的错误时,需设置付款方式:
Request failed with status code 429:
API request limit reached
继续应用编程和使用 API 的信息位于此链接:https://platform.openai.com/account/billing/payment-methods
使用指南
初始配置
首次启动 Loz 时,将选择使用的 LLM 服务:
$ loz
Choose your LLM service: (ollama, openai)
可以随时通过交互模式中的 config
命令修改 LLM 服务偏好:
> config api openai
交互模式
Loz 在运行后,用户即可开始交互对话,Loz 会根据输入返回相关消息。
自然语言执行 Linux 命令
以下是一些演示自 loz
的 LLM 后端如何将自然语言翻译成 Linux 命令的例子:
-
寻找当前目录中的最大文件:
loz "find the largest file in the current directory" -rw-rw-r-- 1 foo bar 9020257 Jan 31 19:49 ./node_modules/typescript/lib/typescript.js
-
检查 Apache2 是否运行:
loz "check if apache2 is running on this system" ● apache2.service - The Apache HTTP Server
-
检测系统中的 GPU:
loz "Detect GPUs on this system" 00:02.0 VGA compatible controller: Intel Corporation Device a780 (rev 04)
安全模式
为防止意外的系统修改,Loz 提供安全模式,这种模式下需要用户确认后才会执行任何 Linux 命令。
LOZ_SAFE=true loz "Check available memory on this system"
这可确保用户对执行的命令具有完全的控制权,避免意外更改和数据丢失。
管道模式
Loz 可以通过 Unix 管道处理来自其他命令行工具的输入:
$ ls | loz "count the number of files"
23 files
$ cat example.txt | loz "convert the input to uppercase"
AS AI TECHNOLOGY ADVANCED, ...
自动生成 Git 提交消息
在 Git 仓库中运行 loz commit
,Loz 将基于已暂存的更改自动生成提交消息:
$ git add --update
$ loz commit
查找聊天历史
在您的主目录的 .loz 目录或克隆 Git 仓库的 logs 目录中可以找到聊天历史,方便用户查看或参考。