Přeskočit na hlavní obsah

Inicializace účtu služby Qiskit Runtime

Před použitím Qiskit Runtime musíš inicializovat (vytvořit instanci) svůj účet zadáním (načtením) přihlašovacích údajů. Tyto přihlašovací údaje můžeš zadávat ručně pokaždé, když inicializuješ službu Qiskit Runtime, nebo je můžeš uložit pro opakované použití.

Poznámky
  • Pokud používáš veřejný počítač nebo jiné nedůvěryhodné prostředí, postupuj místo toho podle pokynů v části Inicializace služby v nedůvěryhodném prostředí.
  • Postupuj podle těchto pokynů, pokud se chceš připojit pomocí REST API namísto Qikit.
  • V případě potřeby použij tyto informace ke konfiguraci brány firewall pro povolení přístupu ke koncovým bodům IBM Quantum API.

Než začneš

Ujisti se, že jsi dokončil tyto kroky:

  1. Ujisti se, že jsi členem účtu IBM Cloud. Pokyny najdeš v části Nastavení účtu IBM Cloud.
  2. Vytvoř (nebo získej přístup k) alespoň jedné instanci. Pro ověření postupuj takto:
    1. Přihlas se na IBM Quantum Platform.
    2. Ujisti se, že v přepínači účtů v záhlaví je vybrán správný účet a region.
    3. Pokud se ti zobrazuje jedna nebo více instancí, tento krok je hotový. V opačném případě vytvoř instanci.
  3. Ujisti se, že pracuješ v aktivním prostředí Python s nainstalovaným Qiskit SDK a Qiskit Runtime.
  4. Aktivuj virtuální prostředí Python a spusť Python ve svém virtuálním prostředí.

Nalezení přihlašovacích údajů

  1. Najdi svůj API klíč (označovaný také jako API token). Na hlavním panelu vytvoř svůj API klíč, pak ho zkopíruj na bezpečné místo, abys ho mohl použít k ověření. Token již nebude znovu viditelný. Vezmi na vědomí, že pomocí jediného API klíče se můžeš připojit k libovolnému regionu.
  2. Volitelné: Najdi instanci, kterou chceš použít, na stránce Instances. Najeď myší na její CRN, kliknutím na ikonu ho zkopíruj a ulož na bezpečné místo, abys ho mohl použít k identifikaci instance.

Propojení Qiskit s instancí služby Qiskit Runtime

poznámka

Tyto pokyny jsou určeny pro qiskit_ibm_runtime verze 0.42 nebo novější. Některé funkce nejsou v dřívějších verzích qiskit_ibm_runtime k dispozici. V těchto případech bys měl vždy poskytnout hodnotu pro channel, token a instance, buď explicitně nebo prostřednictvím uloženého účtu.

Níže je základní kód pro připojení Qiskit k instanci služby Qiskit Runtime. Existuje však několik různých způsobů přizpůsobení možností QiskitRuntimeService v závislosti na tvých potřebách. Tyto možnosti jsou popsány v následujících sekcích.

from qiskit_ibm_runtime import QiskitRuntimeService

service = QiskitRuntimeService(channel=<channel>,
token=<your-API_KEY>, # Use the 44-character API_KEY you created and saved from the IBM Quantum Platform Home dashboard
instance=<instance_CRN>)
poznámka

Výchozí kanál je ibm_quantum_platform. Protože se jedná téměř vždy o vhodný kanál, není zahrnut v příkladech.

Rychlý začátek: Explicitní zadání přihlašovacích údajů

Nejrychlejší způsob, jak zprovoznit instanci QiskitRuntimeService, je metoda přímé inicializace: explicitně zadej API token (klíč) a CRN (identifikátor instance) pokaždé, když potřebuješ inicializovat službu Qiskit Runtime. V případě potřeby si přečti část Nalezení přihlašovacích údajů.

from qiskit_ibm_runtime import QiskitRuntimeService

service = QiskitRuntimeService(token=<cloud_api_key>, # Use the 44-character API_KEY you created and saved from the IBM Quantum Platform Home dashboard
instance=<instance_CRN>)

Tato cesta je spolehlivá, ale může být zdlouhavá, pokud potřebuješ opakovaně načítat stejné údaje. Abys se vyhnul opakovanému zadávání přihlašovacích údajů, pokud pracuješ v důvěryhodném prostředí Python (například na osobním notebooku nebo pracovní stanici), můžeš použít uložené přihlašovací údaje účtu, jak je popsáno v následující části.

Přestože je vstupní parametr instance volitelný, doporučuje se ho vždy zadat, pokud nechceš používat jednu službu pro práci s více instancemi. V takovém případě si přečti část automatický výběr instance.

Rychlý začátek: Použití uložených přihlašovacích údajů

Pokud jsi již uložil své přihlašovací údaje, použij následující kód pro načtení výchozích přihlašovacích údajů. Pokyny k uložení přihlašovacích údajů najdeš v části Uložení přihlašovacích údajů.

from qiskit_ibm_runtime import QiskitRuntimeService

# run every time you need the service
service = QiskitRuntimeService()
...

Pokud jsi pojmenoval jednu nebo více sad přihlašovacích údajů – například pro otevřený a prémiový přístup – použij pro použití pojmenované sady přihlašovacích údajů následující kód.

from qiskit_ibm_runtime import QiskitRuntimeService

# run every time you need the service
service = QiskitRuntimeService(name="<name_of_saved_credentials>")
...

Důležité informace při načítání uložených přihlašovacích údajů

  • Pokud inicializuješ službu s token a name, parametr token je ignorován a načtou se uložené údaje z účtu name.

    V následujícím příkladu služba načte údaje z account_A a nepoužije token_B:

    from qiskit_ibm_runtime import QiskitRuntimeService

    service = QiskitRuntimeService(token="token_B", name="account_A")
  • Pokud při inicializaci služby zadáš name a instance, služba se pokusí načíst účet name a připojit se k zadané instance. Pokud dojde ke konfliktu, zobrazí se upozornění.

    V následujícím příkladu se služba pokusí načíst přihlašovací údaje pro account_A a použít instanci CRN_B – i když je v account_A zadána jiná instance:

    from qiskit_ibm_runtime import QiskitRuntimeService

    service = QiskitRuntimeService(instance="CRN_B", name="account_A")
  • Služba se pokusí načíst výchozí uložený účet pouze v případě, že při inicializaci služby nezadáš token ani name. Pokud je však instance zadána explicitně, služba se pokusí připojit k této instanci pomocí výchozích přihlašovacích údajů. Pokud dojde ke konfliktu, zobrazí se upozornění.

    V následujícím příkladu se služba pokusí načíst výchozí přihlašovací údaje a použít instanci CRN_B – i když je ve výchozím účtu zadána jiná instance:

    from qiskit_ibm_runtime import QiskitRuntimeService

    service = QiskitRuntimeService(instance="CRN_B")
  • Pokud uložíš více sad přihlašovacích údajů, ale při inicializaci služby žádnou nezadáš a neexistuje žádný výchozí uložený účet, použije se ta, jejíž název je abecedně poslední.

    V následujícím příkladu uživatel uložil účty s názvem „my_premium" a „my_open", ale žádný z nich neoznačil jako výchozí. Poté inicializoval službu pomocí následujícího kódu. V tomto případě se použijí přihlašovací údaje „my_premium":

    from qiskit_ibm_runtime import QiskitRuntimeService

    service = QiskitRuntimeService()
  • Pokud se trvale zobrazuje chyba „401 Unauthorized", možná se pokoušíš použít bearer token místo svého API klíče.

Automatický výběr instance

Pokud zadáš token, ale při vytváření instance služby nezadáš CRN instance, QiskitRuntimeService se ověří u účtu identifikovaného tokenem a použije automatický výběr instance k výběru nejrelevantnější instance pro požadovaný úkol. Pokud máš ve svém účtu k dispozici více instancí, služba automaticky vybere z dostupných instancí v závislosti na požadovaném prostředku a těchto možnostech QiskitRuntimeService (pokud jsou nastaveny): plans_preference, region, tags.

  • plans_preference: Typy plánů instancí, které mají být upřednostněny. Pokud je například zadáno [open], jsou k dispozici pouze instance Open Plan. Přijímané hodnoty jsou open, premium, pay-as-you-go, flex a on-prem. Pokud není plans_preference zadáno, bezplatné plány mají přednost před placenými.
  • region: Region instance. Přijímané hodnoty jsou us-east a eu-de.
  • tags: Štítky instance. Přijímá seznam řetězců s názvy štítků.
poznámka

Můžeš nastavit své uložené přihlašovací údaje tak, aby automaticky vybíraly instanci.

Instance se vyhledává a používá v tomto pořadí:

  1. Pokud má tvůj účet přístup pouze k jedné instanci, je vybrána automaticky.
  2. Pokud se používají uložené přihlašovací údaje a s nimi byla zadána instance, použije se tato instance. Viz Důležité informace při načítání uložených přihlašovacích údajů.
  3. Pokud má tvůj účet více instancí, které mají přístup k požadovanému QPU, systém použije tvé zadané předvolby plánu k výběru plánu a instance. Pro Qiskit Runtime verze 0.42 a novější jsou bezplatné plány ve výchozím nastavení upřednostněny.
  4. Pokud má tvůj účet přístup k více instancím, ale pouze jedna z nich má přístup k požadovanému QPU, vybere se instance s přístupem. Pokud tato instance není spojena s bezplatným plánem, budou účtovány náklady.

Příklady

V tomto příkladu služba prohledá všechny instance dostupné pro účet a najde ty, které mají přístup k zadanému Backend:

service = QiskitRuntimeService(token=<your-API_KEY>)

V tomto příkladu služba prohledá všechny instance dostupné pro účet v regionu EU a najde ty, které mají přístup k zadanému Backend:

service = QiskitRuntimeService(token=<your-API_KEY>, region="eu-de")

V tomto příkladu služba prohledá všechny instance dostupné pro účet a označené jako services a najde ty, které mají přístup k zadanému Backend:

service = QiskitRuntimeService(token=<your-API_KEY>, tags=['services'])

V tomto příkladu služba prohledá všechny prémiové a otevřené instance dostupné pro účet a najde ty, které mají přístup k zadanému Backend. Pokud je Backend dostupný v instanci Premium Plan i Open Plan, instance Premium Plan má přednost, protože premium je v plans_preference zadáno jako první.

service = QiskitRuntimeService(token=<your-API_KEY>, plans_preference=['premium', 'open'])

Zjištění vybrané instance

Vybraná instance je vrácena jako upozornění. Kromě toho můžeš spustit service.active_instance() pro zjištění aktivní instance.

Lokální testování s Qiskit Runtime

Třídu QiskitRuntimeService lze inicializovat s channel=local pro provedení lokální simulace. V tomto případě není vyžadováno ověření a není třeba zadávat hodnoty pro token nebo instance. Proto se nedoporučuje ukládat lokální účet. Místo toho můžeš použít přímou inicializaci:

from qiskit_ibm_runtime import QiskitRuntimeService

# Initialize for local testing

service = QiskitRuntimeService(channel="local")

Další kroky