Xây dựng công cụ Review Code bằng AI cục bộ với Ollama

CI của bạn báo "green" nhưng còn hời hợt. Một đồng nghiệp có thể bỏ lỡ một lỗi đơn giản vì họ đang bận. Bạn có thể xây dựng một "đôi mắt thứ hai" bằng cách sử dụng một LLM cục bộ.

Bạn có thể tạo một CLI bằng TypeScript để xem xét các thay đổi (git diff) đã được đưa vào stage trước khi bạn commit. Điều này giúp giữ mã nguồn của bạn được riêng tư. Nó không sử dụng bất kỳ API key nào và cũng không cần đến các nhà cung cấp dịch vụ đám mây.

Cách thức hoạt động của công cụ:

• Lấy các thay đổi đã được stage bằng lệnh git diff --cached. • Gửi các thay đổi đó đến Ollama cùng với một prompt cụ thể. • Yêu cầu đầu ra định dạng JSON và xác thực nó bằng Zod. • In các kết quả tìm thấy ra terminal của bạn. • Thiết lập nó như một pre-commit hook.

Các lựa chọn kỹ thuật để có kết quả tốt hơn:

• Sử dụng --no-color để loại bỏ các mã ANSI khỏi prompt. • Sử dụng -U3 để cung cấp ba dòng ngữ cảnh cho mô hình. • Đặt temperature về 0 để có kết quả mang tính xác định (deterministic). • Sử dụng một system prompt cụ thể để bỏ qua các quy tắc về phong cách (style) và cách đặt tên.

Hãy tập trung mô hình vào các lỗi logic, truy cập null và các vấn đề bảo mật. Hãy chỉ cho nó biết cần bỏ qua những gì. Việc bảo một mô hình nhỏ những gì không nên báo cáo sẽ hiệu quả hơn là bảo nó tìm kiếm những gì.

Quy trình làm việc thực tế cho các mô hình cục bộ:

• Sử dụng qwen2.5-coder:7b cho git hook của bạn. • Sử dụng qwen2.5-coder:1.5b để kiểm thử cục bộ nhanh chóng. • Chỉ chặn commit đối với các lỗi có mức độ nghiêm trọng cao. • Để các phát hiện có mức độ nghiêm trọng trung bình và thấp ở mức độ cảnh báo (advisory).

Các mô hình cục bộ không phải là các kỹ sư cấp cao (staff engineers). Chúng có thể bỏ lỡ các logic phức tạp trải dài trên nhiều tệp tin. Chúng cũng có thể tạo ra các kết quả dương tính giả (false positives). Tuy nhiên, chúng có thể bắt được các lỗi nhỏ như thiếu await hoặc sử dụng sai toán tử.

Hãy sử dụng công cụ này để bắt các lỗi bất cẩn trước khi chúng đến bước pull request. Nó giúp tiết kiệm thời gian cho nhóm của bạn và giữ cho mã nguồn luôn sạch sẽ.

Nguồn: https://dev.to/pavelespitia/building-a-local-ai-code-reviewer-with-ollama-that-catches-bugs-before-your-team-49d3

Cộng đồng học tập tùy chọn: https://t.me/GyaanSetuAi