Bỏ qua tới nội dung chính
Quay lại tin tức

Code-mapper: Công cụ CLI miễn phí giúp giảm mức sử dụng token của LLM trên mọi cơ sở mã.

Hacker News LLM· Damien_220· 25/5/2026general

URL bài viết: https://github.com/damien220/code-mapper URL bình luận: https://news.ycombinator.com/item?id=48262981 Điểm: 3 Số bình luận: 0

code-mapper Tạo tệp PROJECT_CONTEXT.md nhỏ gọn để các mô hình ngôn ngữ lớn (LLM) có thể hiểu toàn bộ cơ sở mã chỉ trong một lần đọc, thay vì năm mươi lần. Khi một LLM mở một dự án chưa biết, nó sẽ đọc từng tệp để xây dựng một mô hình tinh thần. Đối với một dự án 4.000 dòng, quá trình này tiêu tốn khoảng 21.000 token trước khi một dòng mã nào được viết. code-mapper thay thế việc quét này bằng một tệp cấu trúc duy nhất, nắm bắt cùng một bức tranh kiến trúc trong khoảng 4.700 token – giảm 78%. $ python code_mapper.py ./my-project ✓ Đã tạo: my-project/PROJECT_CONTEXT.md Số tệp đã phân tích: 40 (python×40) Số lớp: 20 | Số hàm: 123 Kích thước đầu ra: 18.846 ký tự (~4.711 token) Số dòng mã nguồn: ~4.210 (~21.050 token để đọc thô) Tiết kiệm token: ~78% Nội dung được tạo Một tệp PROJECT_CONTEXT.md duy nhất với bốn phần: Cấu trúc tệp my-project/ ├── src/ ├── api/ └── router.py └── core/ └── engine.py └── tests/ └── test_engine.py Sơ đồ lớp classDiagram class Engine { +config: dict +run() +stop() +__init__() } class BaseEngine["«abstract» BaseEngine"] { +run() } BaseEngine <|-- Engine : extends Đang tải Biểu đồ phụ thuộc module graph TD router --> engine engine --> config Đang tải Chỉ mục ký hiệu **`src/core/engine.py`** `python` > Công cụ xử lý cốt lõi cho việc thực thi tác vụ không đồng bộ. - `«abstract» class BaseEngine` — Lớp cơ sở cho tất cả các công cụ - `class Engine(BaseEngine)` — Triển khai công cụ sản xuất phương thức: `run`, `stop`, `reload` - `async def create_engine(config: dict) → Engine` — Hàm tạo đối tượng Điểm chuẩn Dự án Số dòng mã nguồn Chi phí token thô code-mapper Tiết kiệm Nhỏ (~800 dòng) ~777 ~3.885 ~595 85% Trung bình (~400 dòng) ~379 ~1.895 ~522 72% Lớn (~4.200 dòng) ~4.210 ~21.050 ~4.711 78% Lớn (~4.600 dòng) ~4.649 ~23.245 ~6.056 74% Cài đặt Không có phụ thuộc nào ngoài Python 3.9+. # Sao chép vào thư mục script toàn cục mkdir -p ~/.claude/scripts cp code_mapper.py ~/.claude/scripts/ # Hoặc chỉ chạy tại chỗ python code_mapper.py ./your-project Tác nhân Claude Code (tùy chọn) Để sử dụng nó như một tác nhân phụ của Claude Code (@code-mapper map this project): mkdir -p your-project/.claude/agents/scripts cp agent.md your-project/.claude/agents/code-mapper.md cp code_mapper.py your-project/.claude/agents/scripts/ Cách sử dụng # Cơ bản — ghi PROJECT_CONTEXT.md vào bên trong dự án python code_mapper.py ./my-project # Đường dẫn đầu ra tùy chỉnh python code_mapper.py ./my-project -o .claude/PROJECT_CONTEXT.md # In ra stdout (xem trước / chuyển hướng) python code_mapper.py ./my-project --stdout # Ánh xạ chỉ một thư mục con (kho lưu trữ đơn lớn) python code_mapper.py ./my-project/src/api -o .claude/context_api.md Đoạn mã CLAUDE.md được khuyến nghị: ## Bắt đầu phiên Đọc `.claude/PROJECT_CONTEXT.md` trước khi khám phá bất kỳ tệp nguồn nào. Tạo lại bằng `python ~/.claude/scripts/code_mapper.py .` sau khi thêm module hoặc lớp. Ngôn ngữ được hỗ trợ Ngôn ngữ Trình phân tích cú pháp Độ chính xác Python Module ast tích hợp Chính xác TypeScript / JavaScript Biểu thức chính quy (Regex) Cao Java Biểu thức chính quy (Regex) Cao Go Biểu thức chính quy (Regex) Cao Rust Biểu thức chính quy (Regex) Cao C# Biểu thức chính quy (Regex) Cao Ruby / PHP / Kotlin / Swift / C++ Biểu thức chính quy (Regex) Trung bình Python cung cấp đầu ra phong phú nhất (thuộc tính có kiểu, docstring, phát hiện @dataclass và @abstractmethod). Tất cả các ngôn ngữ khác trích xuất hệ thống phân cấp lớp, các hàm công khai và mối quan hệ nhập thông qua biểu thức chính quy – chính xác đối với các mẫu mã tiêu chuẩn. Tại sao lại là Mermaid + Chỉ mục ký hiệu? Ba lựa chọn thay thế phổ biến đã được đánh giá: Phương pháp Chi phí token Tốc độ hiểu của LLM Bao gồm API công khai Đọc tất cả các tệp nguồn Cao nhất (cơ sở) Chậm nhất Có Kết xuất toàn bộ kho lưu trữ (đóng gói tất cả các tệp) Tương tự như cơ sở Chậm Có Chỉ đồ thị phụ thuộc mã Trung bình Trung bình Một phần UML/PlantUML thô Gấp 2–3 lần Mermaid Chậm hơn Có Mermaid + chỉ mục ký hiệu Thấp nhất Nhanh nhất Có Mermaid được chọn vì đây là định dạng hình ảnh có mật độ token cao nhất (hiệu quả hơn tới 24 lần so với các định dạng sơ đồ XML/JSON) và các mô hình ngôn ngữ lớn (LLM) hiện đại được đào tạo rộng rãi trên đó. Chỉ mục ký hiệu bao gồm những gì sơ đồ không thể hiện được — chữ ký hàm chính xác và chuỗi tài liệu (docstring) cho phép LLM gọi đúng phương thức mà không cần đọc các triển khai. So sánh đầy đủ với số lượng token thực tế: METHOD_COMPARISON.md Xử lý các cơ sở mã lớn Đối với các dự án có hơn 10.000 dòng, hãy ánh xạ các thư mục con một cách độc lập: # Chỉ phần phụ trợ (Backend) python code_mapper.py ./src/backend -o .claude/context_backend.md # Chỉ phần giao diện người dùng (Frontend) python code_mapper.py ./src/frontend -o .claude/context_frontend.md Chỉ tải ngữ cảnh liên quan đến tác vụ hiện tại của bạn. Xem USAGE_GUIDE.md để biết chiến lược đầy đủ cho cơ sở mã lớn. Các tệp code-mapper/ ├── code_mapper.py — Tập lệnh chính (chạy tập lệnh này) ├── agent.md — Định nghĩa tác nhân phụ Claude Code ├── README.md — Tệp này ├── USAGE_GUIDE.md — Hướng dẫn sử dụng đầy đủ (dự án mới/hiện có/lớn) └── METHOD_COMPARISON.md — So sánh chi phí token so với các phương pháp thay thế Yêu cầu Python 3.9+ Không có gói bên thứ ba Đóng góp Mọi đóng góp đều được hoan nghênh. Một số lĩnh vực có thể cải thiện công cụ: Phân tích cú pháp JS/TS tốt hơn — thay thế biểu thức chính quy (regex) bằng một trình phân tích cú pháp cây cú pháp trừu tượng (AST) phù hợp (ví dụ: thông qua tiến trình con của Node.js hoặc liên kết tree-sitter) sẽ làm cho sơ đồ lớp và chỉ mục ký hiệu chính xác cho TypeScript như hiện tại đối với Python. Hỗ trợ ngôn ngữ mới — việc thêm các mẫu cho các ngôn ngữ chưa được hỗ trợ (Scala, Dart, Elixir, v.v.) rất đơn giản: thêm các mục vào ba từ điển mẫu trong RegexParser. Cắt bớt cơ sở mã lớn thông minh hơn — tự động xếp hạng các ký hiệu theo tần suất chúng được tham chiếu (kiểu PageRank, tương tự như cách aider thực hiện) để đầu ra nằm trong giới hạn token mà không cần cắt tỉa thủ công. Hỗ trợ tệp cấu hình — một tệp .codemapper.yml cho mỗi dự án để đặt các quy tắc bỏ qua, giới hạn token và đường dẫn đầu ra. Móc nối IDE/trình chỉnh sửa — tự động tạo lại PROJECT_CONTEXT.md khi lưu tệp trong VS Code hoặc JetBrains. Để đóng góp: phân nhánh kho lưu trữ, thực hiện thay đổi của bạn và mở một yêu cầu kéo (pull request). Không có yêu cầu đóng góp nào ngoài việc duy trì ràng buộc không phụ thuộc (chỉ thư viện chuẩn Python cho tập lệnh cốt lõi). Giấy phép Dự án này là mã nguồn mở và miễn phí sử dụng, sửa đổi và phân phối lại — không có hạn chế giấy phép.

Nguồn tin: Hacker News LLM — Tác giả: Damien_220. Bản dịch tiếng Việt do AI thực hiện, có thể có sai sót.