Sari la conținutul principal

⚙️ Setări doQumentation

Configurează serverul Jupyter utilizat pentru executarea codului Python în tutoriale.

Mediu curent:

Mod simulator

Activează pentru a rula notebook-uri fără un cont IBM Quantum. Toate apelurile QiskitRuntimeService sunt redirecționate către un simulator local. Nu sunt necesare modificări ale celulelor. Aceasta se aplică numai execuției de cod încorporate pe acest site — deschiderea unui notebook în JupyterLab folosește runtime-ul standard Qiskit.

Circuitele transpilate și rezultatele specifice backend-ului vor diferi de hardware-ul real când se folosește modul simulator. Rezultatele statice așteptate afișate pe pagini reflectă backend-urile IBM reale.

Preferințe de afișare

Dimensiunea fontului de cod

14px
from qiskit import QuantumCircuit

Ieșiri pre-calculate

Fiecare pagină de notebook arată ieșiri pre-calculate (imagini, tabele, text) din rulările originale IBM. Când apeși Run pentru a executa cod live, atât ieșirile originale cât și noile rezultate live sunt afișate unul lângă altul. Activează această comutare pentru a ascunde ieșirile originale în timpul execuției live, păstrând vizibile doar rezultatele tale.

Avertizări Python

În mod implicit, avertizările Python (notificări de deprecare, indicii de execuție) sunt suprimate pentru o ieșire mai curată a notebook-ului. Dezactivează aceasta pentru a vedea toate avertizările — util pentru depanare sau pentru a învăța despre modificările API.

Progres de învățare

Progresul tău de citire și execuție este urmărit local în browser. Paginile vizitate arată un în bara laterală; notebook-urile executate arată un .

Niciun progres urmărit încă. Vizitează tutorialele și ghidurile pentru a începe urmărirea.

Altele

Setări avansate

IBM Cloud Code Engine

Code Engine oferă un kernel Jupyter rapid, fără server, alimentat de propriul tău cont IBM Cloud. Pornirea durează secunde în loc de minute. Nivelul gratuit acoperă ~14 ore/lună.

Instrucțiuni de configurare
  1. Creează un cont IBM Cloud la cloud.ibm.com (nivel gratuit disponibil)
  2. Creează un proiect Code Engine în regiunea ta preferată
  3. Implementează o nouă aplicație cu imaginea ghcr.io/janlahmann/doqumentation-codeengine:latest, portul 8080
  4. Setează variabila de mediu JUPYTER_TOKEN la un token securizat (min. 32 de caractere) și CORS_ORIGIN la domeniul tău
Join Workshop

Paste the workshop config string provided by your instructor. This connects you to a pool of Code Engine instances for the class.

Cont IBM Quantum

Notă de securitate: Credențialele sunt stocate în localStorage al browser-ului ca text simplu. Nu sunt criptate și pot fi citite de extensiile browser-ului sau de oricine are acces la acest dispozitiv. Folosește setarea de expirare de mai jos pentru a limita expunerea și șterge credențialele când ai terminat. Pe computerele partajate sau publice, preferă metoda manuală save_account() descrisă mai jos.

Introdu o dată credențialele IBM Quantum aici. Vor fi injectate automat prin save_account() când kernelul pornește, deci nu trebuie să le introduci în fiecare notebook. Aceasta se aplică numai execuției de cod încorporate pe acest site — deschiderea unui notebook în JupyterLab necesită apelarea manuală a save_account().

  1. Înregistrează-te la quantum.cloud.ibm.com/registration — nu este necesară card de credit pentru primele 30 de zile
  2. Autentifică-te la quantum.cloud.ibm.com
  3. Instanță — Creează o instanță Open Plan gratuită la Instanțe dacă nu ai una deja
  4. Token API — Apasă pe iconița de profil (dreapta sus), apoi „API token”. Copiază cheia.
  5. CRN — Copiază șirul CRN de pe pagina Instanțe

Pentru pași detaliaţi, consultă ghidul IBM Configurează autentificarea (pasul 2).

Alternativă: Rulează save_account() manual într-o celulă de notebook

Dacă preferi să nu stochezi credențiale în acest browser, lipește aceasta în orice celulă de cod și rulează-o. Credențialele sunt salvate în memoria temporară a kernelului Binder și se pierd când sesiunea se termină.

from qiskit_ibm_runtime import QiskitRuntimeService
QiskitRuntimeService.save_account(
    token="YOUR_API_TOKEN",
    instance="YOUR_CRN",
    overwrite=True
)

Pachete Binder

Când rulezi pe GitHub Pages, codul se execută prin MyBinder. Mediul Binder include pachetele de bază Qiskit pre-instalate:

qiskit[visualization], qiskit-aer,
qiskit-ibm-runtime, pylatexenc,
qiskit-ibm-catalog, qiskit-addon-utils, pyscf

Unele notebook-uri necesită pachete suplimentare. Le poți instala la cerere rulând aceasta într-o celulă de cod:

!pip install -q <package>

Sau instalează toate pachetele opționale dintr-o dată:

!pip install -q scipy scikit-learn qiskit-ibm-transpiler \
  qiskit-experiments plotly sympy qiskit-serverless \
  qiskit-addon-sqd qiskit-addon-mpf \
  qiskit-addon-aqc-tensor[aer,quimb-jax] \
  qiskit-addon-obp qiskit-addon-cutting ffsim \
  gem-suite python-sat

Server Jupyter personalizat

URL-ul de bază al serverului tău Jupyter (ex. http://localhost:8888)
Token din jupyter server --generate-config sau afișat la pornire

Ajutor configurare

Configurare RasQberry

Dacă rulezi pe un RasQberry Pi, serverul Jupyter ar trebui să fie detectat automat. Dacă nu, asigură-te că serviciul jupyter-tutorials rulează:

sudo systemctl status jupyter-tutorials

Configurare Jupyter local

Pornește un server Jupyter cu CORS activat:

jupyter server --ServerApp.token='rasqberry' \
  --ServerApp.allow_origin='*' \
  --ServerApp.disable_check_xsrf=True

Configurare Docker

Containerul Docker generează un token Jupyter aleatoriu la pornire. Execuția codului prin website (portul 8080) funcționează automat — nu este necesar token. Token-ul este necesar doar pentru accesul direct JupyterLab pe portul 8888.

Pentru a recupera token-ul din jurnalele containerului:

docker compose --profile jupyter logs | grep "Jupyter token"

Pentru a seta un token fix:

JUPYTER_TOKEN=mytoken docker compose --profile jupyter up

Server la distanță

Pentru serverele la distanță, asigură-te că CORS este configurat pentru a permite conexiuni de pe acest site. Adaugă următoarele la fișierul jupyter_server_config.py:

c.ServerApp.allow_origin = '*'
c.ServerApp.allow_credentials = True