Pelengkapan otomatis menggunakan GPT, menggunakan data dari riwayat perintah atuin sebagai input prompt. Menggunakan tanggapan streaming untuk mendapatkan balasan pertama dengan sangat cepat README dibuat dalam hitungan menit, saya akan segera memperbaikinya.
pip install --user tiktoken openai
sudah cukup, atau Anda dapat melakukan venv untuk mereka dan mengarahkan konfigurasi shell ke Python yang benar.
fzf untuk memilih hasil yang benar.
Tambahkan ini ke 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 }
]
}
Untuk config.fish:
function gpt_completion
commandline (python /path/to/completer.py (commandline) | fzf --track --height 8)
end
bind ck "gpt_completion"
--atuin
: lokasi database riwayat atuin
--dunst
: Gunakan dunstify untuk memberitahukan apa yang terjadi (kebanyakan melakukan debug)
--model
: gpt-3.5-turbo atau gpt-4. GPT-4 terasa jauh lebih lambat bagi saya untuk penggunaan ini.
--wezterm
: Menambahkan konten layar dari Wezterm
Ini membuat beberapa pertanyaan dari database atuin sehingga beberapa indeks lagi dapat mempercepatnya:
sqlite3 ~/.local/share/atuin/history.db
CREATE INDEX idx_history_cwd on history(cwd);
CREATE INDEX idx_history_session on history(session);
Jika Anda menggunakan Wezterm, Anda juga dapat menambahkan konten layar terminal Anda saat ini ke prompt GPT, yang mungkin berguna jika ada beberapa pesan kesalahan yang dapat membantu menghasilkan baris perintah yang benar. Dalam hal ini tambahkan -w untuk baris perintah completer.py.
Kitty get-text dikomentari dalam kode karena saya tidak dapat membuatnya berfungsi saat ini, saya akan segera memperbaikinya atau beri tahu saya jika Anda menemukan caranya.
Hal ini diposting cukup tergesa-gesa saat Atuin membuka halaman depan HN. Kodenya buruk, ada banyak fitur setengah siap yang dikomentari dan saya belum terlalu banyak mengujinya. Mungkin memerlukan beberapa perbaikan agar berfungsi dengan baik di tempat lain. Saya akan memeriksanya dalam beberapa hari mendatang untuk membersihkannya.