メインコンテンツへスキップ

JupyterLabでQiskit Code Assistantを使用する

JupyterLabにおける公式Qiskit Code Assistant拡張機能のインストール、使用方法、設定、およびアンインストールについて説明します。

JupyterLab拡張機能のインストール

JupyterLab拡張機能をインストールするには、ターミナルから以下のコマンドを実行してください:

pip install qiskit-code-assistant-jupyterlab

拡張機能をインストールしたら、JupyterLabを起動します:

jupyter lab

拡張機能は自動的に読み込まれ、JupyterLabウィンドウの下部に表示されます。JupyterLabの使い方については、JupyterLabドキュメントを参照してください。

拡張機能の設定

Settings -> Settings Editor から以下のJupyterLab設定を変更することをお勧めします:

  • Inline Completer をクリックし、「Show widget」を見つけて Always を選択します。これにより、インラインコンプリーターウィジェットが常に表示され、補完候補を順番に確認して選択できるようになります。

  • Code Completion をクリックし、「Default timeout for a provider.」の値を 10000(10秒)に増やします。デフォルト値は1秒ですが、Qiskit Code Assistant APIが提案を見つけるのにそれ以上かかる場合があります。この設定は Tab キーで呼び出す標準コンテキストメニューにのみ適用されます。インラインコンプリーターのデフォルトは10秒です。

その他、変更したい設定:

  • キーボードショートカットは Settings > Settings Editor > Keyboard Shortcuts から変更できます。

  • JupyterLabのコマンドパレットで使用するIBM Quantum APIトークンを変更できます。変更するには、Alt + Shift + C を入力し、qiskit を検索して、Qiskit Code Assistant: Set IBM Quantum API token コマンドを選択し、キーを貼り付けます。

  • [上級者向け] 拡張機能が使用するQiskit Code Assistantサービスのインスタンスを変更するには、Qiskit Code Assistant の serviceUrl 設定を編集してください。

  • [上級者向け] キーボードショートカットは、Keyboard Shortcuts設定(Settings -> Settings Editor -> Keyboard Shortcuts)で completer を検索し、関連するコマンドに新しいショートカットを追加することで変更できます。

JupyterLab用Qiskit Code Assistant拡張機能を使い始める

認証とセットアップ

拡張機能をインストールすると、自動的に認証が試みられます。デフォルトでは、定義されたAPIキーを使ってIBM Quantumサービスへの認証を試みます。APIキーは QISKIT_IBM_TOKEN 環境変数、またはファイル ~/.qiskit/qiskit-ibm.jsondefault-ibm-quantum セクション)から読み込まれます。アカウントの設定については、IBM Cloudアカウントのセットアップの手順に従ってください。

デフォルトでは、拡張機能は mistral-small-3.2-24b-qiskit モデルを使用します。このモデルは下部のステータスバーにあるModel Pickerに表示されています。

mistral-small-3.2-24b-qiskit モデルを初めて使用する際には、モデルを使用する上で注意すべき主な制限事項が記載されたウィンドウが開きます。Accept をクリックして、コード生成のためにモデルを有効化してください。

コードの生成

Qiskitを使ってコードを開発する際に、Qiskit Code Assistantに助けを求めることができます。一般的に、アシスタントはPythonのコメントやdocstringに対してより良いコード提案を行いますが、ファイル内の任意の場所で使用することもできます。

コードの提案を得るには、プロンプトを入力した後、Alt + . または Alt + \ を押します。使用できるプロンプトには2種類あります:

  • 途中まで書いたコードを入力して、残りのコードの提案を得ることができます。例:
    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.
  • ポンド記号(#)を入力してからプロンプトを記述します。例:# Give me a random circuit of 5 qubits and a depth of 4.

コード提案の操作

提案を承認・拒否したり、複数の提案を切り替えたりするには以下を使用します:

  • Alt + [Alt + ] で提案リストを順番に切り替えることができます(複数ある場合)。
  • Alt + Tab または Alt + END で提案されたコードを承認し、現在のカーソル位置に挿入します。

また、アシスタントの実行後は、ウィジェット上のボタンを使って提案を切り替えたり承認したりすることもできます:

ボタン付きのポップアップペインが表示されています。

備考

サービスが提案を返すのに数秒かかる場合があります。ステータスバーを確認することで、サービスが処理中かどうかを確認できます。

JupyterLabには従来の提案コンテキストメニューも含まれています。Tab キーを押してコンテキストメニューを実行・表示します。

コンテキストメニューには、Qiskit Code Assistantによる提案に加えて、JupyterLab自体の提案も含まれています。また、コンテキストメニューは提案の内容をサニタイズ・トリミングするため、挿入前にコード提案を確認するのには適していません。

JupyterLab拡張機能のアンインストール

JupyterLabからQiskit Code Assistant拡張機能を削除するには、以下を実行してください:

pip uninstall qiskit_code_assistant_jupyterlab

トラブルシューティング

フロントエンド拡張機能が表示されているが動作しない場合は、サーバー拡張機能が有効になっているか確認してください:

jupyter server extension list

サーバー拡張機能がインストールされて有効になっているのにフロントエンド拡張機能が表示されない場合は、フロントエンド拡張機能がインストールされているか確認してください:

jupyter labextension list

JupyterLab拡張機能への貢献

この拡張機能のコードは公開されており、オープンソースです。GitHubでご確認ください。

次のステップ

推奨事項

Qiskit Code Assistantの使用例として、回路エラー抑制の設定パスマネージャーを使ったトランスパイルをご覧ください。