HN เปิดตัว: Ell อินเทอร์เฟซบรรทัดคำสั่งสำหรับ LLM ที่เขียนด้วย Bash
(github.com/simonmysun)อินเทอร์เฟซบรรทัดคำสั่ง ellA
ฟีเจอร์
- ถามคำถามกับ LLMs จากเทอร์มินัล
- เป็นมิตรกับการใช้ผ่าน pipe
- ส่งต่อบริบทของเทอร์มินัลให้ LLMs และตั้งคำถาม
- แชตกับ LLMs จากเทอร์มินัล
- รองรับความสามารถเพิ่มเติมผ่านการเรียกใช้ฟังก์ชันและเทมเพลต
ข้อกำหนด
- bash
- jq (สำหรับพาร์ส JSON)
- curl (สำหรับส่งคำขอ HTTPS)
- perl (สำหรับ PCRE เนื่องจาก POSIX bash ไม่รองรับ regular expression แบบ look-ahead และ look-behind ไม่จำเป็นหากไม่ใช้โหมดบันทึก)
การติดตั้ง
git clone --depth 1 https://github.com/simonmysun/ell.git ~/.ellrc.d
echo 'export PATH="${HOME}/.ellrc.d:${PATH}"' >> ~/.bashrc
หรือ
git clone --depth 1 git@github.com:simonmysun/ell.git ~/.ellrc.d
echo 'export PATH="${HOME}/.ellrc.d:${PATH}"' >> ~/.bashrc
คำสั่งนี้จะโคลนรีโพซิทอรีไปยังไดเรกทอรี .ellrc.d และเพิ่มเข้าไปใน PATH
การตั้งค่า
ตัวอย่างการตั้งค่าสำหรับการใช้ gemini-1.5-flash ของ 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/
ตัวอย่างการตั้งค่าสำหรับการใช้ gpt-4o-mini ของ 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
ตัวอย่างการใช้งาน
- ถามคำถาม:
ell "What is the capital of France?"
- ระบุโมเดลและใช้ไฟล์อินพุต:
ell -m gpt-4o -f user_prompt.txt
- อ่านจาก stdin:
cat somecode.py | ell -f -
- เพิ่มพรอมป์ต์เพิ่มเติมแบบทันที:
(cat somecode.py; echo "Explain this code") | ell -f -
- บันทึกอินพุตและเอาต์พุตของเทอร์มินัลแล้วใช้เป็นบริบท:
ell -r
# do random stuff
ell What does the error code mean?
ell How to fix it?
- รันในโหมดโต้ตอบ:
ell -i
- ใช้โหมดบันทึกร่วมกับโหมดโต้ตอบ:
ell -r -i
- ระบุเทมเพลตและเริ่มโหมดบันทึกร่วมกับโหมดโต้ตอบ:
ell -r -i -t ctf-gemini
หรือ
ell -r -i -t ctf-openai
การเขียนเทมเพลต
ดูรายละเอียดเพิ่มเติมเกี่ยวกับการใช้เทมเพลตได้ที่ Templates
การจัดสไตล์
ดูรายละเอียดเพิ่มเติมเกี่ยวกับการจัดสไตล์ได้ที่ Styling
ปลั๊กอิน
ปลั๊กอินหมายถึงสคริปต์ที่สามารถเรียกใช้ได้จาก ell ไม่รวมปลั๊กอินของผู้ให้บริการ LLM ดูรายละเอียดเพิ่มเติมได้ที่ Templates
ความเสี่ยงที่ควรพิจารณา
ดู Risks Consideration
FAQ
- Q: ทำไมถึงเรียกว่า "ell"?
- A: "ell" เป็นการผสมระหว่าง shell และ LLM ใช้ LLM backend ผ่าน shell script โดยเคยพิจารณาชื่อ "shellm" มาก่อน แต่เพราะอาจทำให้เข้าใจผิดจึงเปลี่ยนเป็น "ell" ชื่อนี้สั้นและจำง่าย
- Q: ทำไมถึงเขียนด้วย Bash?
- A: Bash เป็นเชลล์ที่ใช้กันแพร่หลายที่สุดบนระบบแบบ Unix-like และไม่มีความจำเป็นต้องใช้ภาษาที่ซับซ้อนกว่านี้
- Q: ell แตกต่างจากโปรเจกต์ลักษณะคล้ายกันอื่น ๆ อย่างไร?
- A: ell เขียนด้วย Bash เกือบล้วน ๆ จึงมีน้ำหนักเบามากและติดตั้งง่าย ขยายและแก้ไขได้ง่ายมาก และเป็นมิตรกับการใช้ผ่าน pipe
โปรเจกต์ที่คล้ายกัน
- chatgpt-cli: ChatGPT CLI ที่เขียนด้วย Go
- gpt-cli: CLI สำหรับ LLM backend หลากหลายแบบที่เขียนด้วย Python
- gptcli: CLI สำหรับ OpenAI LLM ที่เขียนด้วย TypeScript
- x-cmd: ชุดเครื่องมือหลากหลายที่เขียนด้วย POSIX bash และ awk
- gpt-bash-cli: CLI สำหรับ OpenAI API ที่บันทึกคำขอและคำตอบลงฐานข้อมูล
- mods: เครื่องมือ CLI สำหรับคุยกับ LLM ที่เขียนด้วย Go
- nicechat: อินเทอร์เฟซแชต CLI สำหรับโมเดล OpenAI ที่เขียนด้วย Node.js
- autocomplete-sh: CLI สำหรับ LLM ที่เขียนด้วย bash
- plandex: เครื่องมือ CLI สำหรับพัฒนาเวิร์กโฟลว์แบบผสาน AI ที่เขียนด้วย Go
- llm: เครื่องมือ CLI สำหรับจัดการ LLM เชิงลึกที่เขียนด้วย Python
- aichat: เครื่องมือ CLI สำหรับคุยกับผู้ให้บริการ LLM หลายรายที่เขียนด้วย Rust
การมีส่วนร่วม
ยินดีรับการมีส่วนร่วมเสมอ! หากมีไอเดีย ข้อเสนอแนะ หรือรายงานบั๊ก สามารถเปิด issue หรือส่ง pull request ได้
ไลเซนส์
โปรเจกต์นี้อยู่ภายใต้ MIT License ดูรายละเอียดเพิ่มเติมได้ที่ไฟล์ LICENSE
สรุปโดย GN⁺
- ell เป็นอินเทอร์เฟซบรรทัดคำสั่งสำหรับ LLM ที่เขียนด้วย Bash มีน้ำหนักเบาและติดตั้งง่าย
- รองรับการผสานรวมกับโมเดล LLM หลากหลายแบบ และเป็นมิตรกับการใช้ผ่าน pipe
- สามารถใช้โหมดบันทึกร่วมกับโหมดโต้ตอบเพื่อใช้ประโยชน์จากบริบทในเทอร์มินัลได้
- โปรเจกต์ที่คล้ายกันมีทั้ง chatgpt-cli, gpt-cli, gptcli เป็นต้น ซึ่งเขียนด้วยภาษาที่แตกต่างกัน
ยังไม่มีความคิดเห็น