Używanie Qiskit Code Assistant w JupyterLab
Dowiedz się, jak zainstalować, używać, konfigurować i odinstalować oficjalne rozszerzenie Qiskit Code Assistant w JupyterLab.
Instalacja rozszerzenia JupyterLab
Aby zainstalować rozszerzenie JupyterLab, uruchom następujące polecenie w terminalu:
pip install qiskit-code-assistant-jupyterlab
Po zainstalowaniu rozszerzenia uruchom JupyterLab:
jupyter lab
Rozszerzenie ładuje się automatycznie i jest widoczne na dole okna JupyterLab. Aby uzyskać pomoc dotyczącą pracy z JupyterLab, zapoznaj się z dokumentacją JupyterLab.
Konfiguracja ustawień rozszerzenia
Zaleca się edycję następujących ustawień JupyterLab, przechodząc do Settings -> Settings Editor:
-
Kliknij Inline Completer, znajdź opcję „Show widget" i wybierz Always. Dzięki temu widżet uzupełniania inline będzie zawsze widoczny, umożliwiając przeglądanie i wybieranie elementów uzupełnienia.
-
Kliknij Code Completion i zwiększ wartość „Default timeout for a provider." do
10000(czyli 10 sekund). Domyślna wartość wynosi 1 sekundę, ale interfejs API Qiskit Code Assistant może potrzebować więcej czasu na znalezienie sugestii. To ustawienie dotyczy wyłącznie standardowego menu kontekstowego wywoływanego klawiszemTab. Uzupełnianie inline ma domyślny limit czasu wynoszący 10 sekund.
Inne ustawienia, które możesz chcieć zmienić:
-
Skróty klawiszowe można zmieniać w Settings > Settings Editor > Keyboard Shortcuts.
-
Możesz zmienić token API IBM Quantum używany w palecie poleceń JupyterLab. W tym celu naciśnij
Alt+Shift+C, wyszukajqiskit, wybierz polecenie Qiskit Code Assistant: Set IBM Quantum API token i wklej swój klucz. -
[Zaawansowane] Aby zmienić instancję usługi Qiskit Code Assistant używaną przez rozszerzenie, edytuj ustawienie
serviceUrlw Qiskit Code Assistant. -
[Zaawansowane] Skróty klawiszowe można zmieniać, wyszukując
completerw ustawieniach skrótów klawiszowych (Settings -> Settings Editor -> Keyboard Shortcuts) i dodając nowe skróty dla odpowiednich poleceń.
Pierwsze kroki z rozszerzeniem Qiskit Code Assistant dla JupyterLab
Uwierzytelnianie i konfiguracja
Po zainstalowaniu rozszerzenia próbuje ono automatycznie uwierzytelnić użytkownika. Domyślnie pakiet stara się uwierzytelnić w usługach IBM Quantum przy użyciu zdefiniowanego klucza API — pobiera go ze zmiennej środowiskowej QISKIT_IBM_TOKEN lub z pliku ~/.qiskit/qiskit-ibm.json (w sekcji default-ibm-quantum). Jeśli potrzebujesz pomocy przy konfiguracji konta, postępuj zgodnie z instrukcjami w artykule Konfiguracja konta IBM Cloud.
Domyślnie rozszerzenie używa modelu mistral-small-3.2-24b-qiskit, który jest widoczny w selektorze modeli na dolnym pasku stanu.
Przy pierwszym użyciu modelu mistral-small-3.2-24b-qiskit otwiera się okno z listą najważniejszych ograniczeń, o których należy wiedzieć podczas korzystania z modelu. Kliknij Accept, aby włączyć model do generowania kodu.
Generowanie kodu
Podczas pisania kodu w Qiskit możesz poprosić Qiskit Code Assistant o pomoc. Ogólnie asystent proponuje lepszy kod w odpowiedzi na komentarze Pythona lub docstringi, jednak możesz korzystać z asystenta w dowolnym miejscu pliku.
Aby uzyskać sugestię kodu, wpisz prompt, a następnie naciśnij Alt + . lub Alt + \. Dostępne są dwa rodzaje promptów:
- Wpisz częściowy kod i otrzymaj sugestię jego uzupełnienia. Przykład:
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. - Wpisz znak kratki (#), a następnie swój prompt. Przykład:
# Give me a random circuit of 5 qubits and a depth of 4.
Praca z sugestiami kodu
Aby akceptować, odrzucać i przeglądać sugestie, użyj następujących skrótów:
Alt+[iAlt+]umożliwiają przeglądanie listy sugestii (jeśli jest ich więcej niż jedna).Alt+TablubAlt+ENDakceptuje zaproponowany kod i wstawia go w bieżącej pozycji kursora.
Ponadto po uruchomieniu asystenta możesz użyć przycisków na widżecie, aby przeglądać lub akceptować sugestię:
Usługa może niekiedy potrzebować kilku sekund na zwrócenie sugestii — możesz sprawdzić, czy usługa pracuje, patrząc na pasek stanu.
JupyterLab zawiera również tradycyjne menu kontekstowe sugestii. Naciśnij klawisz Tab, aby je uruchomić i wyświetlić.
Menu kontekstowe zawiera sugestie zarówno z JupyterLab, jak i Qiskit Code Assistant. Menu kontekstowe oczyszcza i przycina sugestie, co sprawia, że jest mniej przydatne do przeglądania propozycji kodu przed wstawieniem.
Odinstalowanie rozszerzenia JupyterLab
Aby usunąć rozszerzenie Qiskit Code Assistant z JupyterLab, uruchom:
pip uninstall qiskit_code_assistant_jupyterlab
Rozwiązywanie problemów
Jeśli widzisz rozszerzenie frontend, ale nie działa ono poprawnie, sprawdź, czy rozszerzenie serwera jest włączone:
jupyter server extension list
Jeśli rozszerzenie serwera jest zainstalowane i włączone, ale nie widzisz rozszerzenia frontend, sprawdź, czy rozszerzenie frontend jest zainstalowane:
jupyter labextension list
Współtworzenie rozszerzenia JupyterLab
Kod tego rozszerzenia jest publicznie dostępny i open source. Sprawdź go na GitHub.
Następne kroki
Zobacz przykłady użycia Qiskit Code Assistant dla circuits, konfigurowania tłumienia błędów oraz transpilacji za pomocą menedżerów przejść.