Rilis HN: Ell, antarmuka baris perintah untuk LLM yang ditulis dengan Bash
(github.com/simonmysun)Antarmuka baris perintah ell
Fitur
- Bertanya kepada LLMs dari terminal
- Ramah terhadap pipe
- Meneruskan konteks terminal ke LLMs lalu mengajukan pertanyaan
- Mengobrol dengan LLMs di terminal
- Mendukung fitur tambahan melalui pemanggilan fungsi dan template
Persyaratan
- bash
- jq (untuk parsing JSON)
- curl (untuk mengirim permintaan HTTPS)
- perl (untuk PCRE. bash POSIX tidak mendukung regex look-ahead dan look-behind. Tidak diperlukan jika tidak menggunakan mode rekam)
Instalasi
git clone --depth 1 https://github.com/simonmysun/ell.git ~/.ellrc.d
echo 'export PATH="${HOME}/.ellrc.d:${PATH}"' >> ~/.bashrc
atau
git clone --depth 1 git@github.com:simonmysun/ell.git ~/.ellrc.d
echo 'export PATH="${HOME}/.ellrc.d:${PATH}"' >> ~/.bashrc
Perintah ini meng-clone repositori ke direktori .ellrc.d dan menambahkannya ke PATH
Konfigurasi
Berikut contoh konfigurasi yang menggunakan gemini-1.5-flash dari Google:
ELL_API_STYLE=gemini
ELL_LLM_MODEL=gemini-1.5-flash
ELL_TEMPLATE=default-gemini
ELL_API_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
ELL_API_URL=https://generativelanguage.googleapis.com/v1beta/models/
Contoh konfigurasi yang menggunakan gpt-4o-mini dari OpenAI:
ELL_API_STYLE=openai
ELL_LLM_MODEL=gpt-4o-mini
ELL_TEMPLATE=default-openai
ELL_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
ELL_API_URL=https://api.openai.com/v1/chat/completions
Contoh penggunaan
- Mengajukan pertanyaan:
ell "What is the capital of France?"
- Menentukan model dan menggunakan input file:
ell -m gpt-4o -f user_prompt.txt
- Membaca dari stdin:
cat somecode.py | ell -f -
- Menambahkan prompt tambahan secara langsung:
(cat somecode.py; echo "Explain this code") | ell -f -
- Merekam input dan output terminal lalu menggunakannya sebagai konteks:
ell -r
# do random stuff
ell What does the error code mean?
ell How to fix it?
- Menjalankan dalam mode interaktif:
ell -i
- Menggabungkan mode rekam dan mode interaktif:
ell -r -i
- Menentukan template serta memulai mode rekam dan mode interaktif:
ell -r -i -t ctf-gemini
atau
ell -r -i -t ctf-openai
Menulis template
Untuk detail lebih lanjut tentang penggunaan template, lihat Templates
Styling
Untuk detail lebih lanjut tentang styling, lihat Styling
Plugin
Plugin berarti skrip yang dapat dipanggil dari ell. Plugin dari penyedia LLM tidak disertakan. Untuk detail lebih lanjut, lihat Templates
Risiko yang perlu dipertimbangkan
Lihat Risks Consideration
FAQ
- Q: Mengapa disebut "ell"?
- A: "ell" adalah gabungan dari shell dan LLM. Ini menggunakan backend LLM melalui skrip shell. Nama "shellm" juga sempat dipertimbangkan, tetapi dianggap berpotensi menimbulkan salah paham sehingga diubah menjadi "ell". Singkat dan mudah diingat
- Q: Mengapa ditulis dengan Bash?
- A: Bash adalah shell yang paling umum di sistem mirip Unix, dan tidak perlu menggunakan bahasa yang lebih kompleks
- Q: Apa perbedaan ell dengan proyek serupa lainnya?
- A: ell ditulis hampir sepenuhnya dalam Bash sehingga sangat ringan dan mudah dipasang. Juga sangat mudah diperluas dan dimodifikasi. Ramah terhadap pipe
Proyek serupa
- chatgpt-cli: CLI ChatGPT yang ditulis dalam Go
- gpt-cli: CLI untuk berbagai backend LLM yang ditulis dalam Python
- gptcli: CLI untuk OpenAI LLM yang ditulis dalam TypeScript
- x-cmd: Kumpulan berbagai alat yang ditulis dalam POSIX bash dan awk
- gpt-bash-cli: CLI untuk OpenAI API, menyimpan permintaan dan respons ke database
- mods: Alat CLI untuk mengobrol dengan LLM yang ditulis dalam Go
- nicechat: Antarmuka chat CLI untuk model OpenAI yang ditulis dalam Node.js
- autocomplete-sh: CLI untuk LLM yang ditulis dalam bash
- plandex: Alat CLI untuk pengembangan workflow terintegrasi AI yang ditulis dalam Go
- llm: Alat CLI untuk manipulasi mendalam LLM yang ditulis dalam Python
- aichat: Alat CLI untuk mengobrol dengan berbagai penyedia LLM yang ditulis dalam Rust
Kontribusi
Kontribusi selalu disambut! Jika Anda punya ide, saran, atau laporan bug, buka issue atau kirim pull request
Lisensi
Proyek ini dilisensikan di bawah lisensi MIT. Untuk detail lebih lanjut, lihat file LICENSE
Ringkasan GN⁺
- ell adalah antarmuka baris perintah LLM yang ditulis dengan Bash, ringan dan mudah dipasang
- Mendukung integrasi dengan berbagai model LLM dan ramah terhadap pipe
- Dapat memanfaatkan konteks terminal dengan menggabungkan mode rekam dan mode interaktif
- Proyek serupa mencakup chatgpt-cli, gpt-cli, gptcli, dan lainnya yang ditulis dalam berbagai bahasa
Belum ada komentar.