1 điểm bởi GN⁺ 2024-08-04 | Chưa có bình luận nào. | Chia sẻ qua WhatsApp

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.

Chưa có bình luận nào.