Sherlock
LLM API Traffic Inspector & Token Usage Dashboard
Sherlock là một proxy minh bạch cho phép chặn lưu lượng HTTPS đến API LLM và hiển thị sử dụng token theo thời gian thực trên một bảng điều khiển terminal đẹp mắt. Theo dõi chi phí AI, gỡ lỗi các prompt, và giám sát việc sử dụng cửa sổ ngữ cảnh trong suốt phiên phát triển của bạn.
Tại Sao Chọn Sherlock?
- Theo Dõi Token: Xem chính xác mỗi yêu cầu tiêu tốn bao nhiêu token
- Giám Sát Cửa Sổ Ngữ Cảnh: Hiển thị mức sử dụng tổng cộng so với giới hạn của bạn
- Gỡ Lỗi Prompt: Tự động lưu mỗi prompt dưới dạng markdown và JSON để xem lại
- Không Cần Sửa Đổi Code: Hoạt động với bất kỳ công cụ nào tôn trọng các biến môi trường proxy
Cài Đặt
# Clone the repository
git clone https://github.com/yourusername/sherlock.git
cd sherlock
# Install in development mode
pip install -e .
Yêu Cầu
- Python 3.10+
- Node.js (cho việc chặn ứng dụng Node.js như Claude Code)
Bắt Đầu Nhanh
1. Khởi Động Sherlock
sherlock
Khi chạy lần đầu, Sherlock sẽ:
- Tạo chứng chỉ CA của mitmproxy
- Yêu cầu bạn cài đặt nó vào kho tin cậy của hệ thống
- Hỏi nơi lưu prompt đã chặn
2. Chạy Công Cụ LLM Của Bạn
Trong một terminal riêng, sử dụng Sherlock để proxy các lệnh:
# For Claude Code
sherlock claude
# For any command
sherlock run --node your-llm-tool
Vậy là xong! Xem bảng điều khiển cập nhật theo thời gian thực khi bạn tương tác với các API LLM.
Tính Năng
Bảng Điều Khiển Terminal Trực Tiếp
┌─────────────────────────────────────────────────────────────┐
│ 🔍 SHERLOCK - LLM Traffic Inspector │
├─────────────────────────────────────────────────────────────┤
│ Context Usage ████████████░░░░░░░░░░░░░░░░ 42% │
│ (84,231 / 200,000 tokens) │
├─────────────────────────────────────────────────────────────┤
│ Time Provider Model Tokens │
│ 14:23:01 Anthropic claude-sonnet-4-20250514 12,847 │
│ 14:23:45 Anthropic claude-sonnet-4-20250514 8,234 │
│ 14:24:12 Anthropic claude-sonnet-4-20250514 15,102 │
├─────────────────────────────────────────────────────────────┤
│ Last Prompt: "Can you help me refactor this function..." │
└─────────────────────────────────────────────────────────────┘
Lưu Trữ Prompt
Mỗi yêu cầu đã chặn được lưu dưới dạng:
- Markdown - Định dạng dễ đọc cho con người với siêu dữ liệu
- JSON - Dữ liệu thô của yêu cầu API để gỡ lỗi
Đồng Hồ Đo Nhiên Liệu Của Cửa Sổ Ngữ Cảnh
Thanh tiến trình trực quan với cảnh báo màu:
- 🟢 Xanh: < 50% sử dụng
- 🟡 Vàng: 50-80% sử dụng
- 🔴 Đỏ: > 80% sử dụng
Lệnh
| Command | Description |
|---|---|
sherlock | Khởi động proxy và bảng điều khiển |
sherlock start | Tương tự như bên trên (rõ ràng hơn) |
sherlock claude | Chạy Claude Code với cấu hình proxy |
sherlock run <cmd> | Chạy bất kỳ lệnh nào với cấu hình proxy |
sherlock run --node <cmd> | Chạy ứng dụng Node.js với cấu hình proxy |
sherlock check-certs | Kiểm tra cài đặt chứng chỉ CA |
sherlock install-certs | Hiển thị hướng dẫn cài đặt chứng chỉ |
sherlock env | In ra biến môi trường proxy |
Tùy Chọn
sherlock start [OPTIONS]
Các tùy chọn:
-p, --port NUMCổng proxy (mặc định: 8080)-l, --limit NUMGiới hạn token cho đồng hồ (mặc định: 200000)--persistLưu lịch sử token qua các phiên--skip-cert-checkBỏ qua xác minh chứng chỉ
Cách Hoạt Động
┌──────────────────────────────────────────────────────────────────┐
│ Your LLM Application │
│ (with proxy environment variables) │
└─────────────────────────────┬────────────────────────────────────┘
│ HTTPS
▼
┌──────────────────────────────────────────────────────────────────┐
│ mitmproxy (port 8080) │
│ + Sherlock Interceptor │
└─────────────────────────────┬────────────────────────────────────┘
│ Parsed events
▼
┌──────────────────────────────────────────────────────────────────┐
│ Sherlock Dashboard │
│ Token tracking • Request log • Prompt preview │
└──────────────────────────────────────────────────────────────────┘
│
▼
~/.sherlock/prompts/
├── 2024-01-15_14-23-01_anthropic.md
└── 2024-01-15_14-23-01_anthropic.json
Các Nhà Cung Cấp Được Hỗ Trợ
| Provider | Status |
|---|---|
| Anthropic (Claude) | ✅ Được hỗ trợ |
| OpenAI | 🔜 Sắp ra mắt |
| Google Gemini | 🔜 Sắp ra mắt |
Cấu Hình
Cài Đặt Chứng Chỉ
Sherlock sử dụng mitmproxy để chặn lưu lượng HTTPS. Lần chạy đầu tiên, sẽ hướng dẫn bạn cài đặt chứng chỉ CA.
macOS:
sudo security add-trusted-cert -d -r trustRoot \
-k /Library/Keychains/System.keychain \
~/.mitmproxy/mitmproxy-ca-cert.pem
Ubuntu/Debian:
sudo cp ~/.mitmproxy/mitmproxy-ca-cert.pem \
/usr/local/share/ca-certificates/mitmproxy-ca-cert.crt
sudo update-ca-certificates
Biến Môi Trường
Đối với cấu hình proxy thủ công:
export HTTP_PROXY="http://127.0.0.1:8080"
export HTTPS_PROXY="http://127.0.0.1:8080"
export NODE_EXTRA_CA_CERTS="$HOME/.mitmproxy/mitmproxy-ca-cert.pem"
Hoặc sử dụng trợ giúp:
eval $(sherlock env)
Đóng Góp
Đóng góp luôn được hoan nghênh! Đây là cách bạn có thể giúp:
- Fork Repos
- Tạo Nhánh tính năng (
git checkout -b feature/amazing-feature) - Commit Thay đổi của bạn (
git commit -m 'Add amazing feature') - Đẩy Lên nhánh (
git push origin feature/amazing-feature) - Mở Pull Request
Thiết Lập Phát Triển
git clone https://github.com/yourusername/sherlock.git
cd sherlock
python -m venv venv
source venv/bin/activate
pip install -e .
Thêm Hỗ Trợ Nhà Cung Cấp
Để thêm hỗ trợ cho nhà cung cấp LLM mới:
- Thêm máy chủ API vào
sherlock/config.py - Tạo hàm phân tích trong
sherlock/parser.py - Cập nhật hàm
parse_request()để định tuyến đến hàm phân tích của bạn
License
Dự án này được cấp phép dưới giấy phép MIT - xem tệp LICENSE để biết chi tiết.
Hãy xem những gì thật sự được gửi đến LLM. Học hỏi. Tối ưu. Lặp lại.