GitHub Copilot kullanıcı istemi işlem akışı
Bu ünitede GitHub Copilot'un istemlerinizi akıllı ve kullanılabilir koda nasıl dönüştürüyor olduğunu açıklayacağız. GitHub Copilot genellikle istemler alır ve veri akışında kod önerileri veya yanıtları döndürür. Bu işlem bir gelen ve giden akış önerir.
Gelen akış:
Şimdi Copilot'un kullanıcının istemini kod önerisine işlemek için uyguladığı tüm adımları inceleyelim.
1. Güvenli istem iletimi ve bağlam toplama
İşlem, kullanıcı isteminin HTTPS üzerinden güvenli bir şekilde iletilmesiyle başlar. Bu, doğal dil açıklamanızın GitHub Copilot sunucularına güvenli ve gizli bir şekilde gönderilmesini sağlar ve hassas bilgileri korur.
GitHub Copilot, copilot sohbeti veya kodunuz içinde sağladığınız doğal dil açıklaması olabilecek kullanıcı istemini güvenli bir şekilde alır.
Copilot aynı anda bağlam ayrıntılarını toplar:
- İmleç konumundan önceki ve sonraki kod, istemin hemen bağlamını anlamasına yardımcı olur.
- Düzenlenen dosyanın dosya adı ve türü, kod önerilerini belirli bir dosya türüne göre uyarlamasına olanak sağlar.
- Oluşturulan kodun aynı projedeki diğer kod kesimleriyle uyumlu olmasını sağlayan bitişik açık sekmeler hakkında bilgi.
- Proje yapısı ve dosya yolları hakkında bilgi
- Programlama dilleri ve çerçeveleri hakkında bilgi
- Hem önceki hem de takip eden kod bağlamını dikkate almak için Ortadaki Doldurma (FIM) tekniğini kullanarak ön işleme, modelin anlayışını etkili bir şekilde genişleterek, Copilot'un daha geniş bir bağlamdan yararlanarak daha doğru ve ilgili kod önerileri oluşturmasına olanak sağlar.
Bu adımlar kullanıcının üst düzey isteğini somut bir kodlama görevine çevirir.
2. Ara sunucu filtresi
Bağlam toplandıktan ve istem oluşturulduktan sonra GitHub'a ait Microsoft Azure kiracısında barındırılan bir ara sunucuya güvenli bir şekilde geçer. Ara sunucu trafiği filtreler, engelleme, modelin kod önerilerini nasıl oluşturduğuna ilişkin ayrıntıları ortaya çıkarmak için istemi ele geçirme veya sistemi işleme girişimlerini engeller.
3. Toksisite filtreleme
Copilot, oluşturulan kod ve yanıtların şunları içermediğinden veya yükseltmediğinden emin olmak için amaç ayıklama ve kod oluşturma işlemlerine devam etmeden önce içerik filtreleme mekanizmaları içerir:
- Nefret söylemi ve uygunsuz içerik: Copilot, nefret söylemi, rahatsız edici dil veya zararlı veya rahatsız edici olabilecek uygunsuz içerikleri algılamak ve önlemek için algoritmalar kullanır.
- Kişisel veriler: Copilot, kullanıcı gizliliğini ve veri güvenliğini korumak için adlar, adresler veya kimlik numaraları gibi tüm kişisel verileri etkin bir şekilde filtreler.
4. LLM ile kod oluşturma
Son olarak, filtrelenmiş ve analiz edilen istem, uygun kod önerileri oluşturan LLM Modellerine geçirilir. Bu öneriler Copilot'un istemi ve çevresindeki bağlamı anlayarak oluşturulan kodun ilgili, işlevsel ve projeye özgü gereksinimlerle uyumlu olmasını sağlar.
Giden Akış:
5. İşlem sonrası ve yanıt doğrulama
Model yanıtlarını oluşturduktan sonra toksisite filtresi, zararlı veya rahatsız edici olarak oluşturulan içeriği kaldırır. Ardından ara sunucu, kod kalitesini, güvenliği ve etik standartları güvence altına almak için son bir denetim katmanı uygular. Bu denetimler şunlardır:
- Kod kalitesi: Yanıtlar siteler arası betik (XSS) veya SQL ekleme gibi yaygın hatalar veya güvenlik açıkları açısından denetlenerek oluşturulan kodun sağlam ve güvenli olduğundan emin olur.
- Eşleşen ortak kod (isteğe bağlı): İsteğe bağlı olarak, yöneticiler Copilot'un GitHub'da mevcut genel koda çok benzerse yaklaşık 150 karakterden fazla öneri döndürmesini engelleyen bir filtreyi etkinleştirebilir. Bu, tesadüfi eşleşmelerin özgün içerik olarak önerilmesini önler. Yanıtın herhangi bir bölümü bu denetimleri başarısız olursa kesilir veya atılır.
6. Öneri teslimi ve geri bildirim döngüsü başlatma
Yalnızca tüm filtreleri geçiren yanıtlar kullanıcıya teslim edilir. Ardından Copilot, aşağıdakileri başarmak için eylemlerinize dayalı bir geri bildirim döngüsü başlatır:
- Kabul edilen önerilerden bilgisini büyütün.
- Değişiklik ve önerilerini reddederek öğrenin ve geliştirin.
7. Sonraki istemler için yineleyin
Copilot'un kullanıcı isteklerini sürekli işlemesi, amacını anlayıp yanıt olarak kod oluşturması ile daha fazla istem sağladığınızda işlem yinelenir. Copilot, kullanıcı amacının anlaşılmasını geliştirmek ve kod oluşturma özelliklerini geliştirmek için zaman içinde bağlam ayrıntıları da dahil olmak üzere toplu geri bildirim ve etkileşim verilerini uygular.