HN Açık: Bash ile yazılmış LLM komut satırı arayüzü Ell
(github.com/simonmysun)ellA komut satırı arayüzü
Özellikler
- Terminalden LLM'lere soru sorma
- Pipe dostu
- Terminal bağlamını LLM'lere iletip soru sorma
- Terminalde LLM'lerle sohbet etme
- Fonksiyon çağrıları ve şablonlar üzerinden ek özellik desteği
Gereksinimler
- bash
- jq (JSON ayrıştırma için)
- curl (HTTPS istekleri göndermek için)
- perl (PCRE için. POSIX bash, look-ahead ve look-behind düzenli ifadelerini desteklemez. Kayıt modu kullanılmıyorsa gerekmez)
Kurulum
git clone --depth 1 https://github.com/simonmysun/ell.git ~/.ellrc.d
echo 'export PATH="${HOME}/.ellrc.d:${PATH}"' >> ~/.bashrc
veya
git clone --depth 1 git@github.com:simonmysun/ell.git ~/.ellrc.d
echo 'export PATH="${HOME}/.ellrc.d:${PATH}"' >> ~/.bashrc
Bu komutlar depoyu .ellrc.d dizinine klonlar ve PATH'e ekler
Yapılandırma
Aşağıda Google'ın gemini-1.5-flash modelini kullanan örnek bir yapılandırma yer alıyor:
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/
OpenAI'ın gpt-4o-mini modelini kullanan örnek yapılandırma:
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
Kullanım örnekleri
- Soru sorma:
ell "What is the capital of France?"
- Model belirtip dosya girdisi kullanma:
ell -m gpt-4o -f user_prompt.txt
- stdin'den okuma:
cat somecode.py | ell -f -
- Ek prompt'u anında ekleme:
(cat somecode.py; echo "Explain this code") | ell -f -
- Terminal giriş ve çıkışını kaydedip bağlam olarak kullanma:
ell -r
# do random stuff
ell What does the error code mean?
ell How to fix it?
- Etkileşimli modda çalıştırma:
ell -i
- Kayıt modu ile etkileşimli modu birleştirme:
ell -r -i
- Şablon belirtip kayıt modu ve etkileşimli modu başlatma:
ell -r -i -t ctf-gemini
veya
ell -r -i -t ctf-openai
Şablon yazımı
Şablon kullanımına dair ayrıntılar için Templates bölümüne bakın
Stil verme
Stil vermeye dair ayrıntılar için Styling bölümüne bakın
Eklentiler
Eklentiler, ell içinden çağrılabilen betiklerdir. LLM sağlayıcısının eklentileri buna dahil değildir. Ayrıntılar için Templates bölümüne bakın
Dikkate alınması gereken riskler
Risks Consideration bölümüne bakın
SSS
- S: Neden "ell" deniyor?
- C: "ell", shell ve LLM'in birleşimidir. Shell betiğiyle LLM arka ucunu kullanır. "shellm" de düşünülmüştü ama yanıltıcı olabileceği için "ell" olarak değiştirildi. Kısa ve akılda kalıcıdır
- S: Neden Bash ile yazıldı?
- C: Bash, Unix benzeri sistemlerde en yaygın kabuktur ve daha karmaşık bir dil kullanmaya gerek yoktur
- S: ell ile diğer benzer projeler arasındaki fark nedir?
- C: ell neredeyse tamamen saf Bash ile yazıldığı için çok hafiftir ve kurulumu kolaydır. Genişletmesi ve değiştirmesi çok kolaydır. Pipe dostudur
Benzer projeler
- chatgpt-cli: Go ile yazılmış ChatGPT CLI
- gpt-cli: Python ile yazılmış, çeşitli LLM arka uçları için CLI
- gptcli: TypeScript ile yazılmış OpenAI LLM için CLI
- x-cmd: POSIX bash ve awk ile yazılmış çeşitli araçlar koleksiyonu
- gpt-bash-cli: OpenAI API için CLI, istek ve yanıtları veritabanına kaydeder
- mods: Go ile yazılmış, LLM'lerle konuşmaya yarayan CLI aracı
- nicechat: Node.js ile yazılmış OpenAI modelleri için CLI sohbet arayüzü
- autocomplete-sh: bash ile yazılmış LLM CLI
- plandex: Go ile yazılmış, yapay zeka entegre iş akışı geliştirme için CLI aracı
- llm: Python ile yazılmış, LLM'leri derinlemesine kullanmaya yönelik CLI aracı
- aichat: Rust ile yazılmış, çeşitli LLM sağlayıcılarıyla konuşan CLI aracı
Katkı
Katkılar her zaman memnuniyetle karşılanır! Fikir, öneri veya hata bildiriminiz varsa issue açın ya da pull request gönderin
Lisans
Bu proje MIT lisansı altında lisanslanmıştır. Ayrıntılar için LICENSE dosyasına bakın
GN⁺ özeti
- ell, Bash ile yazılmış bir LLM komut satırı arayüzüdür; hafiftir ve kurulumu kolaydır
- Çeşitli LLM modelleriyle entegrasyonu destekler ve pipe dostudur
- Kayıt modu ile etkileşimli modu birleştirerek terminal bağlamından yararlanabilir
- Benzer projeler arasında chatgpt-cli, gpt-cli ve gptcli bulunur; bunların her biri farklı dillerle yazılmıştır
Henüz yorum yok.