Dòng quy trình nhắc nhắc người dùng GitHub Copilot

Đã hoàn thành

Trong đơn vị này, chúng tôi sẽ phân tích cách GitHub Copilot chuyển lời nhắc của bạn thành mã thông minh, có thể sử dụng. Thông thường, GitHub Copilot nhận được lời nhắc và trả về các đề xuất mã hoặc phản hồi trong dòng dữ liệu của nó. Quy trình này gợi ý dòng đến và đi.

Dòng đến:

minh họa dòng đến GitHub Copilot.

Chúng ta hãy xem qua tất cả các bước mà Copilot thực hiện để xử lý lời nhắc của người dùng thành đề xuất mã.

1. Thu thập ngữ cảnh và truyền dấu nhắc an toàn

Quá trình này bắt đầu với việc truyền an toàn lời nhắc người dùng qua HTTPS. Điều này đảm bảo rằng bình luận ngôn ngữ tự nhiên của bạn được gửi đến các máy chủ của GitHub Copilot một cách an toàn và bảo mật, bảo vệ thông tin nhạy cảm.

GitHub Copilot nhận được lời nhắc người dùng một cách an toàn, có thể là một cuộc trò chuyện Copilot hoặc một bình luận ngôn ngữ tự nhiên được cung cấp bởi bạn trong mã của bạn.

Đồng thời, Copilot thu thập chi tiết ngữ cảnh:

  • Mã trước và sau vị trí con trỏ, giúp nó hiểu được ngữ cảnh ngay lập tức của lời nhắc.
  • Tên tệp và loại tệp đang được chỉnh sửa, cho phép nó điều chỉnh các đề xuất mã cho loại tệp cụ thể.
  • Thông tin về các tab mở liền kề, đảm bảo rằng mã được tạo phù hợp với các phân đoạn mã khác trong cùng một dự án.
  • Thông tin về cấu trúc dự án và đường dẫn tệp
  • Thông tin về ngôn ngữ lập trình và khuôn khổ
  • Xử lý trước bằng cách sử dụng kỹ thuật Điền vào Giữa (FIM) để xem xét cả ngữ cảnh mã trước và sau, mở rộng hiệu quả hiểu biết của mô hình cho phép Copilot tạo đề xuất mã chính xác và liên quan hơn bằng cách tận dụng ngữ cảnh rộng hơn.

Các bước này sẽ chuyển yêu cầu cấp cao của người dùng thành tác vụ mã hóa cụ thể.

2. Bộ lọc proxy

Sau khi ngữ cảnh được thu thập và lời nhắc được xây dựng, nó sẽ chuyển an toàn đến một máy chủ proxy được lưu trữ trong đối tượng thuê Microsoft Azure thuộc sở hữu của GitHub. Proxy lọc lưu lượng truy cập, chặn các nỗ lực hack lời nhắc hoặc thao tác với hệ thống để hiển thị chi tiết về cách mô hình tạo đề xuất mã.

3. Lọc độc tính

Copilot kết hợp các cơ chế lọc nội dung trước khi tiến hành trích xuất mục đích và tạo mã, để đảm bảo rằng mã được tạo và phản hồi không bao gồm hoặc tăng cấp:

  • Lời nói ghét và nội dung không phù hợp: Copilot sử dụng thuật toán để phát hiện và ngăn chặn lượng lời nói ghét, ngôn ngữ xúc phạm hoặc nội dung không phù hợp có thể gây hại hoặc gây phản cảm.
  • liệu Cá nhân: Copilot tích cực lọc mọi dữ liệu cá nhân, chẳng hạn như tên, địa chỉ hoặc số định danh, để bảo vệ quyền riêng tư và bảo mật dữ liệu của người dùng.

4. Tạo mã với LLM

Cuối cùng, lời nhắc được lọc và phân tích được chuyển đến Mô hình LLM, tạo ra các đề xuất mã thích hợp. Những đề xuất này dựa trên sự hiểu biết của Copilot về lời nhắc và ngữ cảnh xung quanh, đảm bảo rằng mã được tạo ra có liên quan, chức năng và phù hợp với các yêu cầu cụ thể của dự án.

Dòng Đi:

minh họa dòng đi GitHub Copilot.

5. Xác thực sau khi xử lý và phản hồi

Một khi mô hình sản xuất các phản ứng của nó, bộ lọc độc tính loại bỏ bất kỳ nội dung gây hại hoặc nội dung xúc phạm tạo ra. Sau đó, máy chủ proxy sẽ áp dụng một lớp kiểm tra cuối cùng để đảm bảo chất lượng mã, bảo mật và các tiêu chuẩn đạo đức. Các kiểm tra này bao gồm:

  • mã chất lượng: Phản hồi được kiểm tra các lỗi hoặc lỗ hổng phổ biến, chẳng hạn như tập lệnh chéo trang (XSS) hoặc tiêm SQL, đảm bảo rằng mã được tạo là mạnh mẽ và bảo mật.
  • Khớp mã công cộng (tùy chọn): Hoặc, người quản trị có thể bật bộ lọc ngăn Copilot trả về đề xuất hơn ~150 ký tự nếu chúng gần giống với mã công cộng hiện có trên GitHub. Điều này ngăn trùng khớp trùng khớp được đề xuất là nội dung gốc. Nếu bất kỳ phần nào của phản hồi không thực hiện được những kiểm tra này, thì nó bị cắt bớt hoặc bị loại bỏ.

6. Đề xuất cung cấp và khởi tạo vòng lặp phản hồi

Chỉ những phản hồi vượt qua tất cả các bộ lọc mới được gửi đến người dùng. Sau đó, Copilot sẽ khởi tạo vòng lặp phản hồi dựa trên hành động của bạn để đạt được những điều sau:

  • Phát triển kiến thức từ các đề xuất được chấp nhận.
  • Tìm hiểu và cải thiện thông qua sửa đổi và từ chối các đề xuất của nó.

7. Lặp lại cho các lời nhắc tiếp theo

Quy trình này được lặp lại khi bạn cung cấp nhiều lời nhắc hơn, với Copilot liên tục xử lý các yêu cầu người dùng, hiểu mục đích của họ và tạo mã để phản hồi. Theo thời gian, Copilot sẽ áp dụng dữ liệu tương tác và phản hồi tích lũy, bao gồm các chi tiết ngữ cảnh, để cải thiện hiểu biết về mục đích của người dùng và tinh chỉnh khả năng tạo mã của mình.