QiskitRuntimeService
class QiskitRuntimeService(*args, **kwargs)
Basen: object
Klasse zur Interaktion mit dem Dienst „ IBM Quantum Compute “ (früher „ Qiskit Runtime “).
Empfohlene Verwendung:
-
Direkte Instanziierung:
from qiskit_ibm_runtime import QiskitRuntimeService service = QiskitRuntimeService( channel="ibm_quantum_platform", # optional token="API_KEY", instance="CRN" # recommended ) -
Speichern des Standardkontos:
from qiskit_ibm_runtime import QiskitRuntimeService QiskitRuntimeService.save_account( token="API_KEY", instance="CRN", set_as_default = True ) service = QiskitRuntimeService()
Für die Dienstauthentifizierung bei einem nicht-lokalen Kanal ist mindestens die Information token erforderlich. Für den Kanal local ist keine Authentifizierung erforderlich. Für nicht-lokale Kanäle wird empfohlen, immer die entsprechende instance bereitzustellen, um API-Aufrufe zu minimieren. Wenn kein instance definiert ist, ruft der Dienst alle Instanzen ab, auf die innerhalb des Kontos zugegriffen werden kann, gefiltert nach region, plans_preference und tags. Wenn plans_preference nicht eingestellt ist, werden kostenlose und Testinstanzen gegenüber bezahlten Instanzen bevorzugt.
Bei Verwendung mehrerer Instanzen wird intern verwaltet, QiskitRuntimeService welche Instanz zu einem bestimmten Zeitpunkt aktiv ist. Methoden wie backend(), backends(), job() und jobs() können dazu führen, dass die aktive Instanz gewechselt wird. Es wird empfohlen, die active_instance() Methode zu verwenden, um zu prüfen, welche Instanz aktiv ist, oder für eine feinere Steuerung ein separates QiskitRuntimeService Objekt pro Instanz zu verwenden.
Beachten Sie auch, dass nur ein Konto pro API-Token verwendet werden kann. Das API-Token ist mit dem Konto verknüpft, in dem es erstellt wurde. Wenn Sie mehrere Konten verwenden möchten, müssen Sie mehrere API-Tokens erstellen.
Der Dienst versucht, ein Konto aus einer Datei zu laden, wenn (a) bei der Instanziierung keine explizite token angegeben wurde oder (b) eine name angegeben ist, selbst wenn dem Dienstkonstruktor eine explizite token angegeben wurde. Das Konto wird anhand der folgenden Kriterien ausgewählt:
-
filenameWenn afilenameangegeben wird, werden die Kontodaten von geladen,ansonsten werden sie aus der Standardkonfigurationsdatei geladen.
-
Wenn a
nameangegeben wird, werden die entsprechenden Kontodaten vondie Konfigurationsdatei, einschließlich
channel,token,instance,regionplans_preference,, sowie die erweiterten Konfigurationsparameter:url,url_resolver,private_endpoint,verify, undproxies. Wichtiger Hinweis : Ein bei der Instanziierung angegebener expliziterinstanceWert überschreibt den Wert der geladeneninstance. -
Wenn nichts
nameangegeben ist: Wennchannelangegeben ist, lädt der Dienst diedas Standardkonto, das diesem Kanal in der Konfigurationsdatei zugeordnet ist.
set_as_default=TrueAndernfalls wird auf das allgemeine Standardkonto zurückgegriffen, das beim Aufrufsave_account()mit definiert wurde.
Da gilt, qiskit-ibm-runtime``0.49 kann auf diese Klasse auch über zugegriffen werden qiskit_ibm_runtime.IBMQuantumComputeService.
Parameter
- Kanal – Zeichenfolge, die die Serviceplattform identifiziert. Dies ist
ibm_quantum_platformstandardmäßig auf eingestellt, kann aber zusätzlich dieibm_cloudWertelocalund annehmen.ibm_cloudist eine veraltete Option und verweist auf denselben Pfad wieibm_quantum_platform; der empfohlene Wert lautet „ibm_quantum_platform`. Wenn ausgewähltlocalist, wird der lokale Testmodus verwendet, und einfache Abfragen werden auf einem lokalen Simulator ausgeführt. Weitere Informationen finden Sie in der Dokumentation zum lokalen Testmodus unter IBM Quantum Compute. Bei nicht-lokalen Modi wird der Kanal verwendet, um den Standardwert der API „ URL “ zu ermitteln.ibm_cloudwar die Kennung für die alte Plattform „ IBM Cloud “, und die URL URL wird auf die neue Adresseibm_quantum_platformweitergeleitet. - Token – API-Schlüssel für „ IBM Cloud “. Für die IQP-Authentifizierung ist die Angabe eines API-Schlüssels erforderlich. Sofern nicht ausdrücklich angegeben, wird das standardmäßig gespeicherte Konto nach diesem API-Schlüssel abgefragt.
- URL – Basis-API URL. Standardmäßig gilt dies
https://cloud.ibm.comfür nicht-lokale Kanäle, die auf die „ IBM Quantum Platform “ zugreifen (z. B.,ibm_quantum_platformibm_cloud). Diese „ URL “ wird von einemurl_resolververarbeitet, um Anfragen an den richtigen Service-Einstiegspunkt weiterzuleiten.url_resolver``urlWenn Sie eine benutzerdefinierte Datei bereitstellen, müssen Sie auch eine passende Datei angeben. Der Standard-Resolver schreibt die Basis- URL, inhttps://quantum.cloud.ibm.com/api/v[x]. um. - Dateiname – Vollständiger Pfad der Datei, in der das Konto angelegt wird. Standard: _DEFAULT_ACCOUNT_CONFIG_JSON_FILE.
- name – Name des Kontos, das aus der Datei geladen werden soll.
- Instanz – Die zu verwendende Service-Instanz.
ibm_quantum_platformFüribm_cloudund handelt es sich dabei um den Namen der Cloud-Ressource ( CRN ) oder den Namen des Dienstes. Wenn dieser Parameter gesetzt ist, wird eine Instanz für die Instanziierung des Dienstes definiert; ist er nicht gesetzt, ruft der Dienst alle Instanzen ab, auf die innerhalb des Kontos gemäß den angegebenen Filterkriterien zugegriffen werden kann. Übergeben"auto"Sie diesen Parameter, um die automatische Auswahl explizit anzufordern, ohne die Warnung „Instanz nicht festgelegt“ auszulösen. Dieser Wert kann auch übersave_account()in der Kontodatei gespeichert werden, sodass er bei jeder Instanziierung automatisch wirksam wird. - Proxys – Proxy-Konfiguration. Unterstützte optionale Schlüssel sind
urls(ein Wörterbuch-Mapping-Protokoll oder ein Protokoll und Host zur „ URL “ des Proxys, dokumentiert unter https://requests.readthedocs.io/en/latest/api/#requests.Session.proxies ),username_ntlm,password_ntlm(Benutzername und Passwort zur Aktivierung der NTLM-Benutzerauthentifizierung) - Überprüfen – Gibt an, ob das Zertifikat des Servers unter TLS überprüft werden soll.
- private_endpoint – Verbindung zu privaten API- URL herstellen.
- url_resolver – Funktion zur Auflösung der URL IBM Quantum ComputeURL. Wird kein Resolver angegeben, wird ein Standard-Resolver für den Zugriff auf verschiedene Service-Endpunkte verwendet.
- Region – Legen Sie eine Regionseinstellung für die automatische Instanzauswahl fest. Dieses Argument wird ignoriert, wenn ein
instanceangegeben wird. Zulässige Werte sindus-eastodereu-de. Eine Instanz mit dieser Region wird bevorzugt behandelt, wenn keine Instanz übergeben wird. - plans_preference – Eine nach Priorität sortierte Liste von Account-Plan-Namen für die automatische Instanzauswahl. Dieses Argument wird ignoriert, wenn ein
instanceangegeben wird. Es werden nur Instanzen mit den angegebenen Plan-Namen berücksichtigt. Wenn Sie beispielsweise die Nutzung Ihrer Premium-Konten vermeiden möchten, können Sie einfach angeben,"open"dass nur Ihre Open-Plan-Instanzen verwendet werden sollen. Zu den zulässigen Werten gehören (unter anderem):open,premium,flex,on-prem,pay-as-you-go. - Tags – Legen Sie eine Liste von Tags fest, um die verfügbaren Instanzen für die automatische Instanzauswahl zu filtern. Dieses Argument wird ignoriert, wenn ein
instanceangegeben wird. - args (Any)
- kwargs (Any)
Rückgabe
Ein Beispiel für QiskitRuntimeService oder QiskitRuntimeLocalService wenn der lokale Kanal eingestellt ist.
Erhöht
IBMInputValueError - Wenn eine Eingabe ungültig ist.
Rückgabetyp
Erstelle eine QiskitRuntimeService Instanz.
Attribute
channel
Gibt den verwendeten Kanaltyp zurück.
Rückgabe
Der verwendete Kanaltyp.
is_local
Typ: bool
Standardwert: False
Unabhängig davon, ob es sich um einen Vor-Ort- oder einen Fernservice handelt.
Methoden
active_account
active_account()
Gibt das IBM Quantum-Konto zurück, das derzeit für die Sitzung verwendet wird.
Rückgabe
Ein Wörterbuch mit Informationen über das Konto, das sich derzeit in der Sitzung befindet.
Rückgabetyp
[d] ictstr, str | Keine
active_instance
backend
backend(name, instance=None, use_fractional_gates=False, calibration_id=None)
Gibt ein einzelnes Backend zurück, das der angegebenen Filterung entspricht.
Bitte beachten Sie, dass die Verfügbarkeit des Backends erst bei der Übermittlung des Schaltplans überprüft wird. Um den Status des Backends vorab zu überprüfen, verwenden Sie die status() Methode des Backend-Objekts:
from qiskit_ibm_runtime import QiskitRuntimeService
service = QiskitRuntimeService()
backend = service.backend("ibm_kingston")
status = backend.status()
assert status.operational and status.status_msg == "active"Parameter
- name (str) – Name des Backends.
- instance (str | None) – Geben Sie die CRN des Kontos IBM Cloud an.
- use_fractional_gates (bool | None) – Setzen Sie den Wert auf „True“, damit die Backends Bruch-Gates einbeziehen können. Siehe „Wann sollten Fractional-Gates nicht verwendet werden?“ für Einschränkungen.
- calibration_id (str | None) – Die Kalibrierungs-ID, die für die Instanziierung des Backends verwendet wird.
Rückgabe
Ein Backend, das der Filterung entspricht.
Erhöht
- QiskitBackendNotFoundError - wenn kein Backend gefunden werden konnte.
- IBMInputValueError – wenn fraktionierte Gates angefordert werden, aber vom Backend nicht unterstützt werden.
Rückgabetyp
Back-End
backends
backends(name=None, min_num_qubits=None, instance=None, dynamic_circuits=None, filters=None, *, use_fractional_gates=False, calibration_id=None, **kwargs)
Gibt alle Backends zurück, die über dieses Konto zugänglich sind, vorbehaltlich einer optionalen Filterung.
Parameter
-
name (str | None) – Backend-Name, nach dem gefiltert werden soll.
-
min_num_qubits (int | None) – Mindestanzahl von Qubits, die das Backend haben muss.
-
instance (str | None) – IBM Cloud cRN-Konto
-
dynamic_circuits (bool | None) – Filtern Sie danach, ob das Backend dynamische Schaltungen unterstützt.
-
filters (Callable[[IBMBackend], bool] | None) –
Komplexere Filter, wie Lambda-Funktionen. Zum Beispiel:
QiskitRuntimeService.backends( filters=lambda backend: ( (status := backend.status()).operational and status.status_msg == "active" ) )gibt nur Backends zurück, die betriebsbereit und aktiv sind.
-
use_fractional_gates (bool | None) – Setzen Sie True, damit die Backends gebrochene Gates enthalten können. Beachten Sie, dass unsere Backends jetzt dynamische Schaltungen und gebrochene Gatter gleichzeitig unterstützen. Bei der Verwendung von dynamischen Schaltkreisen (z. B.
if_else) müssen Sie dieses Kennzeichen nicht mehr deaktivieren in Ihrem Algorithmus. Kontrollflussanweisungen werden nicht aus dem Backend entfernt, wenn dieses Flag auf True gesetzt ist. WennNone, dann sind sowohl gebrochene Gatter als auch Kontrollflussoperationen in den Backends enthalten. -
calibration_id (str | None) – Die Kalibrierungs-ID, die für die Instanziierung des Backends verwendet wird. Dies sollte nur bei der Auswahl eines einzelnen Backends verwendet werden, da die Kalibrierungs-ID pro Backend definiert wird.
-
**kwargs* (Any* ) -
Einfache Filter, die einen bestimmten Wert für ein Attribut in der Backend-Konfiguration oder im Status erfordern. Beispiele:
# Get the operational real backends QiskitRuntimeService.backends(simulator=False, operational=True) # Get the backends with at least 127 qubits QiskitRuntimeService.backends(min_num_qubits=127) # Get the backends that support OpenPulse QiskitRuntimeService.backends(open_pulse=True)Die vollständige Liste der Backend-Attribute finden Sie in der Dokumentation der Klasse IBMBackend
Rückgabe
Die Liste der verfügbaren Backends, die dem Filter entsprechen.
Erhöht
- IBMInputValueError - Wenn eine Eingabe ungültig ist.
- QiskitBackendNotFoundError - Wenn sich das Backend in keiner Instanz befindet.
Rückgabetyp
Liste[ IBMBackend ]
delete_account
static delete_account(filename=None, name=None, channel=None)
Löschen eines gespeicherten Kontos von der Festplatte.
Parameter
- filename (str | None) – Name der Datei, aus der das Konto gelöscht werden soll.
- name (str | None) – Name des zu löschenden gespeicherten Kontos.
- channel (ChannelType | None) – Kanaltyp des zu löschenden Standardkontos. Wird ignoriert, wenn ein Kontoname angegeben wird.
Rückgabe
Wahr, wenn das Konto gelöscht wurde. False, wenn kein Konto gefunden wurde.
Rückgabetyp
Bool
delete_job
delete_job(job_id)
Einen „ IBM Quantum Compute “-Auftrag löschen.
Beachten Sie, dass dieser Vorgang nicht rückgängig gemacht werden kann.
Parameter
job_id (str) – ID des zu löschenden Auftrags.
Erhöht
- RuntimeJobNotFound – Der Job existiert nicht.
- IBMRuntimeError – Methode wird nicht unterstützt.
Rückgabetyp
Keine
instances
instances()
Gibt eine Liste der für das aktive Konto verfügbaren Instanzen zurück.
Gibt eine Liste zurück, die eine Reihe von Wörterbüchern enthält, wobei jedes Wörterbuch die folgenden Instanzkennungen enthält: „crn“, „plan“, „name“.
Rückgabe
Eine Liste mit Instanzen, die für das aktive Konto verfügbar sind.
Rückgabetyp
Sequenz[ [dic] tstr, Any]
job
job(job_id)
Einen „ IBM Quantum Compute “-Auftrag abrufen.
Parameter
job_id (str) – Job-ID.
Rückgabe
IBM Quantum Compute Auftrag abgerufen.
Erhöht
- RuntimeJobNotFound - Wenn es die Stelle nicht gibt.
- IBMRuntimeError - Wenn die Anfrage fehlgeschlagen ist.
Rückgabetyp
jobs
jobs(limit=10, skip=0, backend_name=None, pending=None, program_id=None, instance=None, job_tags=None, session_id=None, created_after=None, created_before=None, descending=True)
Alle „ IBM Quantum Compute “-Jobs abrufen, gegebenenfalls unter Anwendung optionaler Filterkriterien.
Parameter
- limit (int | None) – Anzahl der abzurufenden Aufträge.
Nonebedeutet keine Begrenzung. - skip (int) – Startindex für den Abruf von Aufträgen.
- backend_name (str | None) – Name des Backends, von dem Aufträge abgerufen werden sollen.
- pending (bool | None) – Filter nach dem Status der ausstehenden Aufträge. Wenn
True, werden "QUEUED"- und "RUNNING"-Aufträge einbezogen. WennFalse, werden die Aufträge "DONE", "CANCELLED" und "ERROR" berücksichtigt. - program_id (str | None) – Nach Programm-ID filtern.
- instance (str | None) – Nach der CRN-Nummer der Instanz „ IBM Cloud “ filtern. Sofern nicht anders angegeben, werden die Jobs der aktiven Instanz zurückgegeben.
- job_tags (list[str] | None) – Nach Tags filtern, die den Jobs zugewiesen sind. Passende Stellenangebote sind mit allen Tags verknüpft.
- session_id (str | None) – Nach Sitzungsnummer filtern. Alle Aufträge in der Sitzung werden in absteigender Reihenfolge des Erstellungsdatums der Aufträge zurückgegeben.
- created_after (datetime | None) – Filtert nach dem angegebenen Startdatum in Ortszeit. Damit werden Aufträge gesucht, deren Erstellungsdatum nach diesem lokalen Datum/Uhrzeit liegt (größer oder gleich).
- created_before (datetime | None) – Filtert nach dem angegebenen Enddatum in Ortszeit. Damit lassen sich Stellen finden, deren Erstellungsdatum vor diesem lokalen Datum/Uhrzeit liegt (kleiner oder gleich).
- descending (bool) – Wenn
True, werden die Aufträge in absteigender Reihenfolge des Erstellungsdatums zurückgegeben (d. h. der neueste Auftrag zuerst), bis das Limit erreicht ist.
Rückgabe
Eine Liste der Stellenangebote bei „ IBM Quantum Compute “.
Erhöht
IBMInputValueError - Wenn ein Eingabewert ungültig ist.
Rückgabetyp
Liste[ RuntimeJobV2 ]
least_busy
least_busy(min_num_qubits=None, instance=None, filters=None, use_fractional_gates=False, **kwargs)
Gibt das am wenigsten ausgelastete verfügbare Backend zurück.
Parameter
-
min_num_qubits (int | None) – Mindestanzahl von Qubits, die das Backend haben muss.
-
instance (str | None) – IBM Cloud konto CRN.
-
filters (Callable[[IBMBackend], bool] | None) –
Filter können definiert werden wie für die
backends()methode. Ein Beispiel, um die operativen Backends mit 5 Qubits zu erhalten:QiskitRuntimeService.least_busy(n_qubits=5, operational=True) -
use_fractional_gates (bool | None) –
In
Truediesem Fall werden nur Backends berücksichtigt, die fraktionierte Gatter enthalten, und diese fraktionierten Gatter werden in das zurückgegebene Backend aufgenommen. Siehe „Wann sollten Fractional-Gates nicht verwendet werden?“ für Einschränkungen. -
kwargs (Any) – Zusätzliche Argumente, die an die Backend-Abfrage übergeben werden.
Rückgabe
Das Backend mit der geringsten Anzahl an ausstehenden Aufträgen.
Erhöht
QiskitBackendNotFoundError - Wenn kein Backend die Kriterien erfüllt.
Rückgabetyp
save_account
static save_account(token=None, url=None, instance=None, channel=None, filename=None, name=None, proxies=None, verify=None, overwrite=False, set_as_default=None, private_endpoint=False, region=None, plans_preference=None, tags=None)
Speichern Sie das Konto zur späteren Verwendung auf der Festplatte.
Parameter
- token (str | None) – IBM Cloud API-Schlüssel.
- url (str | None) – Die API URL. Standardmäßig wird https://cloud.ibm.com.
- instance (str | None) – Dies ist ein optionaler Parameter zur Angabe des „ CRN “ oder des Dienstnamens. Wenn dieser Wert festgelegt ist, wird damit eine Standardinstanz für die Instanziierung des Dienstes definiert; ist er nicht festgelegt, ruft der Dienst alle Instanzen ab, auf die innerhalb des Kontos zugegriffen werden kann. Setzen Sie den Wert auf
"auto", um die automatische Auswahl explizit als Voreinstellung zu speichern. Dadurch wird die Warnung „Instanz nicht festgelegt“ bei nachfolgenden Instanziierungen unterdrückt. - channel (ChannelType | None) – Kanaltyp.
ibm_cloudoderibm_quantum_platform. - filename (str | None) – Vollständiger Pfad zu der Datei, in der das Konto gespeichert ist.
- name (str | None) – Name des zu speichernden Kontos.
- proxies (dict | None) – Proxy-Konfiguration. Unterstützte optionale Schlüssel sind
urls(ein Wörterbuch, das das Protokoll oder den Host der Proxy-Adresse URL zuordnet; dokumentiert unter https://requests.readthedocs.io/en/latest/api/#requests.Session.proxies ),username_ntlm,password_ntlm(Benutzername und Passwort zur Aktivierung der NTLM-Benutzerauthentifizierung) - verify (bool | None) – Überprüfen Sie das TLS-Zertifikat des Servers.
- overwrite (bool | None) –
Truewenn das bestehende Konto überschrieben werden soll. - set_as_default (bool | None) – Bei
Truewird das Konto unter dem Dateinamen als Standardkonto gespeichert. - private_endpoint (bool | None) – Verbindung zur privaten API URL.
- region (RegionType | None) – Legen Sie eine regionale Einstellung fest. us-east oder eu-de. Eine Instanz mit dieser Region wird vorrangig behandelt, wenn keine Instanz übergeben wird.
- plans_preference (PlanType | None) – Eine Liste mit Namen von Account-Plänen (
open,premium, usw.), nach Präferenz geordnet. Eine Instanz mit dem ersten Wert in der Liste wird vorrangig behandelt, und es werden nur Instanzen mit den angegebenen Plannamen berücksichtigt. Wenn Sie beispielsweise die Nutzung Ihrer Premium-Konten vermeiden möchten, können Sie einfach übergeben,"open"um ausschließlich Ihre Open-Plan-Instanzen zu verwenden.plans_preferencewird ignoriert, wenn eininstanceangegeben ist. - tags (list[str] | None) – Legen Sie eine Liste von Tags fest, um verfügbare Instanzen zu filtern. Instanzen mit diesen Tags werden priorisiert, wenn keine Instanz übergeben wird.
Rückgabetyp
Keine
saved_accounts
static saved_accounts(default=None, channel=None, filename=None, name=None)
Liste der auf der Festplatte gespeicherten Konten.
Parameter
- default (bool | None) – Bei der Einstellung True werden nur Standardkonten zurückgegeben.
- channel (ChannelType | None) – Kanal „ type.\ `ibm_cloud``“ oder
ibm_quantum_platform. - filename (str | None) – Name der Datei, deren Konten zurückgegeben werden.
- name (str | None) – Ist diese Option gesetzt, werden nur Konten mit dem angegebenen Namen zurückgegeben.
Rückgabe
Ein Wörterbuch mit Informationen über die auf der Festplatte gespeicherten Konten.
Erhöht
ValueError - Wenn ein ungültiges Konto auf der Festplatte gefunden wird.
Rückgabetyp
dict
usage
usage()
Gibt Nutzungsinformationen für die aktuell aktive Instanz zurück.
Rückgabe
Diktat mit Angaben zur Verwendung.
Rückgabetyp
dict [str, Any]