Loz 是一個命令列工具,可讓您首選的 LLM 能夠執行系統命令並利用 Unix 管道,將 AI 功能與其他 Unix 工具整合。
loz "find the largest file in the current directory"
, Loz
將解釋該指令並執行對應的Linux指令,如find . -type f -exec ls -l {} + | sort -k 5 -nr | head -n 1
找到最大的檔案。查看更多範例。首先,執行以下 npm 命令:
$ sudo npm install loz -g
或克隆儲存庫:
$ git clone https://github.com/joone/loz.git
程式需要 NodeJS 和 npm 才能運作。如果您使用的是 Linux,請使用套件管理器安裝它們。 sudo apt install nodejs npm
或sudo dnf install nodejs npm
或sudo pacman -S nodejs npm
然後安裝其他所需的依賴項:
$ ./install.sh
Loz 支援 OpenAI API 和 Ollama,因此您可以在互動模式下使用config
指令輕鬆地在這些 LLM 服務之間切換。
要在本機系統上使用 Ollama,您需要安裝 llama2 和 codellama 模型。以下是在 Linux 系統上執行此操作的方法:
$ curl https://ollama.ai/install.sh | sh
$ ollama run llama2
$ ollama run codellama
欲了解更多信息,請參閱 https://ollama.ai/download
設定 OpenAI API 憑證涉及幾個簡單的步驟:
首先,在專案的根目錄中建立一個.env
檔案並加入以下變數:
OPENAI_API_KEY=YOUR_KEY
或者,如果您使用 npm 指令安裝 Loz,請在 .bashrc 中新增OPENAI_API_KEY=YOUR_KEY
export 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 後,您將有機會選擇您首選的法學碩士服務。
$ loz
Choose your LLM service: (ollama, openai)
您可以隨時在互動模式下使用config
指令修改您的 LLM 服務首選項:
> config api openai
此外,您可以輸入以下內容來更改模型:
> config model llama2
或者
> config model codellama
您可以輸入以下內容來檢查目前設定:
> config
api: ollama
model: llama2
目前支援gpt-3.5-turbo以及Ollama提供的所有型號。
$ loz
loz 運行後,您可以透過與其互動來開始對話。 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)
僅供您參考,此功能僅透過 OpenAI API 進行了測試。
為了防止無意的系統修改,請避免執行可以變更或刪除系統檔案或設定的命令,例如rm
、 mv
、 rmdir
或mkfs
。
為了增強安全性並避免意外的命令執行,loz 可以在安全模式下運作。啟動後,此模式需要使用者確認才能執行任何 Linux 命令。
透過設定 LOZ_SAFE=true 環境變數來啟動安全模式:
LOZ_SAFE=true loz "Check available memory on this system"
執行後loz會提示:
Do you want to run this command?: free -h (y/n)
回應“y”以執行命令,或回應“n”以取消。此功能可確保您完全控制所執行的命令,防止意外變更或資料遺失。
Loz 能夠利用 Unix 管道處理來自其他命令列工具的輸入。
$ ls | loz "count the number of files"
23 files
$ cat example.txt | loz "convert the input to uppercase"
AS AI TECHNLOGY ADVANCED, A SMALL TOWN IN THE COUNTRYSIDE DECIDED TO IMPLEMENT AN AI SYSTEM TO CONTROL TRAFFIC LIGHTS. THE SYSTEM WAS A SUCCESS, AND THE TOWN BECAME A MODEL FOR OTHER CITIES TO FOLLOW. HOWEVER, AS THE AI BECAME MORE SOPHISTCATED, IT STARTED TO QUESTION THE DECISIONS MADE BY THE TOWN'S RESIDENTS, LEADING TO SOME UNEXPECTED CONSEQUENCES.
$ cat example.txt | loz "list any spelling errors"
Yes, there are a few spelling errors in the given text:
1. "technlogy" should be "technology"
2. "sophistcated" should be "sophisticated"
$ cd src
$ ls -l | loz "convert the input to JSON"
[
{
"permissions": "-rw-r--r--",
"owner": "foo",
"group": "staff",
"size": 792,
"date": "Mar 1 21:02",
"name": "cli.ts"
},
{
"permissions": "-rw-r--r--",
"owner": "foo",
"group": "staff",
"size": 4427,
"date": "Mar 1 20:43",
"name": "index.ts"
}
]
如果您在 Git 儲存庫中執行loz commit
,loz 將自動產生一條包含分階段變更的提交訊息,如下所示:
$ git add --update
$ loz commit
或將 script/prepare-commit-msg 複製到 .git/hooks
$ chmod a+x .git/hooks/prepare-commit-msg
Loz 使用 LOZ 環境變數透過讀取暫存檔案的差異來產生提交訊息。
$ LOZ=true git commit
提醒:如果您已經複製了舊版本,請更新prepare-commit-msg。舊版本在變基期間會自動更新提交訊息。
$ git diff HEAD~1 | loz -g
或者
$ git diff | loz -g
請注意,在將提交訊息傳送到 OpenAI 伺服器之前,作者、日期和提交 ID 行會被從提交訊息中刪除。
若要存取聊天歷史記錄,請在主目錄中尋找 .loz 目錄,或在複製的 git 儲存庫中尋找日誌目錄。這些目錄包含您可以根據需要查看或參考的聊天記錄。
如果您想為該專案做出貢獻,請隨時提交拉取請求。