Untersuchung der KI-Assistenzfunktionen von GitHub Copilot

Abgeschlossen

GitHub Copilot-Chat ist in die Visual Studio Code-Benutzeroberfläche integriert, um bei Bedarf Unterstützung bereitzustellen.

Hier sind einige Möglichkeiten, wie Sie in Visual Studio Code auf GitHub Copilot Chat-Features zugreifen können:

  • Öffnen Sie die Chatansicht für einen KI-Assistenten, der Ihnen jederzeit helfen kann.
  • Starten Sie eine Inlinechatunterhaltung direkt aus dem Editor, um Hilfe beim Programmieren zu erhalten.
  • Führen Sie intelligente Aktionen aus, um bestimmte Aufgaben auszuführen, ohne selbst einen Prompt schreiben zu müssen.
  • Öffnen Sie das Quick Chat-Fenster für eine schnelle, interaktive Unterhaltung mit der KI.

Anwendungsfälle für GitHub Copilot Chat

GitHub Copilot Chat bietet Unterstützung für die meisten Codierungsszenarien. In den folgenden Abschnitten werden einige dieser Szenarien beschrieben.

Erläutern und Dokumentieren von Code

Copilot Chat kann dabei helfen, ausgewählten Code zu erläutern, indem in natürlicher Sprache Beschreibungen der Funktionalität und des Zwecks des Codes generiert werden. Dies kann nützlich sein, wenn Sie das Verhalten des Codes verstehen möchten oder wenn technisch nicht versierte Projektbeteiligte nachvollziehen möchten, wie der Code funktioniert. Wenn Sie z. B. eine Funktion oder einen Codeblock im Code-Editor auswählen, kann Copilot Chat in natürlicher Sprache eine Beschreibung für das generieren, was der Code tut, und wie dies in das Gesamtsystem passt. Dies kann Informationen wie die Eingabe- und Ausgabeparameter der Funktion, ihre Abhängigkeiten und ihren Zweck in der größeren Anwendung umfassen.

Durch das Generieren von Erklärungen und Dokumentationen kann Copilot Chat Ihnen helfen, den ausgewählten Code zu verstehen, was zu einer verbesserten Zusammenarbeit und einer effektiverer Softwareentwicklung führt.

Beantworten von Programmierfragen

Sie können Copilot Chat um Hilfe oder Klärung spezifischer Codierungsprobleme bitten und erhalten Antworten in natürlicher Sprache oder als Codeschnipsel. Dies ist ein nützliches Tool für Programmierer, da es Anleitungen und Unterstützung für allgemeine Codierungsaufgaben und Herausforderungen bietet.

Vorschlagen von Fehlerbehebungen

Copilot Chat kann einen Fix für Fehler in Ihrem Code vorschlagen, indem Codeschnipsel und Lösungen basierend auf dem Kontext des Fehlers oder Problems vorgeschlagen werden. Dies ist hilfreich, wenn Sie Schwierigkeiten haben, die Grundursache eines Fehlers zu identifizieren, oder Anleitungen zur besten Lösung benötigen. Wenn Ihr Code beispielsweise eine Fehlermeldung oder Warnung erzeugt, kann Copilot Chat mögliche Korrekturen basierend auf der Fehlermeldung, der Syntax des Codes und dem umgebenden Code vorschlagen.

Copilot Chat kann Änderungen an Variablen, Steuerelementstrukturen oder Funktionsaufrufen vorschlagen, die das Problem möglicherweise beheben, und Codeschnipsel generieren, die in die Codebasis integriert werden können. Es ist jedoch wichtig zu wissen, dass die vorgeschlagenen Korrekturen möglicherweise nicht immer optimal oder vollständig sind. Du musst die Vorschläge also überprüfen und testen.

Generieren von Komponententestfällen

Copilot Chat kann Ihnen helfen, Komponententestfälle zu schreiben, indem Codeschnipsel basierend auf dem im Editor geöffneten Code oder dem Codeschnipsel generiert werden, den Sie im Editor hervorheben. Hiermit können Sie Testfälle schreiben, ohne so viel Zeit für sich wiederholende Aufgaben aufwenden zu müssen. Wenn Sie z. B. einen Testfall für eine bestimmte Funktion schreiben, können Sie Copilot Chat verwenden, um mögliche Eingabeparameter und erwartete Ausgabewerte basierend auf der Signatur und dem Text der Funktion vorzuschlagen. Copilot Chat kann auch Assertionen vorschlagen, die sicherstellen, dass die Funktion basierend auf dem Kontext und der Semantik des Codes ordnungsgemäß funktioniert.

Copilot Chat kann Ihnen auch beim Schreiben von Testfällen für Randfälle und Grenzbedingungen helfen, die möglicherweise schwer zu identifizieren sind. Beispielsweise kann Copilot Chat Testfälle für die Fehlerbehandlung, Nullwerte oder unerwartete Eingabetypen vorschlagen, um sicherzustellen, dass Ihr Code robust und resilient ist. Es ist jedoch wichtig zu beachten, dass generierte Testfälle möglicherweise nicht alle möglichen Szenarien abdecken und manuelle Tests und Codeüberprüfungen weiterhin erforderlich sind, um die Qualität des Codes sicherzustellen.

Vorschlagen von Verbesserungen an einer vorhandenen Codebasis

Copilot Chat kann auch potenzielle Verbesserungen an ausgewähltem Code vorschlagen. Copilot Chat kann beispielsweise Verbesserungen für die folgenden Kategorien vorschlagen:

  • Codequalität: Copilot Chat kann Möglichkeiten vorschlagen, um die Lesbarkeit, Verwaltbarkeit und Leistung Ihres Codes zu verbessern. Dies kann Vorschläge zum Refactoring, zur Vereinfachung von Code und zur Modularität umfassen.
  • Codezuverlässigkeit: Copilot Chat kann Möglichkeiten vorschlagen, Ihren Code robuster und zuverlässiger zu machen. Dies kann Vorschläge für die Fehlerbehandlung, Eingabeüberprüfung und defensive Programmierung umfassen.
  • Codeleistung: Copilot Chat kann Möglichkeiten vorschlagen, die Leistung Ihres Codes zu optimieren. Dies kann Vorschläge für algorithmische Verbesserungen, Datenstrukturoptimierungen und Parallelisierung umfassen.
  • Codesicherheit: Copilot Chat kann Möglichkeiten vorschlagen, Ihren Code sicherer zu machen. Dies kann Vorschläge zur Eingabebereinigung, Zugriffssteuerung und Verschlüsselung umfassen.

Durch das Vorschlagen von Verbesserungen kann Copilot Chat Ihnen helfen, besseren Code zu schreiben, der leichter lesbar, zuverlässiger, leistungsstärker und sicherer ist.

Funktionsweise

GitHub Copilot Chat verwendet eine Kombination aus Verarbeitung natürlicher Sprache und maschinellem Lernen, um Ihre Frage zu verstehen und Ihnen eine Antwort zu geben. Dieser Prozess lässt sich in folgende Schritte gliedern.

Eingabeverarbeitung

Der Eingabeprompt des Benutzers wird vom Copilot Chat-System vorverarbeitet und an ein großes Sprachmodell gesendet, um eine Antwort basierend auf dem Kontext und dem Prompt zu erhalten. Benutzereingaben können in Form von Codeschnipseln oder in einfacher Sprache erfolgen. Das System ist nur für die Beantwortung von Fragen im Zusammenhang mit der Programmierung vorgesehen.

Sprachmodellanalyse

Der vorverarbeitete Prompt wird dann über das Copilot Chat-Sprachmodell übergeben. Dies ist ein neurales Netzwerk, das anhand eines großen Textkörpers trainiert wurde. Das Sprachmodell analysiert die Eingabeaufforderung.

Antwortgenerierung

Das Sprachmodell generiert eine Antwort auf der Grundlage seiner Analyse der Eingabeaufforderung und des zur Verfügung gestellten Kontexts. Diese Antwort kann in Form von generiertem Code, Codevorschlägen oder Erläuterungen des vorhandenen Codes erfolgen.

Ausgabeformatierung

Die von Copilot Chat generierte Antwort wird formatiert und dem Benutzer angezeigt. Copilot Chat kann Syntaxmarkierungen, Einzug und andere Formatierungsfeatures verwenden, um die generierte Antwort zu verdeutlichen. Je nach Art der Frage des Benutzers können auch Links zum Kontext, den das Modell bei der Erstellung einer Antwort verwendet hat, wie Quellcodedateien oder Dokumentation, bereitgestellt werden.

GitHub Copilot Chat soll Ihnen die relevanteste Antwort auf Ihre Frage geben. Möglicherweise erhalten Sie aber nicht immer die Antwort, die Sie erwartet haben. Benutzer von Copilot Chat sind für die Überprüfung und Validierung der Antworten verantwortlich, die vom System generiert werden, um sicherzustellen, dass sie korrekt und angemessen sind.

Zusammenfassung

GitHub Copilot-Chat ist in die Visual Studio Code-Benutzeroberfläche integriert, um bei Bedarf Unterstützung bereitzustellen. Sie können Copilot Chat verwenden, um Code zu erläutern und zu dokumentieren, Code zu beantworten, Fehlerkorrekturen vorzuschlagen, Komponententestfälle zu generieren und Verbesserungen an einer vorhandenen Codebasis vorzuschlagen. Copilot Chat verwendet eine Kombination aus natürlicher Sprachverarbeitung und maschinellem Lernen, um Ihre Frage zu verstehen und Ihnen eine Antwort zu geben.