LLMShellAutoComplete
1.0.0
使用 GPT 自動完成,使用 atuin 指令歷史記錄中的資料作為輸入提示。使用串流回應來快速獲得第一個回應 自述文件在幾分鐘內就完成了,我很快就會修復它。
pip install --user tiktoken openai
應該足夠了,或者您可以為它們執行 venv 並將 shell 配置指向正確的 Python。
fzf 用於選擇正確的結果。
將其加入 config.nu 中:
{
name: complete_with_gtp
modifier: CONTROL
keycode: Char_o
mode: [emacs vi_normal vi_insert]
event:[
{ send: executehostcommand,
cmd: "commandline -r (python /path/to/completer.py (commandline) | fzf --track --height 8)"
}
{ send: Enter }
]
}
到config.fish:
function gpt_completion
commandline (python /path/to/completer.py (commandline) | fzf --track --height 8)
end
bind ck "gpt_completion"
--atuin
: atuin 歷史資料庫位置
--dunst
:使用 dunstify 通知發生的情況(主要是調試)
--model
:gpt-3.5-turbo 或 gpt-4。對我來說,GPT-4 對於這種用途感覺要慢得多。
--wezterm
:附加來自 Wezterm 的螢幕內容
這會從 atuin 資料庫進行一些查詢,因此更多的索引可以大大加快速度:
sqlite3 ~/.local/share/atuin/history.db
CREATE INDEX idx_history_cwd on history(cwd);
CREATE INDEX idx_history_session on history(session);
如果您使用的是 Wezterm,您也可以將目前的終端螢幕內容新增到 GPT 提示字元中,如果存在一些有助於產生正確命令列的錯誤訊息,這可能會很有用。在這種情況下,為completer.py 命令列新增 -w 。
Kitty get-text 在程式碼中被註釋,因為我現在無法讓它工作,我會盡快修復它,或者如果您找到方法請告訴我。
當 Atuin 登上 HN 頭版時,這篇文章是非常倉促發布的。程式碼很糟糕,有一堆半成品的功能被註解掉了,我還沒有對其進行太多測試。可能需要一些修復才能在其他地方正常工作。過幾天我會去看一下,把它清理乾淨。