HN giới thiệu: Ell, giao diện dòng lệnh cho LLM được viết bằng Bash
(github.com/simonmysun)Giao diện dòng lệnh ellA
Tính năng
- Hỏi LLM trực tiếp từ terminal
- Thân thiện với pipe
- Truyền ngữ cảnh terminal cho LLM và đặt câu hỏi
- Trò chuyện với LLM trong terminal
- Hỗ trợ tính năng bổ sung thông qua function calling và template
Yêu cầu
- bash
- jq (để phân tích JSON)
- curl (để gửi yêu cầu HTTPS)
- perl (cho PCRE. POSIX bash không hỗ trợ biểu thức chính quy look-ahead và look-behind. Không cần nếu không dùng chế độ ghi lại lịch sử)
Cài đặt
git clone --depth 1 https://github.com/simonmysun/ell.git ~/.ellrc.d
echo 'export PATH="${HOME}/.ellrc.d:${PATH}"' >> ~/.bashrc
hoặc
git clone --depth 1 git@github.com:simonmysun/ell.git ~/.ellrc.d
echo 'export PATH="${HOME}/.ellrc.d:${PATH}"' >> ~/.bashrc
Lệnh này sẽ clone kho lưu trữ vào thư mục .ellrc.d và thêm nó vào PATH
Cấu hình
Ví dụ cấu hình sau sử dụng gemini-1.5-flash của 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/
Ví dụ cấu hình sử dụng gpt-4o-mini của 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
Ví dụ sử dụng
- Đặt câu hỏi:
ell "What is the capital of France?"
- Chỉ định model và dùng đầu vào từ tệp:
ell -m gpt-4o -f user_prompt.txt
- Đọc từ stdin:
cat somecode.py | ell -f -
- Thêm prompt bổ sung ngay lập tức:
(cat somecode.py; echo "Explain this code") | ell -f -
- Ghi lại đầu vào và đầu ra của terminal rồi dùng làm ngữ cảnh:
ell -r
# do random stuff
ell What does the error code mean?
ell How to fix it?
- Chạy ở chế độ tương tác:
ell -i
- Kết hợp chế độ ghi lịch sử và chế độ tương tác:
ell -r -i
- Chỉ định template rồi khởi động chế độ ghi lịch sử và chế độ tương tác:
ell -r -i -t ctf-gemini
hoặc
ell -r -i -t ctf-openai
Viết template
Xem Templates để biết thêm chi tiết về cách dùng template
Tạo kiểu
Xem Styling để biết thêm chi tiết về tạo kiểu
Plugin
Plugin là các script có thể được gọi từ ell. Không bao gồm plugin của nhà cung cấp LLM. Xem Templates để biết thêm chi tiết
Những rủi ro cần cân nhắc
Xem Risks Consideration
FAQ
- Q: Tại sao lại gọi là "ell"?
- A: "ell" là sự kết hợp của shell và LLM. Nó dùng shell script để sử dụng backend LLM. "shellm" cũng từng được cân nhắc, nhưng dễ gây hiểu lầm nên được đổi thành "ell". Tên này ngắn và dễ nhớ
- Q: Tại sao lại được viết bằng Bash?
- A: Bash là shell phổ biến nhất trên các hệ thống kiểu Unix, và không cần dùng đến ngôn ngữ phức tạp hơn
- Q: Điểm khác biệt giữa ell và các dự án tương tự khác là gì?
- A: ell được viết gần như hoàn toàn bằng Bash nên rất nhẹ và dễ cài đặt. Việc mở rộng và chỉnh sửa cũng rất dễ. Nó thân thiện với pipe
Dự án tương tự
- chatgpt-cli: ChatGPT CLI được viết bằng Go
- gpt-cli: CLI cho nhiều backend LLM được viết bằng Python
- gptcli: CLI cho OpenAI LLM được viết bằng TypeScript
- x-cmd: Bộ sưu tập nhiều công cụ được viết bằng POSIX bash và awk
- gpt-bash-cli: CLI cho OpenAI API, lưu request và response vào cơ sở dữ liệu
- mods: Công cụ CLI để trò chuyện với LLM được viết bằng Go
- nicechat: Giao diện chat CLI cho model OpenAI được viết bằng Node.js
- autocomplete-sh: CLI cho LLM được viết bằng bash
- plandex: Công cụ CLI để phát triển workflow tích hợp AI được viết bằng Go
- llm: Công cụ CLI để thao tác chuyên sâu với LLM được viết bằng Python
- aichat: Công cụ CLI để trò chuyện với nhiều nhà cung cấp LLM được viết bằng Rust
Đóng góp
Luôn hoan nghênh mọi đóng góp! Nếu bạn có ý tưởng, đề xuất hoặc báo lỗi, hãy mở issue hoặc gửi pull request
Giấy phép
Dự án này được cấp phép theo giấy phép MIT. Xem tệp LICENSE để biết thêm chi tiết
Tóm tắt của GN⁺
- ell là giao diện dòng lệnh cho LLM được viết bằng Bash, nhẹ và dễ cài đặt
- Hỗ trợ tích hợp với nhiều model LLM khác nhau và thân thiện với pipe
- Có thể kết hợp chế độ ghi lịch sử và chế độ tương tác để tận dụng ngữ cảnh terminal
- Các dự án tương tự gồm chatgpt-cli, gpt-cli, gptcli và nhiều công cụ khác được viết bằng các ngôn ngữ khác nhau
Chưa có bình luận nào.