
Công cụ CLI đóng gói các dự án khoa học dữ liệu cho cửa sổ ngữ cảnh của LLM.
URL bài viết: https://github.com/arianmokhtariha/data2prompt URL bình luận: https://news.ycombinator.com/item?id=48373045 Điểm: 14 Bình luận: 0
Điều phối codebase-to-prompt hiệu suất cao cho các quy trình làm việc Khoa học Dữ liệu và các dự án nặng về dữ liệu.
data2prompt là một công cụ CLI được thiết kế để kết nối khoảng cách giữa các dự án nặng về dữ liệu cục bộ và các cửa sổ ngữ cảnh của Mô hình Ngôn ngữ Lớn (LLM). Không giống như các công cụ đóng gói mã chung, nó cung cấp đầu ra thông minh, tối ưu hóa cho cơ chế chú ý của LLM, biểu diễn cấu trúc và nội dung của dự án theo nhận thức về token.
📝 Lưu ý quan trọng
Data2prompt được xây dựng có mục đích cho các dự án nặng về dữ liệu (.csv, .sql, .xlsx, .ipynb), không phải các kho lưu trữ mã thuần túy lớn. Nó lấy mẫu và cắt bớt các tệp dữ liệu một cách thông minh để ngăn chặn sự bùng nổ cửa sổ ngữ cảnh trong khi vẫn giữ cấu trúc ngữ nghĩa.
🎯 Tại sao lại là Data2Prompt?
Các công cụ chuyển đổi mã thành prompt chung bị tắc nghẽn bởi các tệp dữ liệu—chúng bỏ qua hoàn toàn hoặc đổ các tệp CSV thô làm lãng phí 90% cửa sổ ngữ cảnh của bạn. Data2Prompt giải quyết vấn đề này bằng cách lấy mẫu thông minh, trích xuất lược đồ và định dạng được tối ưu hóa cho LLM được thiết kế đặc biệt cho các quy trình làm việc khoa học dữ liệu.
✨ Các tính năng cốt lõi
Phân tích cú pháp Jupyter thông minh: Trích xuất mã, markdown và đầu ra văn bản từ các tệp .ipynb một cách thông minh trong khi loại bỏ các hình ảnh Base64 nặng và HTML thô để giữ ngữ cảnh.
Lấy mẫu đa định dạng: Các chiến lược lấy mẫu nâng cao cho các tệp CSV, SQL và Excel để giữ lược đồ và ngữ cảnh dữ liệu, giúp giảm đáng kể kích thước dữ liệu trong khi trích xuất ngữ cảnh cần thiết cho LLM.
Cắt bớt mạnh mẽ: Để giữ ngữ cảnh, các dòng dài được cắt bớt để trung hòa các injection dòng và tránh làm bùng nổ các cửa sổ ngữ cảnh. Nếu dữ liệu dạng bảng vẫn quá lớn sau khi lấy mẫu, nó sẽ được cắt bớt đến một lượng nhất định. Tương tự, nếu một tệp văn bản thô thuộc loại không được xử lý quá lớn, nó cũng sẽ được cắt bớt đến một lượng nhất định.
Xử lý phòng thủ: Tự động phát hiện nhị phân (kiểm tra byte Null), kiểm tra xem một tệp có phải là nhị phân hay không bằng cách tìm kiếm một byte Null trong 1024 byte đầu tiên.
Tối ưu hóa sự chú ý của LLM: Định dạng đầu ra mặc định là markdown với lược đồ được cấu trúc tốt và một tùy chọn khác là đầu ra XML với các thẻ kiểu XML để tăng cường neo LLM cho phân tích phức tạp và các cửa sổ ngữ cảnh lớn.
Đầu ra nhận biết token: Ước tính token theo thời gian thực bằng tiktoken (o200k_base) để đảm bảo các prompt phù hợp với các LLM mục tiêu (Claude 3.5, GPT-4o, Gemini 1.5) và đếm token ngoại tuyến nâng cao thông qua regex.
Giao diện người dùng đầu cuối (TUI) chuyên nghiệp: Giao diện đầu cuối độ trung thực cao được xây dựng bằng Rich, có hoạt ảnh khởi động kiểu Matrix và các báo cáo tương tác, có thể cuộn trên Windows.
Bọc Markdown động: Sử dụng độ sâu dấu ngược thông minh để đảm bảo lồng ghép mạnh mẽ các khối mã trong đầu ra cuối cùng.
Nhận biết Gitignore: Tôn trọng các quy tắc .gitignore theo mặc định và bạn có thể tắt tính năng này bằng đối số CLI (--no-gitignore) nếu cần.
🏗️ Kiến trúc & Tiêu chuẩn kỹ thuật
Dự án này là một triển khai cấp độ danh mục đầu tư của mẫu Điều phối chức năng mô-đun (MFO), phản ánh sự trưởng thành kỹ thuật cấp cao:
Mẫu Registry & Strategy: Sử dụng ParserRegistry để xử lý tệp có thể mở rộng và chiến lược OutputGenerator cho nhiều định dạng (Markdown, XML).
Cấu hình tập trung: Tất cả logic cốt lõi, số ma thuật và danh sách bỏ qua mặc định nằm trong src/data2prompt/constants.py.
Gợi ý kiểu nghiêm ngặt: Các chữ ký hàm được gõ đầy đủ (PEP 484) trên tất cả các mô-đun.
Đóng gói giao diện người dùng: Tất cả phản hồi đầu cuối được xử lý bởi một UIHandler chuyên dụng, đảm bảo sự tách biệt rõ ràng giữa logic và trình bày.
Để tìm hiểu sâu về thiết kế hệ thống, hãy xem Tài liệu kiến trúc.
🚀 Bắt đầu nhanh
Cài đặt
Đảm bảo đã cài đặt Python 3.10 trở lên.
Khuyến nghị — sử dụng pipx (cài đặt dưới dạng công cụ CLI toàn cục):
Chưa có pipx? Cài đặt trước:
pip install pipx
pipx ensurepath
Sau đó cài đặt data2prompt:
pipx install data2prompt
Thay thế — sử dụng pip (yêu cầu môi trường ảo đang hoạt động):
pip install data2prompt
Cập nhật lên phiên bản mới nhất:
# với pipx
pipx upgrade data2prompt
# với pip
pip install --upgrade data2prompt
Cài đặt từ mã nguồn
# Sao chép kho lưu trữ
git clone https://github.com/arianmokhtariha/data2prompt.git
cd data2prompt
# Cài đặt thông thường
pip install .
# Hoặc cài đặt ở chế độ chỉnh sửa
pip install -e .
Cách sử dụng
Chạy data2prompt trong thư mục gốc dự án của bạn để tạo một lời nhắc có cấu trúc:
# Cách sử dụng cơ bản (mặc định xuất ra markdown)
data2prompt
# Xuất tùy chỉnh với định dạng xml và lấy mẫu cụ thể
data2prompt --output my_analysis --format xml --csv-sample-size 50 --ignore-folders venv .pytest_cache
Đối số CLI
Đối số
Mô tả
Mặc định
-o, --output
Tên cơ sở của tệp được tạo
PROMPT
-f, --format
Định dạng đầu ra (xml hoặc markdown)
markdown
-s, --csv-sample-size
Số hàng ngẫu nhiên để lấy mẫu từ CSV
15
--max-lines
Số dòng văn bản tối đa trên mỗi ô sổ ghi chép
40
--max-file-size
Kích thước tệp tối đa tính bằng KB để đọc toàn bộ
70
Xem Tài liệu tham khảo CLI để biết danh sách đầy đủ các đối số.
📚 Tài liệu
Khám phá tài liệu chi tiết để biết thêm thông tin:
Kiến trúc: Mẫu MFO và luồng mô-đun.
Tài liệu tham khảo CLI: Mô tả đối số chi tiết và cách sử dụng.
Trình phân tích cú pháp: Cách xử lý các loại tệp khác nhau.
Định dạng đầu ra: Chi tiết về việc tạo Markdown và XML.
Giao diện người dùng: Các tính năng của TUI công nghệ cao.
Cài đặt: Hướng dẫn thiết lập toàn diện.
🛠️ Thiết lập nhà phát triển
Để đóng góp hoặc chạy thử nghiệm:
pip install -e .[dev]
pytest
🌟 Thể hiện sự ủng hộ của bạn
Nếu Data2Prompt giúp bạn tiết kiệm chi phí token hoặc tăng tốc quy trình làm việc của bạn, hãy cân nhắc:
⭐ Gắn dấu sao kho lưu trữ
🐛 Báo cáo sự cố hoặc đề xuất tính năng
🔀 Đóng góp trình phân tích cú pháp cho các loại tệp mới
Được xây dựng với độ chính xác cho quy trình phát triển hỗ trợ AI hiện đại.
Nguồn tin: Hacker News LLM — Tác giả: ArianM. Bản dịch tiếng Việt do AI thực hiện, có thể có sai sót.