Ngày 14 tháng 11 năm 2024
Nâng cao các công cụ dựa trên AI cho nhà phát triển bằng Gemini API
Việc dân chủ hoá AI trong năm qua đã mở ra hai cơ hội lớn cho các nhà phát triển: giúp họ tích hợp AI tiên tiến vào các dự án của mình vô cùng dễ dàng và tăng hiệu quả nhờ kết hợp AI vào quy trình phát triển.
Sublayer, một khung tác nhân AI dựa trên Ruby, chứng minh sức mạnh và hiệu quả của Gemini API bằng cách tích hợp các mô hình 1.5 của chúng tôi vào sản phẩm cốt lõi dành cho nhà phát triển cũng như trong các quy trình công việc có tích hợp công cụ của riêng họ.
Cập nhật tài liệu của Sublayer bằng Gemini
Một trong những cơ hội mà AI mang lại cho nhà phát triển là giúp các nhóm làm được nhiều việc hơn mà không tốn nhiều công sức, đặc biệt là trong các công ty khởi nghiệp nhỏ ở giai đoạn đầu. Đối với nhiều người, tài liệu chính là vấn đề tuy đơn giản nhưng tối quan trọng. Trong quy trình công việc của riêng mình, Sublayer giải quyết vấn đề này bằng cách tích hợp thư viện của họ với Gemini 1.5 Pro và xây dựng các quy trình tự động hoá bằng AI để hỗ trợ việc cập nhật tài liệu và xác định các điểm cần cải thiện.
"Tất cả là nhờ cửa sổ ngữ cảnh khổng lồ của Gemini, giúp bạn có đủ không gian để thử nghiệm những ý tưởng mới mà không bị sa lầy vào các quy trình triển khai phức tạp, được tối ưu hoá ngay từ đầu",
Quy trình này diễn ra như sau:
Bất cứ khi nào một PR được hợp nhất vào kho lưu trữ Sublayer chính, PR đó sẽ kích hoạt một tác nhân bắt đầu cập nhật tài liệu.
Tác nhân đó sẽ tạo một câu lệnh chứa toàn bộ nội dung của thư viện, toàn bộ nội dung của tài liệu và tất cả nội dung liên quan của PR cùng với hướng dẫn giải thích nhiệm vụ và gửi câu lệnh đó đến Gemini.
Sau đó, Gemini sẽ phản hồi bằng dữ liệu đầu ra có cấu trúc chứa đường dẫn, tên và nội dung tệp để thư viện Sublayer chuyển đổi thành một đối tượng để sử dụng.
Cuối cùng, tác nhân đó sẽ lấy thông tin có cấu trúc mà mình nhận được và sử dụng thông tin đó để tạo một nhánh mới, thực hiện các thay đổi được yêu cầu đối với các tệp và gửi một PR mới.
# Get the diff from the PR
diff = GithubGetDiffAction.new(repo: repo, pr_number: pr_number).call
# Get the contents of the library repository and docs repository
code_context = GetContextAction.new(path: code_repo_path).call
doc_context = GetContextAction.new(path: doc_repo_path).call
# Use Gemini 1.5 Pro to decide whether this PR requires a documentation update
result = DocUpdateNecessityGenerator.new(
code_context: code_context,
doc_context: doc_context,
diff: diff
).generate
# Use Gemini 1.5 Pro to generate suggested changes to the documentation
doc_update_suggestions = DocUpdateSuggestionGenerator.new(
code_context: code_context,
doc_context: doc_context,
context_ignore_list: context_ignore_list,
diff: diff
).generate
# Use Gemini 1.5 Pro to generate the changes to the suggested files
file_updates = DocUpdateGenerator.new(
code_context: code_context,
suggestions: suggestions,
doc_context: doc_context,
context_ignore_list: context_ignore_list
).generate
# Update each of the files returned by Gemini 1.5 Pro and create a new PR
Xem mã quy trình công việc hoàn chỉnh trong các ví dụ mã nguồn mở của Sublayer
Sau thành công của dự án đầu tiên này, họ đã mở rộng hơn nữa sang những tác nhân giúp giám sát các kho lưu trữ tài nguyên riêng biệt để tập trung vào việc cập nhật một trang danh mục cụ thể trong tài liệu của họ. Thậm chí, còn có một tác vụ tương tự chạy qua đêm, trong đó Gemini phân tích tài liệu hiện tại, xác định một số điểm cần cải thiện, xếp hạng các điểm đó dựa trên mức độ tác động và tạo một yêu cầu kéo duy nhất để nhóm Sublayer xem xét vào mỗi buổi sáng.
Mang AI đến với cộng đồng nhà phát triển Ruby qua các mô hình Gemini
Ngoài việc nâng cao hiệu quả cho cơ sở hạ tầng và công cụ dành cho nhà phát triển của riêng mình, Sublayer còn hỗ trợ các mô hình Gemini trong chức năng sản phẩm cốt lõi của họ.
Sứ mệnh của Sublayer là giúp các nhà phát triển cá nhân và nhóm nhỏ thực hiện những dự án đầy tham vọng mà trước đây họ không thể thực hiện do chi phí hoặc độ phức tạp. Họ tập trung vào việc tự động hoá các công việc tẻ nhạt, tốn thời gian và lặp đi lặp lại – trường hợp sử dụng hoàn hảo cho AI. Việc này có thể bao gồm từ việc di chuyển mã trên quy mô lớn (trong đó các thao tác tương tự cần được lặp lại hàng nghìn lần) cho đến hoàn thành công việc hiệu quả hằng ngày bằng cách tự động hoá những việc nhỏ trong danh sách kiểm tra, vốn tiêu tốn thời gian và năng lượng.
Thách thức chính đối với Sublayer là hỗ trợ cộng đồng nhà phát triển Ruby vì đây là cộng đồng tương đối ít được quan tâm trong hệ sinh thái AI. Việc tích hợp Gemini giúp họ đáp ứng nhu cầu ngày càng tăng về việc hỗ trợ Gemini trong các công cụ của họ. Việc triển khai Gemini của Sublayer rất hiệu quả, chỉ cần khoảng 60 dòng mã nhờ lớp trừu tượng của họ. Các công cụ này sử dụng dữ liệu đầu ra có cấu trúc, tương tác với các mô hình trong một quy trình lặp đi lặp lại một lượt. Phương pháp này giúp đơn giản hoá quá trình phát triển và gỡ lỗi, đồng thời giúp nhà phát triển xây dựng các ứng dụng mạnh mẽ.
Werner khuyên: "Khi xây dựng các ứng dụng dựa trên LLM, hãy chia vấn đề thành những phần nhỏ nhất có thể". "Bạn cần thiết kế các chương trình để xử lý hiệu quả mọi kết quả đầu ra của mô hình, thậm chí có thể cố ý thêm các bước để giúp người dùng xem xét và chỉnh sửa trước khi tiếp tục."
LLM, một phần cốt lõi của cơ sở hạ tầng AI
Đối với Sublayer, các LLM như Gemini là những thành phần thiết yếu của cơ sở hạ tầng, tương tự như cơ sở dữ liệu. Khung này được thiết kế để tích hợp liền mạch các lệnh gọi đến cả Gemini 1.5 Pro và Gemini 1.5 Flash, truy xuất dữ liệu có cấu trúc mà nhà phát triển có thể dễ dàng sử dụng trong các ứng dụng của họ. Phương pháp này mở ra vô vàn khả năng, từ việc trích xuất thông tin chi tiết từ nhiều nguồn dữ liệu cho đến việc tạo mã và chuyển đổi cơ sở mã trên nhiều ngôn ngữ và thư viện. Sublayer thậm chí còn sử dụng các mô hình Gemini để cho phép người dùng tạo các thành phần chức năng mới trong chính khung này. Đặc điểm "tự lắp ráp" này khuyến khích tinh thần thử nghiệm và cho phép người dùng khám phá nhanh chóng những ý tưởng mới.
"Gemini rất giỏi giải quyết mọi vấn đề mà khung của chúng tôi được thiết kế để giúp bạn dễ dàng thực hiện – tạo mã, phân tách tác vụ, làm theo hướng dẫn và tạo cấu trúc dữ liệu mới dựa trên ví dụ"
Bước tiếp theo
Trong tương lai, Sublayer đang chuẩn bị ra mắt Augmentations.ai, một nền tảng cung cấp các tính năng tự động hoá mà họ đang xây dựng cho tất cả các nhóm phát triển. Bản phát hành ban đầu của họ sẽ có 2 công cụ dựa trên Gemini 1.5 Pro: công cụ Tìm lỗi ngữ nghĩa, cho phép các nhóm tạo ra các quy tắc đánh giá mã dựa trên AI, hiểu rõ bối cảnh và thực thi các phương pháp hay nhất đang ngày càng phát triển, và công cụ Tóm tắt hằng tuần, giúp chuyển hoạt động phát triển trên nhiều kho lưu trữ và công cụ quản lý sản phẩm thành thông tin chi tiết hữu ích cho ban lãnh đạo.
Họ dự định tiếp tục sử dụng kết hợp Gemini 1.5 Pro cho các tác vụ phức tạp và Gemini 1.5 Flash cho những chức năng cần chú ý độ trễ và dành cho người dùng khi họ phát hành thêm các công cụ trên nền tảng Augmentations. Công việc này cũng sẽ được đưa vào khuôn khổ nguồn mở của họ, cho phép cộng đồng Ruby tận dụng chức năng mới của Gemini khi chức năng này ra mắt, đồng thời được thúc đẩy nhờ hoạt động sử dụng thực tế của nhóm Sublayer.
Câu chuyện của Sublayer cho thấy tiềm năng cải tiến của Gemini API. Đây là minh chứng cho thấy nhà phát triển có thể dễ dàng tích hợp Gemini vào quy trình công việc của họ, mở ra vô vàn cơ hội đổi mới và tự động hoá. Để bắt đầu xây dựng bằng các mô hình Gemini, hãy đọc tài liệu về API của chúng tôi.