13 điểm bởi GN⁺ 2024-04-11 | 1 bình luận | Chia sẻ qua WhatsApp
  • Công cụ dòng lệnh cho phép lập trình cặp với GPT-3.5/GPT-4 và chỉnh sửa mã được lưu trong kho git cục bộ
  • aider trực tiếp chỉnh sửa mã trong các tệp nguồn cục bộ và commit các thay đổi vào git kèm thông điệp commit phù hợp
  • Có thể bắt đầu dự án mới hoặc làm việc trong kho git hiện có
  • Điểm độc đáo của aider là có thể yêu cầu các thay đổi trên những codebase lớn đã tồn tại

Tính năng chính

  • Khởi động aider từ dòng lệnh cùng với tập các tệp nguồn cần chỉnh sửa để trò chuyện với GPT về mã. Thông qua aider, GPT có thể xem và chỉnh sửa nội dung của các tệp đó
  • GPT có thể viết và chỉnh sửa mã bằng hầu hết các ngôn ngữ phổ biến như python, javascript, typescript, php, html, css, v.v.
  • Có thể yêu cầu tính năng mới, thay đổi, cải tiến hoặc sửa lỗi cho mã. Có thể yêu cầu test case mới, tài liệu được cập nhật hoặc refactor mã
  • aider áp dụng trực tiếp các chỉnh sửa do GPT đề xuất vào các tệp nguồn
  • aider tự động commit từng nhóm thay đổi vào kho git cục bộ kèm thông điệp commit có giải thích. Các commit tự động thường xuyên này tạo ra một lưới an toàn. Có thể dễ dàng hoàn tác thay đổi hoặc quản lý chuỗi thay đổi dài hơn bằng quy trình git tiêu chuẩn
  • Có thể dùng nhiều tệp nguồn với aider cùng lúc, nhờ đó GPT có thể điều phối thay đổi mã trên tất cả các tệp trong một nhóm thay đổi/commit duy nhất
  • aider có thể cung cấp cho GPT-4 bản đồ của toàn bộ kho git, giúp hiểu và chỉnh sửa các codebase lớn
  • Trong lúc trò chuyện với aider, bạn cũng có thể dùng trình soạn thảo để chỉnh sửa tệp thủ công. aider phát hiện các chỉnh sửa ngoài luồng này và cập nhật cho GPT theo phiên bản mới nhất của tệp. Nhờ đó, bạn có thể qua lại giữa cuộc trò chuyện với aider và trình soạn thảo để cộng tác lập trình cùng GPT
  • Nếu dùng trực tiếp gpt-4 qua openai, có thể thêm tệp hình ảnh vào ngữ cảnh và khi đó sẽ tự động chuyển sang mô hình gpt-4-vision-preview

Lệnh trong chat

  • aider hỗ trợ các lệnh bắt đầu bằng / trong chat. Một số lệnh hữu ích nhất gồm:
    • /add : thêm các tệp khớp vào phiên chat
    • /drop : loại bỏ các tệp khớp khỏi phiên chat
    • /undo: hoàn tác commit git gần nhất nếu được thực hiện bởi aider
    • /diff: hiển thị diff của commit aider gần nhất
    • /run : chạy lệnh shell và tùy chọn thêm đầu ra vào chat
    • /voice: nói chuyện với aider để yêu cầu thay đổi mã bằng giọng nói
    • /help: hiển thị trợ giúp cho tất cả lệnh

Mẹo

  • Hãy nghĩ xem cần chỉnh sửa những tệp nào để thực hiện thay đổi rồi thêm chúng vào chat. aider có khả năng tự xác định phần nào các tệp mà GPT cần chỉnh sửa, nhưng cách hiệu quả nhất là bạn tự thêm rõ ràng các tệp cần thiết vào chat
  • Những thay đổi lớn nên được thực hiện theo chuỗi bước có cân nhắc để lập kế hoạch cách tiếp cận và thiết kế tổng thể. Hãy dẫn dắt GPT về thay đổi như khi làm việc với một lập trình viên junior. Hãy yêu cầu refactor để chuẩn bị trước, rồi mới yêu cầu thay đổi thực sự. Nên dành thời gian để yêu cầu cải thiện chất lượng/cấu trúc mã
  • Nếu GPT không đưa ra phản hồi hữu ích, có thể dùng Control-C để ngắt an toàn. Phản hồi một phần vẫn sẽ nằm trong cuộc hội thoại, nên bạn có thể tham chiếu khi trả lời lại GPT với thêm thông tin hoặc định hướng
  • Có thể dùng lệnh /run để chạy test, linter, v.v. và hiển thị đầu ra cho GPT nhằm giải quyết vấn đề
  • Có thể nhập tin nhắn chat nhiều dòng bằng Meta-ENTER (ở một số môi trường là Esc+ENTER). Hoặc chỉ nhập { ở dòng đầu để bắt đầu tin nhắn nhiều dòng và chỉ nhập } ở dòng cuối để kết thúc tin nhắn
  • Nếu mã phát sinh lỗi, hãy dùng /run hoặc dán đầu ra lỗi vào chat để chia sẻ với GPT. Hãy để GPT tìm và sửa bug
  • GPT biết nhiều công cụ và thư viện tiêu chuẩn, nhưng đôi khi có thể hiểu sai một số chi tiết về API và đối số hàm. Có thể dán các đoạn tài liệu vào chat để giải quyết những vấn đề này
  • GPT chỉ có thể xem nội dung của những tệp mà bạn đã đặc biệt "thêm vào chat". aider cũng gửi bản đồ của toàn bộ kho git cho GPT-4. Vì vậy GPT có thể yêu cầu xem thêm tệp nếu cho rằng cần thiết cho yêu cầu.

Ý kiến của GN⁺

  • Có vẻ nếu tận dụng aider trong các dự án lớn thì sẽ dễ áp dụng những thay đổi nhất quán trên toàn bộ codebase. Đặc biệt khi kết hợp với năng lực của GPT-4 thì có vẻ sẽ càng mạnh hơn
  • Tuy vậy, thay vì chấp nhận vô điều kiện các thay đổi do GPT đề xuất, có lẽ vẫn cần quá trình để lập trình viên trực tiếp review và test. Các mô hình GPT hiện vẫn chưa hoàn hảo nên vẫn có khả năng phát sinh bug
  • Có vẻ cũng nên tận dụng aider không chỉ cho mã mà còn cho viết tài liệu hoặc test case. Nếu tận dụng khả năng hiểu ngôn ngữ tự nhiên của GPT, có thể kỳ vọng tạo nhanh tài liệu và mã kiểm thử chất lượng cao hơn
  • Dù dựa trên CLI nên khả năng tiếp cận tốt, nhưng nếu được tích hợp chặt chẽ hơn với môi trường phát triển như plugin cho trình soạn thảo thì có vẻ sẽ giúp tăng mạnh năng suất của lập trình viên
  • Điểm khác biệt so với các công cụ lập trình cặp AI tương tự như GitHub Copilot có lẽ nằm ở việc tận dụng GPT-4 và quy trình làm việc dựa trên git. Việc so sánh ưu nhược điểm với các công cụ hiện có có vẻ sẽ rất thú vị

1 bình luận

 
GN⁺ 2024-04-11
Ý kiến trên Hacker News

Sau đây là phần tóm tắt các bình luận trên Hacker News:

  • Khi dùng công cụ AI, việc viết prompt và rà soát kết quả có thể tốn nhiều thời gian, đôi khi còn kém hiệu quả hơn tự làm trực tiếp. Khi khám phá giải pháp mới, có vẻ chúng cũng có giới hạn về độ chính xác.
  • Có một dự án chạy trong terminal tên là Plandex với chức năng tương tự Aider. Nó dùng CLI kiểu Git và tập trung vào các tác vụ phức tạp trải dài trên nhiều tệp.
  • Chia sẻ trải nghiệm dùng Claude để thực hiện công việc thiết kế website responsive. Nó giữ ngữ cảnh dài tốt và có thể xử lý tốt codebase HTML/CSS/JS pha trộn.
  • Chia sẻ một trường hợp phát sinh lỗi khi dùng công cụ AI trong ứng dụng Go do không hiểu đúng các quy tắc về phạm vi biến. Từ đó đặt câu hỏi về độ tin cậy.
  • Một số người thấy tiếc vì khả năng tích hợp với các IDE hiện có như JetBrains còn thiếu. Cũng có chia sẻ về trải nghiệm dùng kết hợp với các công cụ sẵn có như GitHub Copilot.
  • Có sự quan tâm đến kết quả benchmark hiệu năng LLM của Aider. Mô hình GPT-4 Turbo with Vision được cho là cho hiệu năng kém hơn các mô hình trước đó.
  • Chất lượng đầu ra của các công cụ AI vẫn chưa hoàn hảo nên còn có giới hạn trong sử dụng thực tế. Những lỗi tinh vi vẫn tiếp tục tồn tại.