Zum Hauptinhalt springen

Qiskit Code Assistant in JupyterLab verwenden

Erfahre, wie du die offizielle Qiskit Code Assistant-Erweiterung in JupyterLab installierst, verwendest, konfigurierst und deinstallierst.

JupyterLab-Erweiterung installieren

Um die JupyterLab-Erweiterung zu installieren, führe den folgenden Befehl in einem Terminal aus:

pip install qiskit-code-assistant-jupyterlab

Nach der Installation der Erweiterung starte JupyterLab:

jupyter lab

Die Erweiterung wird automatisch geladen und in der Statusleiste am unteren Rand des JupyterLab-Fensters angezeigt. Weitere Hilfe zur Arbeit mit JupyterLab findest du in der JupyterLab-Dokumentation.

Erweiterungseinstellungen konfigurieren

Es wird empfohlen, die folgenden JupyterLab-Einstellungen über Settings -> Settings Editor anzupassen:

  • Klicke auf Inline Completer, suche „Show widget" und wähle Always. Dadurch wird das Inline-Completer-Widget immer angezeigt, sodass du durch die Vervollständigungsvorschläge blättern und einen auswählen kannst.

  • Klicke auf Code Completion und erhöhe den Wert für „Default timeout for a provider." auf 10000 bzw. 10 Sekunden. Der Standardwert beträgt 1 Sekunde, aber die Qiskit Code Assistant-API benötigt möglicherweise länger, um einen Vorschlag zu finden. Diese Einstellung gilt nur für das Standard-Kontextmenü, das mit Tab aufgerufen wird. Der Inline-Completer hat standardmäßig 10 Sekunden.

Weitere Einstellungen, die du möglicherweise ändern möchtest:

  • Tastaturkürzel können über Settings > Settings Editor > Keyboard Shortcuts geändert werden.

  • Du kannst das IBM Quantum API-Token, das in der JupyterLab-Befehlspalette verwendet wird, ändern. Drücke dazu Alt + Shift + C, suche nach qiskit, wähle den Befehl Qiskit Code Assistant: Set IBM Quantum API token aus und füge deinen Schlüssel ein.

  • [Erweitert] Um die Instanz des Qiskit Code Assistant-Dienstes zu ändern, die die Erweiterung verwenden soll, bearbeite die Einstellung serviceUrl des Qiskit Code Assistant.

  • [Erweitert] Tastaturkürzel können geändert werden, indem du in den Tastaturkürzel-Einstellungen (Settings -> Settings Editor -> Keyboard Shortcuts) nach completer suchst und neue Kürzel für die entsprechenden Befehle hinzufügst.

Erste Schritte mit der Qiskit Code Assistant-Erweiterung für JupyterLab

Authentifizierung und Einrichtung

Nach der Installation der Erweiterung versucht sie, dich zu authentifizieren. Standardmäßig versucht das Paket, sich mit dem definierten API-Schlüssel bei den IBM Quantum-Diensten zu authentifizieren, und verwendet deinen Schlüssel aus der Umgebungsvariable QISKIT_IBM_TOKEN oder aus der Datei ~/.qiskit/qiskit-ibm.json (im Abschnitt default-ibm-quantum). Wenn du Hilfe bei der Konfiguration deines Kontos benötigst, folge den Anweisungen unter IBM Cloud-Konto einrichten.

Standardmäßig verwendet die Erweiterung das Modell mistral-small-3.2-24b-qiskit, das im Model Picker in der unteren Statusleiste aufgeführt ist.

Wenn du das Modell mistral-small-3.2-24b-qiskit zum ersten Mal verwendest, öffnet sich ein Fenster, das einige wesentliche Einschränkungen auflistet, die du bei der Nutzung des Modells beachten solltest. Klicke auf Accept, um das Modell für die Code-Generierung zu aktivieren.

Code generieren

Während du deinen Code mit Qiskit entwickelst, kannst du den Qiskit Code Assistant um Hilfe bitten. Im Allgemeinen schlägt der Assistent besseren Code als Antwort auf Python-Kommentare oder Docstrings vor, aber du kannst den Assistenten überall in deiner Datei verwenden.

Um einen Code-Vorschlag zu erhalten, gib eine Eingabeaufforderung ein und drücke dann Alt + . oder Alt + \. Es gibt zwei Arten von Eingabeaufforderungen:

  • Gib unvollständigen Code ein und erhalte einen Vorschlag, den Code zu vervollständigen. Beispiel:
    from qiskit.circuit import QuantumCircuit
    from qiskit.transpiler import generate_preset_pass_manager
    from qiskit_ibm_runtime import SamplerV2 as Sampler
    from qiskit_ibm_runtime.fake_provider import FakeManilaV2

    # Bell Circuit
    qc = QuantumCircuit(2)
    qc.h(0)
    qc.cx(0, 1)

    qc.mea # Type Ctrl + . for a code suggestion.
  • Gib ein Rautezeichen (#) ein und schreibe dann deine Eingabeaufforderung. Beispiel: # Give me a random circuit of 5 qubits and a depth of 4.

Mit Code-Vorschlägen arbeiten

Verwende Folgendes, um Vorschläge anzunehmen, abzulehnen und durchzublättern:

  • Alt + [ und Alt + ] können verwendet werden, um durch die Liste der Vorschläge zu blättern (wenn mehr als einer vorhanden ist).
  • Alt + Tab oder Alt + END nimmt den vorgeschlagenen Code an und fügt ihn an der aktuellen Cursorposition ein.

Nachdem der Assistent ausgeführt wurde, kannst du außerdem die Schaltflächen im Widget verwenden, um durch die Vorschläge zu blättern oder einen anzunehmen:

Das Popup-Fenster mit Schaltflächen wird angezeigt.

hinweis

Der Dienst kann manchmal ein paar Sekunden benötigen, um einen Vorschlag zurückzugeben. Du kannst sehen, ob der Dienst arbeitet, indem du die Statusleiste überprüfst.

JupyterLab enthält außerdem ein herkömmliches Vorschlags-Kontextmenü. Verwende die Tab-Taste, um das Kontextmenü auszuführen und anzuzeigen.

Das Kontextmenü enthält Vorschläge von JupyterLab sowie Vorschläge des Qiskit Code Assistant. Das Kontextmenü bereinigt und kürzt die Vorschläge außerdem, was es weniger nützlich macht, um den Code-Vorschlag vor dem Einfügen zu überprüfen.

JupyterLab-Erweiterung deinstallieren

Um die Qiskit Code Assistant-Erweiterung aus JupyterLab zu entfernen, führe Folgendes aus:

pip uninstall qiskit_code_assistant_jupyterlab

Fehlerbehebung

Wenn du die Frontend-Erweiterung siehst, sie aber nicht funktioniert, überprüfe, ob die Server-Erweiterung aktiviert ist:

jupyter server extension list

Wenn die Server-Erweiterung installiert und aktiviert ist, du die Frontend-Erweiterung aber nicht siehst, überprüfe, ob die Frontend-Erweiterung installiert ist:

jupyter labextension list

Zur JupyterLab-Erweiterung beitragen

Der Code für diese Erweiterung ist öffentlich zugänglich und Open Source. Sieh ihn dir auf GitHub an.

Nächste Schritte

Empfehlungen

Sieh dir Beispiele für die Verwendung des Qiskit Code Assistant für Circuits, die Konfiguration der Fehlerunterdrückung und das Transpilieren mit Pass Managern an.