Tìm Mã Nguồn Hữu Ích Chỉ Trong Vài Giây — Cho Bạn và AI Lập Trình
Bạn đã bao giờ mong muốn rằng trợ lý lập trình AI của bạn thực sự đọc mã của bạn thay vì chỉ giả vờ như nó đã làm chưa? Đó chính xác là điều mà tôi đã gặp phải.
Tôi thường xuyên phải lặp đi lặp lại những điều giống nhau với Claude:
"Đây là đoạn mã mà tôi đã viết trước đó — hãy sử dụng lại nó,"
"Đây là cách tôi đã sử dụng thư viện đó trong một dự án khác,"
"Hãy theo phong cách lập trình này, không phải phong cách mặc định."
Nghe quen không? 😅
Đó là lý do tại sao tôi đã tự chế một cái gì đó giống như phiên bản địa phương của Context7 — nhưng thực sự có khả năng khai thác mã nguồn của bạn. Tôi gọi nó là Snippets, và tôi rất mong bạn thử nghiệm và cho tôi phản hồi.
🤔 Động Lực
Context7 là một công cụ thú vị, nhưng tôi đã gặp phải một số rào cản với nó:
- Nó chủ yếu tập trung vào tài liệu (
.mdfiles), trong khi tôi thường cần mã thực tế. - Đúng vậy, nó hỗ trợ repo riêng, nhưng chỉ như một tính năng nhóm, và dữ liệu của bạn vẫn được lưu trữ trên máy chủ bên ngoài.
- Tôi muốn một cái gì đó địa phương trước: không tải lên, không lưu trữ bên ngoài, chỉ có tôi và máy của tôi.
- Bởi vì Snippets dựa vào chính Claude Code để trích xuất các đoạn mã, tôi nghi ngờ rằng nó vừa rẻ hơn vừa chính xác hơn cho việc sử dụng trong thế giới thực.
Tầm nhìn rất đơn giản:
👉 Cung cấp cho AI của bạn một bộ nhớ mã có thể tìm kiếm — các repo của bạn, các mẫu của bạn, phong cách của bạn.
🔍 So Sánh Context7 và Snippets
| Tính Năng | Context7 | Snippets (dự án này) |
|---|---|---|
| Tập trung dữ liệu | Đọc tài liệu (.md files) |
Đọc mã nguồn thực tế |
| Hỗ trợ repo riêng | ✅ Có, nhưng có vẻ như sẽ sớm trở thành tính năng trả phí | ✅ Có, hoạt động ngay lập tức trên máy local |
| Lưu trữ dữ liệu | Lưu trữ trên máy chủ bên ngoài | Hoàn toàn trên máy của bạn |
| Triển khai | Dựa trên đám mây | Thiết lập Docker địa phương |
| Mã nguồn mở? | Đóng mã nguồn | Có, đúng vậy! |
💡 Những Gì Snippets Có Thể Làm
Dưới đây là một số cách thực tế mà tôi đang sử dụng Snippets:
-
Bộ nhớ AI cho các dự án của bạn
Khi Claude gặp khó khăn với một nhiệm vụ, hãy cung cấp cho nó các đoạn mã từ các repo trước đó của bạn để cung cấp bối cảnh. -
Xử lý tài liệu kém
Context7 có thể đọc tài liệu .md, nhưng khi tài liệu bị thiếu hoặc không rõ ràng, Snippets cho phép bạn chỉ cần thêm một repo ví dụ và tìm kiếm mã thực tế thay thế. -
Chuyển giao phong cách
Chỉ mục các repo của bạn và bảo Claude: “theo phong cách lập trình này.” -
Thư viện đoạn mã tái sử dụng
Thu thập các helper, utility và các mẫu khởi tạo thành một cơ sở dữ liệu có thể tìm kiếm và có ngữ nghĩa. -
Mở rộng khả năng của AI
Cung cấp cho nó mã Rust, thư viện công ty riêng hoặc các framework ngách — những thứ mà AI của bạn không biết rõ — và làm cho nó thông minh hơn.
⚡ Bắt Đầu Nhanh
Thiết lập Snippets chạy trên máy local rất đơn giản.
1. Clone & Thiết Lập
git clone https://github.com/cheolwanpark/snippets
cd snippets
2. Cấu Hình Môi Trường
cp docker/.env.example docker/.env
Thêm Token OAuth Claude và API Key Gemini vào docker/.env.
Token OAuth Claude: Bạn có thể nhận được nó từ lệnh claude setup-token!
API Key Gemini: Dùng để nhúng. Bạn có thể lấy nó từ Google AI Studio!
3. Khởi Động Với Docker
cd docker
docker-compose up -d
Điều này sẽ khởi động:
- Frontend → http://localhost:3000
- API & MCP Server → http://localhost:8000 / http://localhost:8080/mcp
- Qdrant & Redis → 6333 và 6379
4. Thêm Repo Đầu Tiên Của Bạn
- Mở
http://localhost:3000 - Dán URL repo GitHub
- Nhấn Embed
- Khi quá trình hoàn tất, bạn có thể tìm kiếm các đoạn mã bằng tiếng Anh đơn giản!
🔗 Tích Hợp Claude MCP
Kết nối nó với Claude Code qua MCP:
claude mcp add --transport http snippets http://localhost:8080/mcp
Giờ đây, bạn có thể hỏi Claude những câu như:
search error handling patterns in Python. use snippets.
search JWT authentication middleware. use snippets.
search async database queries in Rust. use snippets.
Thay vì trí nhớ mơ hồ, Claude sẽ kéo các đoạn mã thực tế trực tiếp từ các repo của bạn.
🧭 Tại Sao Phải Bận Tâm?
Cuối cùng, đây là điều tôi muốn:
- Không chỉ là tài liệu
.md, mà là mã thực tế. - Không chỉ là công cụ đám mây, mà là địa phương và riêng tư theo thiết kế.
- Không chỉ là "ma thuật AI," mà là thư viện có thể tìm kiếm các đoạn mã của riêng tôi.
Snippets vẫn còn trong giai đoạn đầu, nhưng đây là một bước tiến hướng tới “AI thực sự hiểu được bối cảnh của bạn.”
🙌 Mong Nhận Phản Hồi
Tôi rất muốn nhận được ý kiến của bạn:
- Điều này có hữu ích cho quy trình làm việc của bạn không?
- Bạn muốn thấy tính năng nào được thêm vào?
- Có điểm đau nào trong việc thiết lập/sử dụng không?
👉 Hãy xem repo ở đây
Hãy cùng nhau làm cho trợ lý lập trình của chúng ta trở nên thông minh hơn!