Sử dụng tính năng tuỳ chỉnh mã của Gemini Code Assist

Tài liệu này mô tả cách sử dụng tính năng tuỳ chỉnh mã của Gemini Code Assist và đưa ra một số phương pháp hay nhất. Tính năng này cho phép bạn nhận các đề xuất về mã, được lấy từ các thư viện nội bộ, API riêng tư và kiểu mã hoá của tổ chức.

Trước khi bắt đầu

  1. Thiết lập Gemini Code Assist bằng gói thuê bao Enterprise.
  2. Thiết lập chế độ tuỳ chỉnh mã của Gemini Code Assist.

Cách sử dụng tính năng tuỳ chỉnh mã

Bảng sau đây liệt kê các cách sử dụng tính năng tuỳ chỉnh mã của Gemini Code Assist:

Biểu mẫu Cách kích hoạt Lưu ý và tài nguyên

Trò chuyện bằng ngôn ngữ tự nhiên

Nhập câu lệnh bằng ngôn ngữ tự nhiên vào cuộc trò chuyện Gemini Code Assist trong IDE.

Hãy cân nhắc thực hiện những bước sau:

  • Không có nhật ký trò chuyện. Tránh các cụm từ tìm kiếm có nhiều bước.
  • Bạn có thể yêu cầu biết thêm thông tin chi tiết về các nguồn, bao gồm cả đường liên kết đến các nguồn cụ thể.
  • Nếu bạn làm nổi bật hoặc chọn mã khi gửi tin nhắn trong cuộc trò chuyện, Gemini Code Assist sẽ sử dụng mã đó để cải thiện khả năng tuỳ chỉnh mã và chất lượng cuộc trò chuyện.

Để biết thêm thông tin, hãy xem bài viết Trò chuyện với Gemini Code Assist.

Tạo mã Trong thanh chọn nhanh của IDE, dù có hay không có mã đã chọn, hãy nhấn tổ hợp phím Command+Enter (trên macOS) hoặc Control+Enter. Để biết thêm thông tin, hãy xem phần Tạo mã bằng câu lệnh.
Mã biến đổi Trong thanh chọn nhanh của IDE, dù có hay không có mã đã chọn, hãy nhập /fix. Để biết thêm thông tin, hãy xem phần Tạo mã bằng câu lệnh.
Tự động hoàn thành Chế độ tuỳ chỉnh mã sẽ tự động kích hoạt và đưa ra các đề xuất dựa trên nội dung bạn viết.

Hãy cân nhắc thực hiện những bước sau:

  • Tính năng hoàn tất mã cần có một mức độ tin cậy nhất định để đề xuất. Đảm bảo có một lượng mã đáng kể để truy xuất các đoạn mã có liên quan.
  • Tính năng hoàn thành mã sẽ kiểm tra xem bạn có các thư viện bắt buộc để sử dụng một số phần tử của hàm hay không.

Để biết thêm thông tin, hãy xem phần Nhận các đề xuất hoàn tất mã.

Ngữ cảnh kho lưu trữ từ xa
  1. Bắt đầu câu lệnh bằng biểu tượng @. Một danh sách các kho lưu trữ từ xa hiện có đã được lập chỉ mục sẽ xuất hiện.
  2. Chọn kho lưu trữ bạn muốn dùng cho ngữ cảnh trong danh sách. Bạn cũng có thể bắt đầu nhập tên kho lưu trữ để lọc danh sách.
  3. Sau khi chọn kho lưu trữ, hãy viết phần còn lại của câu lệnh.

Hãy cân nhắc thực hiện những bước sau:

  • Điều này hữu ích khi bạn đang thực hiện một tác vụ chủ yếu liên quan đến một nhóm vi dịch vụ, thư viện hoặc mô-đun cụ thể.

Để biết thêm thông tin, hãy xem phần Nhận các đề xuất phù hợp hơn nhờ ngữ cảnh kho lưu trữ từ xa.

Các trường hợp sử dụng và ví dụ về câu lệnh

Bảng sau đây cung cấp hướng dẫn và ví dụ về cách sử dụng tính năng tuỳ chỉnh mã trong các trường hợp sử dụng cụ thể:

Trường hợp sử dụng Những điều đáng thử
Viết mã mới

Hãy thử làm như sau để tạo mã trong IDE hoặc cuộc trò chuyện Gemini Code Assist:

  • Tạo mã sẽ sử dụng các thuật ngữ đã được đề cập trong cơ sở mã của bạn.
  • Dán mã của bạn, chẳng hạn như chữ ký hàm hoặc mã có chú thích TODO, rồi yêu cầu Gemini Code Assist điền hoặc thay thế chú thích TODO bằng mã. Thêm nhận xét kèm theo nội dung giải thích từ ngữ cảnh.

Hãy thử tạo mã bằng các câu lệnh sau trong cuộc trò chuyện với Gemini Code Assist:

  • "Viết một hàm chính để tạo kết nối đến DATABASE. Bao gồm các quy trình kiểm tra tình trạng."
  • "Viết một FUNCTION_OR_CLASS theo cấu trúc sau: EXPLAIN_STRUCTURE."

Sau khi bạn tạo một số mã, hãy thử dùng câu lệnh tiếp theo để cải thiện mã đó:

  • "Hãy thử lệnh /fix để điều chỉnh mã được tạo, chẳng hạn như lỗi cú pháp."
  • "Thêm các câu lệnh nhập còn thiếu".
  • "Thử /fix trên mã do Chat tạo."
Dọn dẹp, đơn giản hoá và tái cấu trúc mã

Hãy thử các câu lệnh sau trong cuộc trò chuyện với Gemini Code Assist:

  • "Bạn có thể hợp nhất IMPORTS_VARIABLES_OR_NOTE_EXPORTED_FUNCTIONS trong tệp này không?"
  • "Bạn sẽ đơn giản hoá hàm FUNCTION_NAME như thế nào?"
  • "Bạn có thể hợp nhất FUNCTION_NAME_1FUNCTION_NAME_2 thành một hàm không?"
  • "Bạn có thể nội tuyến một số biến trong FUNCTION_NAME không?"
  • "Bạn có thể đơn giản hoá việc đặt tên biến trong hàm FUNCTION_NAME không?"
Tính dễ đọc

Hãy thử các câu lệnh sau trong cuộc trò chuyện với Gemini Code Assist:

  • "Viết hàm FUNCTION_NAME bằng ít dòng mã hơn nếu có thể."
  • "Thêm nhận xét vào hàm FUNCTION_NAME."
  • "Xoá khoảng trắng không cần thiết trong hàm FUNCTION_NAME."
  • "Định dạng hàm FUNCTION_NAME theo cách tương tự như phần còn lại của mã."
Đánh giá mã

Hãy thử các câu lệnh sau trong cuộc trò chuyện với Gemini Code Assist:

  • "Chia mã thành nhiều phần và giải thích từng phần bằng cơ sở mã của chúng tôi."
  • "Có biến hoặc từ khoá nào có thể ngắn gọn và dễ hiểu hơn không?"
  • "Bạn có thể cung cấp cho tôi mã hữu ích từ ngữ cảnh REPOSITORY_NAME_PACKAGE_MODULE cho mã này không?"
  • "Bạn nghĩ gì về chức năng FUNCTION_NAME?"
Gỡ lỗi

Hãy thử các câu lệnh sau trong cuộc trò chuyện với Gemini Code Assist:

  • "Tôi gặp lỗi khi cố gắng thực hiện X/thêm Y. Vì sao?"
  • "Bạn có thể phát hiện lỗi trong hàm FUNCTION_NAME không?"
  • "Bạn sẽ sửa hàm FUNCTION_NAME như thế nào khi gặp thông báo lỗi này?"
Học tập và hướng dẫn làm quen

Hãy thử các câu lệnh sau trong cuộc trò chuyện với Gemini Code Assist:

  • "Chia đoạn mã này thành nhiều phần và giải thích từng phần bằng cách sử dụng cơ sở mã của chúng tôi."
  • "Cho biết cách gọi hàm FUNCTION_NAME?"
  • "Hướng dẫn cách chạy hàm chính trong môi trường ENVIRONMENT_NAME?"
  • "Chúng ta có thể thực hiện những cải tiến kỹ thuật nào để giúp mã này hoạt động hiệu quả hơn?"
  • "Show me the implementation of FUNCTION_OR_CLASS_NAME to achieve better results and add what that specific element is" (Cho tôi xem cách triển khai FUNCTION_OR_CLASS_NAME để đạt được kết quả tốt hơn và thêm những gì mà phần tử cụ thể đó có) – ví dụ: "Show me the implementation of function foo where foo is the name of the function" (Cho tôi xem cách triển khai hàm foo, trong đó foo là tên của hàm).
Di chuyển

Hãy thử các câu lệnh sau trong cuộc trò chuyện với Gemini Code Assist:

  • "Hãy cho tôi biết chiến lược để di chuyển FILE_NAME từ LANGUAGE_1 sang LANGUAGE_2" – ví dụ: từ Go sang Python.
  • "Cho hàm FUNCTION_NAME trong kho lưu trữ REPOSITORY_NAME, hãy tìm cho tôi một hàm tương đương bằng ngôn ngữ LANGUAGE_NAME mà tôi có thể sử dụng."

Hãy thử quy trình chuyển đổi dựa trên cuộc trò chuyện hoặc tạo mã sau đây bằng cách sử dụng câu lệnh:

  1. "Lấy mã FILENAME_COMPONENT đã viết trong LANGUAGE_1, sau đó tái cấu trúc và di chuyển mã đó sang LANGUAGE_2" – ví dụ: từ Go sang Python.
  2. Sau khi bạn di chuyển một số mã, hãy thử làm như sau:
    • Chọn các phần nhỏ hơn và dùng /fix để đưa phần đó vào trạng thái bạn muốn.
    • Hãy thử các câu lệnh sau:
      • "Có điều gì cần cải thiện không?"
      • "Đưa ra những điểm khó khăn có thể gặp phải."
      • "Bạn sẽ kiểm thử mã này như thế nào nếu quá trình di chuyển đó diễn ra chính xác?"
Tạo tài liệu

Hãy thử các câu lệnh sau trong cuộc trò chuyện với Gemini Code Assist:

  • "Tóm tắt mã trong gói hoặc thư mục X và cung cấp tài liệu cho 5 phương thức quan trọng nhất."
  • "Tạo tài liệu cho FUNCTION_OR_CLASS_NAME."
  • "Rút ngắn tài liệu mà vẫn giữ nguyên thông tin chính."
Tạo kiểm thử đơn vị

Hãy thử các câu lệnh sau trong cuộc trò chuyện với Gemini Code Assist:

  • "Tạo kiểm thử đơn vị cho FILENAME."
  • "Thêm các trường hợp kiểm thử phù hợp nhất cho hàm FUNCTION_NAME."
  • "Xoá những trường hợp kiểm thử mà bạn cho rằng không mang lại nhiều giá trị."

Các phương pháp hay nhất

  • Sử dụng tên biến và tên hàm hoặc đoạn mã có liên quan. Điều này hướng dẫn việc tuỳ chỉnh mã theo các ví dụ về mã phù hợp nhất.
  • Sử dụng các kho lưu trữ chỉ mục mà bạn muốn mở rộng quy mô và tránh thêm chức năng không dùng nữa. Tuỳ chỉnh mã giúp mở rộng quy mô cho kiểu mã, mẫu, ngữ nghĩa mã, kiến thức và việc triển khai trên toàn bộ cơ sở mã. Các ví dụ không tốt về kho lưu trữ để mở rộng quy mô là các chức năng không dùng nữa, mã được tạo và các cách triển khai cũ.
  • Đối với các trường hợp sử dụng truy xuất mã, hãy sử dụng chức năng tạo mã thay vì chức năng hoàn thành mã. Sử dụng ngôn ngữ như "Dựa vào định nghĩa của FUNCTION_NAME, hãy tạo chính xác hàm đó" hoặc "Tạo chính xác hàm triển khai của FUNCTION_NAME".
  • Đưa các nội dung bao gồm hoặc nhập vào tệp cho mã mà bạn muốn truy xuất để cải thiện khả năng nhận biết ngữ cảnh của Gemini.
  • Chỉ thực hiện một hành động cho mỗi câu lệnh. Ví dụ: nếu bạn muốn truy xuất mã và triển khai mã này trong một hàm mới, hãy thực hiện các bước này qua hai câu lệnh.
  • Đối với những trường hợp sử dụng mà bạn muốn có nhiều thông tin hơn ngoài mã (chẳng hạn như giải thích mã, kế hoạch di chuyển hoặc giải thích lỗi), hãy sử dụng tính năng tuỳ chỉnh mã cho cuộc trò chuyện. Trong đó, bạn trò chuyện với Gemini trong ngữ cảnh cơ sở mã của mình.
  • Xin lưu ý rằng quá trình tạo mô hình AI là không xác định. Nếu không hài lòng với câu trả lời, bạn có thể thực hiện lại câu lệnh đó để có kết quả tốt hơn.
  • Xin lưu ý rằng việc tạo kiểm thử đơn vị thường hoạt động hiệu quả hơn nếu bạn mở tệp cục bộ, rồi từ cuộc trò chuyện, yêu cầu tạo kiểm thử đơn vị cho tệp này hoặc một hàm cụ thể.

Nhận các đề xuất phù hợp hơn nhờ ngữ cảnh kho lưu trữ từ xa

Bạn có thể nhận được các đề xuất mã phù hợp và có nhiều ngữ cảnh hơn bằng cách chỉ đạo Gemini Code Assist tập trung vào các kho lưu trữ từ xa cụ thể. Bằng cách sử dụng biểu tượng @ trong cuộc trò chuyện, bạn có thể chọn một hoặc nhiều kho lưu trữ để dùng làm nguồn ngữ cảnh chính cho câu lệnh. Điều này hữu ích khi bạn đang thực hiện một tác vụ chủ yếu liên quan đến một nhóm vi dịch vụ, thư viện hoặc mô-đun cụ thể.

Để sử dụng kho lưu trữ từ xa làm bối cảnh, hãy làm theo các bước sau trong cuộc trò chuyện của IDE:

  1. Bắt đầu câu lệnh bằng biểu tượng @. Một danh sách các kho lưu trữ từ xa có sẵn đã được lập chỉ mục sẽ xuất hiện.
  2. Chọn kho lưu trữ bạn muốn dùng cho ngữ cảnh trong danh sách. Bạn cũng có thể bắt đầu nhập tên kho lưu trữ để lọc danh sách.
  3. Sau khi chọn kho lưu trữ, hãy viết phần còn lại của câu lệnh.

Sau đó, Gemini sẽ ưu tiên kho lưu trữ đã chọn khi tạo câu trả lời.

Câu lệnh mẫu

Dưới đây là một số ví dụ về cách bạn có thể sử dụng tính năng này:

  • Cách tìm hiểu về một kho lưu trữ:
    • "@REPOSITORY_NAME Cấu trúc tổng thể của kho lưu trữ này là gì?"
    • "@REPOSITORY_NAME Tôi là thành viên mới của nhóm. Bạn có thể cho tôi biết thông tin tổng quan về mục đích và các mô-đun chính của kho lưu trữ này không?"
  • Đối với việc tạo và sửa đổi mã:
    • "@REPOSITORY_NAME Triển khai một hàm xác thực tương tự như hàm trong kho lưu trữ này."
    • "@REPOSITORY_NAME Tái cấu trúc mã sau để tuân theo các quy ước trong kho lưu trữ đã chọn."
    • "@REPOSITORY_A_NAME Làm cách nào để tôi sử dụng các chức năng mới nhất trong kho lưu trữ này để cải thiện mã của mình trong REPOSITORY_B_NAME?"
  • Để kiểm thử:
    • "@UNIT_TEST_FILE_NAME Tạo các bài kiểm thử đơn vị cho MODULE dựa trên các ví dụ trong tệp đã chọn."

Bằng cách sử dụng kho lưu trữ từ xa làm nguồn ngữ cảnh trọng tâm, bạn có thể nhận được các đề xuất chính xác và phù hợp hơn từ Gemini Code Assist. Nhờ đó, bạn có thể viết mã nhanh chóng và hiệu quả hơn.