GitHub Copilot-data

Slutförd

I den här lektionen går vi igenom hur GitHub Copilot hanterar data för olika miljöer, funktioner och konfigurationer.

Datahantering för GitHub Copilot-kodförslag

GitHub Copilot i kodredigeraren behåller inte några promptar, som kod eller annan kontext, som används för att ge förslag för att träna de grundläggande modellerna. Prompterna kasseras när ett förslag returneras.

GitHub Copilot Individual-prenumeranter kan välja bort att dela sina prompter med GitHub, som annars kommer att användas för att finjustera GitHubs grundläggande modell.

Datahantering för GitHub Copilot-chatt

GitHub Copilot Chat fungerar som en interaktiv plattform så att utvecklare kan delta i konversationsinteraktioner med AI-assistenten för att få kodningshjälp. Här följer de steg som den utför som kan skilja sig från andra funktioner som kodkomplettering:

  • Formatering: Copilot formaterar noggrant det genererade svaret för optimal presentation i chattgränssnittet. Den markerar kodfragment för att förbättra läsbarheten och kan innehålla alternativ för direkt integrering i din kod. Copilot visar det formaterade svaret i Copilot Chat-fönstret i IDE:n, så att du enkelt kan granska och interagera med den angivna informationen.
  • Användarengagemang: Du kan aktivt engagera dig i svaret genom att ställa uppföljningsfrågor, begära förtydliganden eller ange ytterligare indata. Chattgränssnittet upprätthåller en konversationshistorik för att underlätta kontextuell förståelse i efterföljande interaktioner.
  • Datalagring: För Copilot Chat i kodredigeraren och Copilot CLI lagrar GitHub som standard inte prompter och förslag. För Copilot i GitHub och Copilot i GitHub Mobile behålls de som standard i upp till 28 dagar.

Note

Det här är standardinställningarna för Copilot Business och Copilot Enterprise. Mer information finns i GitHub Copilot Trust Center.

Prompttyper som stöds av GitHub Copilot Chat

GitHub Copilot Chat bearbetar en mängd olika kodningsrelaterade frågor, vilket visar dess mångsidighet som en konversationskodningsassistent. Här är några vanliga indatatyper:

  • Direkta frågor: Du kan ställa specifika frågor om programmeringsbegrepp, bibliotek eller felsökningsproblem. Till exempel "Hur gör jag för att implementera en snabbsorteringsalgoritm i Python?" eller "Varför renderas inte min React-komponent?"
  • Kodrelaterade begäranden: Du kan begära kodgenerering, ändring eller förklaring. Exempel är "Skriv en funktion för att beräkna factorial", "Åtgärda det här felet i min kod" eller "Förklara det här kodfragmentet".
  • Öppna frågor: Du kan utforska kodningsbegrepp eller söka allmän vägledning genom att ställa öppna frågor som "Vad är bästa praxis för att skriva ren kod?" eller "Hur kan jag förbättra prestandan för mitt Python-program?"
  • Kontextuella promptar: Du kan ange kodfragment eller beskriva specifika kodningsscenarier för att söka skräddarsydd hjälp. Till exempel "Här är en del av min kod, kan du föreslå förbättringar?" eller "Jag skapar ett webbprogram, kan du hjälpa mig med autentiseringsflödet?"

Copilot Chats förmåga att bearbeta olika indatatyper ökar dess användbarhet som en heltäckande kodningsassistent.

Begränsade kontextfönster

Bild av GitHub Copilot-kontextfönstret.

GitHub Copilot Chat utmärker sig för att förstå och svara på promptar, men det är viktigt att erkänna begränsningen av kontextfönster. Detta refererar till mängden omgivande kod och text som modellen kan bearbeta samtidigt för att generera förslag. GitHub Copilots kontextfönster sträcker sig vanligtvis från cirka 200–500 kodrader eller upp till några tusen token. Den här begränsningen kan variera beroende på vilken implementering och version av Copilot som används.

Copilot Chat fungerar för närvarande med ett kontextfönster med 4k-token, vilket ger ett bredare omfång för att förstå och svara på användarfrågor jämfört med standard-Copilot.

Trots dessa framsteg bör du tänka på begränsningar för kontextfönster när du skapar promptar. Att dela upp komplexa problem i mindre, mer fokuserade frågor eller tillhandahålla relevanta kodfragment kan avsevärt förbättra modellens förmåga att tillhandahålla korrekta och användbara svar.