Houston adalah alat baris perintah berbasis GPT sederhana yang memungkinkan Anda menghasilkan perintah atau skrip shell dengan memberikan instruksi bahasa alami yang sederhana.
Bekerja di Linux, Mac dan Windows. Anda dapat menggunakannya untuk Bash, PowerShell, Zsh, Python, atau cangkang atau bahasa skrip lainnya.
cargo install --git https://github.com/npgrosser/Houston.git
Perintah default untuk berinteraksi dengan Houston adalah hu (kependekan dari Houston). Anda dapat memberi Houston instruksi dalam bahasa alami.
Misalnya:
hu run ubuntu container with interactive bashhu find all pdf files in my home directoryhu delete unused docker images and networkshu tell me a dad jokeUntuk menggunakan Houston, variabel lingkungan openai_api_key harus diatur ke kunci API openai Anda. Anda bisa mendapatkannya di https://platform.openai.com. Jika lebih suka, Anda juga dapat menentukan kunci dalam file konfigurasi Anda, lihat bagian konfigurasi untuk informasi lebih lanjut.
Houston tidak tahu apa -apa tentang sistem Anda. Jadi, untuk memberi Houston peluang terbaik untuk menyelesaikan tugas, Anda dapat memberikan informasi konteks. Ini mungkin termasuk detail tentang pohon file, isi file tertentu, paket yang diinstal, riwayat bash Anda dll.
Untuk tujuan ini, ada beberapa fitur yang membantu Anda melakukan ini.
File konteks adalah file dengan ekstensi '.ctxt' yang berisi daftar informasi dalam bahasa alami.
Anda juga dapat menambahkan informasi yang dihasilkan secara dinamis menggunakan variabel perintah .
Informasi yang Anda definisikan di file ~/houston/default.ctxt selalu disediakan untuk Houston. Ini adalah file konteks yang akan Anda gunakan untuk memberi tahu Houston tentang preferensi dan persyaratan pribadi Anda. Misalnya, manajer paket mana yang Anda sukai, apa bahasa favorit Anda, apa yang Anda suka dia sebut Anda, dll.
Isi file konteks harus ditulis sebagai daftar poin peluru.
Contoh:
- If I want you to install something, use brew if the package is avaiable there
- If the script gets more complex, use comments to explain what you are doing
- When printing to the console, use capital letters. I like it when you shout at me
Bernama file konteks adalah file konteks yang dapat Anda aktifkan berdasarkan per-instruksi. Mereka berguna untuk memberikan informasi konteks yang khusus untuk tugas tertentu. Seperti file konteks default, mereka terletak di direktori ~/Houston . Anda mengaktifkannya dengan menggunakan bendera -c .
hu <instruction> -c <context-file-name>
Contoh:
~/Houston/Pretty-output.ctxt
- when printing to the terminal, use colored output and fancy ASCII art
Penggunaan:
hu print hello world -c pretty-output
Per instruksi Anda dapat mengaktifkan beberapa file konteks.
hu <instruction> -c <context-file-name-1> -c <context-file-name-2>
Contoh:
hu tell me a joke -c pretty-output -c dark-humor
File konteks dapat berupa file teks biasa, tetapi mereka juga dapat berisi variabel perintah . Anda dapat memanfaatkannya dengan menggunakan sintaks ${cmd} . Variabel perintah ini dievaluasi pada setiap instruksi dan diganti dengan output perintah.
Berikut adalah contoh file konteks menggunakan variabel perintah:
- The current working directory is ${pwd}.
- The current user is ${whoami}.
- The current time is ${date}.
Ketika template ini diproses, output yang dihasilkan akan terlihat mirip dengan ini:
- The current working directory is /home/user/my-name/houston.
- The current user is my-name.
- The current time is 2020-10-10 12:00:00.
Saat menulis file konteks Anda sendiri, perlu diingat bahwa semua data akan dikirim ke OpenAi. Karena itu, Anda hanya boleh menggunakan perintah yang tidak mengungkapkan informasi sensitif.
Saat menggunakan konteks bernama melalui bendera -c, Anda juga dapat melewati argumen. Misalnya:
hu tell me a joke -c lang:german
Argumen diteruskan ke templat, di mana Anda dapat mengaksesnya seperti yang Anda lakukan dengan skrip shell normal. Contoh:
~/houston/lang.ctxt:
- When printing to the terminal, always use the ${echo $1} language.
Perlu diingat bahwa kita perlu menggunakan perintah gema di sini karena variabel perintah diganti dengan output dari perintah
Jika Anda ingin melewati beberapa argumen, Anda hanya perlu memastikan untuk menambahkan kutipan di sekitar spesifikasi konteks .
hu tell me a joke -c "langs:german english french"
Perhatikan bahwa contoh di atas mengasumsikan bahwa bash digunakan sebagai shell untuk mengevaluasi variabel perintah.
Saat menggunakan shell yang berbeda, Anda mungkin perlu menggunakan sintaks yang berbeda untuk mengakses argumen.
Misalnya, di PowerShell, Anda akan menggunakan variabel $ args. Juga, Anda tidak perlu menggunakan perintah Echo.
- When printing to the terminal, always use the ${$args[0]} language.
Berikut adalah beberapa contoh file konteks bernama untuk memberi Anda gambaran tentang bagaimana mereka dapat digunakan.
File konteks yang menambahkan status git saat ini sebagai informasi konteks.
- The current git status is:
```
${git status}
```
File konteks yang menambahkan status Docker saat ini sebagai informasi konteks.
- The current docker status is:
```
${docker ps -a}
```
- The current docker images are:
```
${docker images}
```
File konteks yang menambahkan perintah n (default 10) terakhir dari riwayat bash Anda sebagai informasi konteks.
- The last ${1:-10} commands I ran were:
```
${tail -n ${1:-10} ~/.bash_history | cut -d ';' -f 2-}
```
File konteks yang menambahkan variabel lingkungan saat ini sebagai informasi konteks.
- The current environment variables are:
```
${env}
```
File konteks yang menambahkan pohon file saat ini sebagai informasi konteks.
- The current file tree is:
```
${tree -L ${1:-3}}
```
Jika Anda ingin melihat apa yang sebenarnya diteruskan ke API, Anda dapat menggunakan bendera -v (verbose).
hu <instruction> -v
Ini sangat berguna jika Anda ingin melihat bagaimana file konteks Anda dievaluasi.
Lihat Contoh-Config.yml untuk opsi konfigurasi yang tersedia. Konfigurasi dibuat secara otomatis saat Anda menjalankan hu untuk pertama kalinya. Itu akan berada di $XDG_CONFIG_HOME/houston/config.yml atau ~/.config/houston/config.yml .