atuin 명령 기록의 데이터를 입력 프롬프트로 사용하여 GPT를 사용하여 자동 완성합니다. 스트리밍 응답을 사용하여 첫 번째 응답을 매우 빠르게 얻습니다. README는 몇 분 안에 작성되며 곧 수정됩니다.
pip install --user tiktoken openai
이면 충분합니다. 그렇지 않으면 venv를 수행하고 셸 구성을 올바른 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 첫 페이지에 등장하면서 매우 급하게 게시되었습니다. 코드는 형편없습니다. 이미 절반만 준비된 기능이 주석 처리되어 있는데 아직 많이 테스트하지 않았습니다. 다른 곳에서 제대로 작동하려면 몇 가지 수정이 필요할 수 있습니다. 며칠 내로 청소를 해볼 예정입니다.