QiskitRuntimeService
class QiskitRuntimeService(*args, **kwargs)
Bases : object
Classe permettant d'interagir avec le service Qiskit Runtime.
QiskitRuntimeService constructeur.
Utilisations recommandées :
-
Instanciation directe :
from qiskit_ibm_runtime import QiskitRuntimeService service = QiskitRuntimeService( channel="ibm_quantum_platform", token="API_KEY", instance="CRN" ) -
Sauvegarde du compte par défaut :
from qiskit_ibm_runtime import QiskitRuntimeService QiskitRuntimeService.save_account( token="API_KEY", instance="CRN", set_as_default = True ) service = QiskitRuntimeService()
Les informations minimales requises pour l'authentification du service sur un canal non local sont les suivantes : token. Le canal local ne nécessite pas d'authentification. Pour les canaux non locaux, il est recommandé de toujours fournir l'adresse instance afin de minimiser les appels à l'API. Si une adresse instance n'est pas définie, le service recherchera toutes les instances accessibles dans le compte, filtrées par region, plans_preference, et tags. Si plans_preference n'est pas défini, les instances gratuites et d'essai seront prioritaires sur les instances payantes.
Notez également qu'un seul compte par jeton API peut être utilisé. Le jeton API est lié au compte dans lequel il a été créé. Si vous souhaitez utiliser plusieurs comptes, vous devez créer plusieurs jetons API.
Le service tentera de charger un compte à partir d'un fichier si (a) aucun token explicite n'a été fourni lors de l'instanciation ou (b) si un name est spécifié, même si un token explicite a été fourni au constructeur du service. Le compte sera sélectionné sur la base des critères suivants :
- Si une adresse
filenameest spécifiée, les détails du compte seront chargés à partir defilename, sinon ils seront chargés à partir du fichier de configuration par défaut. - Si un
nameest spécifié, les détails du compte correspondant seront chargés à partir du fichier de configuration, y comprischannel,token,instance,region,plans_preference, et les paramètres de configuration avancés :url,url_resolver,private_endpoint,verify, etproxies. Note importante : Une valeur explicite deinstancefournie lors de l'instanciation remplacera la valeur deinstancechargée. - Si aucun
namen'est spécifié : sichannelest spécifié, le service chargera le compte par défaut associé à ce canal à partir du fichier de configuration. Dans le cas contraire, il reviendra au compte général par défaut, défini lors de l'appel àsave_account()avecset_as_default=True.
Paramètres
- channel (Optional[ChannelType]) – Chaîne qui identifie la plate-forme de services. Cette valeur est fixée par défaut à
ibm_quantum_platform, mais peut également prendre les valeurslocaletibm_cloud. Silocalest sélectionné, le mode de test local sera utilisé et les requêtes primitives seront exécutées sur un simulateur local. Pour plus de détails, consultez la documentation sur le mode de test local de Qiskit Runtime. Pour les modes non locaux, le canal est utilisé pour résoudre la valeur par défaut de l'API URL.ibm_cloudétait l'identifiant de l'ancienne plateforme IBM Cloud, et son URL sera redirigée vers la nouvelle URLibm_quantum_platform. - token (Optional[str]) – IBM Cloud Clé API. La fourniture d'une clé API est nécessaire pour l'authentification du PQI. S'il n'est pas fourni explicitement, le compte enregistré par défaut sera interrogé pour cette clé API.
- url (Optional[str]) – L'API URL. Les valeurs par défaut varient en fonction du canal sélectionné : https://quantum.cloud.ibm.com (
ibm_quantum_platform) ou https://quantum-computing.cloud.ibm.com (ibm_cloud). - filename (Optional[str]) – Chemin complet du fichier dans lequel le compte est créé. Défaut : _DEFAULT_ACCOUNT_CONFIG_JSON_FILE.
- name (Optional[str]) – Nom du compte à charger à partir du fichier.
- instance (Optional[str]) – L'instance de service à utiliser. Pour
ibm_cloudetibm_quantum_platform, il s'agit du nom de la ressource en nuage (CRN) ou du nom du service. Si cette option est activée, elle définira une instance pour l'instanciation du service. Si elle n'est pas activée, le service recherchera toutes les instances accessibles dans le compte en fonction des critères de filtrage spécifiés. - proxies (Optional[dict]) – Configuration du proxy. Les clés optionnelles prises en charge sont les suivantes :
urls(un dictionnaire associant le protocole ou le protocole et l'hôte à l'adresse URL du proxy, documenté à l'adresse suivante https://requests.readthedocs.io/en/latest/api/#requests.Session.proxies ),username_ntlm,password_ntlm(nom d'utilisateur et mot de passe pour activer l'authentification NTLM de l'utilisateur) - verify (Optional[bool]) – Vérifier ou non le certificat TLS du serveur.
- private_endpoint (Optional[bool]) – Connexion à l'API privée URL.
- url_resolver (Optional[Callable]) – Fonction utilisée pour résoudre l'url d'exécution.
- region (Optional[str]) – Définir une préférence régionale pour la sélection automatique des instances. Cet argument est ignoré si un
instanceest spécifié. Les valeurs acceptées sontus-eastoueu-de. Une instance avec cette région sera prioritaire si aucune instance n'est transmise. - plans_preference (Optional[List[str]]) – Une liste de noms de plans de comptes classés par ordre de priorité pour la sélection automatique d'instances. Cet argument est ignoré si un
instanceest spécifié. Seules les instances portant les noms de plan indiqués seront prises en compte. Par exemple, si vous voulez éviter d'utiliser vos comptes premium, il vous suffit de passer"open"pour n'utiliser que vos instances de plan ouvert. Les valeurs acceptées comprennent (mais ne sont pas limitées à) :open,premium,flex,on-prem,pay-as-you-go. - tags (Optional[List[str]]) – Définir une liste d'étiquettes pour filtrer les instances disponibles en vue d'une sélection automatique des instances. Cet argument est ignoré si un
instanceest spécifié.
Retours
Une instance de QiskitRuntimeService ou QiskitRuntimeLocalService pour la chaîne locale.
Augmentations
IBMInputValueError - Si une entrée n'est pas valide.
Attributs
canal
Retourne le type de canal utilisé.
Retours
Le type de canal utilisé.
Méthodes
active_account
active_account()
Retourne le compte IBM Quantum actuellement utilisé pour la session.
Retours
Un dictionnaire contenant des informations sur le compte en cours de session.
Type de retour
Dictstr[, str] | Aucun
active_instance
backend
backend(name, instance=None, use_fractional_gates=False, calibration_id=None)
Renvoie un seul backend correspondant au filtrage spécifié.
Paramètres
- name (str) – Nom du backend.
- instance (str | None) – Indiquez le CRN du compte IBM Cloud.
- use_fractional_gates (bool | None) – Mettre True pour permettre aux backends d'inclure des portes fractionnaires. Actuellement, cette fonction ne peut pas être utilisée simultanément avec les circuits dynamiques, le PEC, le PEA ou le tournoiement de porte. Lorsque cet indicateur est activé, les instructions de flux de contrôle sont automatiquement supprimées du backend. Lorsque vous utilisez une fonction de circuits dynamiques (par exemple
if_else) dans votre algorithme, vous devez désactiver ce drapeau pour créer des circuits ISA exécutables. Ce drapeau pourrait être modifié ou supprimé lorsque notre backend prendra en charge simultanément les circuits dynamiques et les portes fractionnaires. SiNone, les portes fractionnaires et les opérations de flux de contrôle sont incluses dans les backends. - calibration_id (str | None) – L'identifiant de calibration utilisé pour l'instanciation du backend.
Retours
Un backend correspondant au filtrage.
Type de retour
Back-end
Augmentations
QiskitBackendNotFoundError - si aucun backend n'a pu être trouvé.
backends
backends(name=None, min_num_qubits=None, instance=None, dynamic_circuits=None, filters=None, *, use_fractional_gates=False, calibration_id=None, **kwargs)
Renvoie tous les backends accessibles via ce compte, sous réserve d'un filtrage optionnel.
Paramètres
-
name (str | None) – Nom du backend à filtrer.
-
min_num_qubits (int | None) – Nombre minimum de qubits que le backend doit posséder.
-
instance (str | None) – IBM Cloud compte CRN
-
dynamic_circuits (bool | None) – Filtrer en fonction de la prise en charge des circuits dynamiques par le backend.
-
filters (Callable[[IBMBackend], bool] | None) –
Filtres plus complexes, tels que les fonctions lambda. Par exemple :
QiskitRuntimeService.backends( filters=lambda b: b.max_shots > 50000 ) QiskitRuntimeService.backends( filters=lambda x: ("rz" in x.basis_gates ) ) -
use_fractional_gates (bool | None) – Mettre True pour permettre aux backends d'inclure des portes fractionnaires. Notez que nos backends prennent désormais en charge simultanément les circuits dynamiques et les portes fractionnaires. Il n'est plus nécessaire de désactiver ce drapeau lors de l'utilisation de circuits dynamiques (par exemple
if_else) dans votre algorithme. Les instructions de flux de contrôle ne sont pas supprimées du backend lorsque cet indicateur est à True. SiNone, les portes fractionnaires et les opérations de flux de contrôle sont incluses dans les backends. -
calibration_id (str | None) – L'identifiant de calibration utilisé pour l'instanciation du backend. Cette option ne doit être utilisée que lors de la sélection d'un seul backend, car l'identifiant d'étalonnage est défini pour chaque backend.
-
**kwargs* (Any* ) -
Filtres simples qui requièrent une valeur spécifique pour un attribut de la configuration ou de l'état du backend. Exemples :
# 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)Pour la liste complète des attributs du backend, voir la documentation de la classe IBMBackend
Retours
La liste des backends disponibles qui correspondent au filtre.
Augmentations
- IBMInputValueError - Si une entrée n'est pas valide.
- QiskitBackendNotFoundError - Si le backend n'est dans aucune instance.
Type de retour
*Liste [IBMBackend* ]
check_pending_jobs
check_pending_jobs()
(DÉCRYPTÉ) Vérifier le nombre de travaux en attente et attendre le travail le plus ancien si le nombre maximum de travaux en attente a été atteint.
Type de retour
Aucun
delete_account
static delete_account(filename=None, name=None, channel=None)
Supprimer un compte enregistré sur le disque.
Paramètres
- filename (str | None) – Nom du fichier dans lequel le compte doit être supprimé.
- name (str | None) – Nom du compte enregistré à supprimer.
- channel (Literal['ibm_quantum_platform', 'ibm_cloud', 'local'] | None) – Type de canal du compte par défaut à supprimer. Ignoré si le nom du compte est fourni.
Retours
Vrai si le compte a été supprimé. Faux si aucun compte n'a été trouvé.
Type de retour
booléen
delete_job
delete_job(job_id)
(SUPPRIMÉ) Supprimer un travail d'exécution.
Notez que cette opération ne peut pas être inversée.
Paramètres
job_id (str) – ID du travail à supprimer.
Augmentations
- RuntimeJobNotFound - Le poste n'existe pas.
- IBMRuntimeError - La méthode n'est pas prise en charge.
Type de retour
Aucun
instances
instances()
Renvoyer une liste contenant une série de dictionnaires avec l'attribut
les identifiants d'instance suivants par instance : "crn", "plan", "name".
Retours
Une liste des instances disponibles pour le compte actif.
Type de retour
Séquence* [Dict* [str, Any ]]
emploi
job(job_id)
Récupérer un travail d'exécution.
Paramètres
job_id (str) – Job ID.
Retours
Travail d'exécution récupéré.
Augmentations
- RuntimeJobNotFound - Si l'emploi n'existe pas.
- IBMRuntimeError - Si la demande a échoué.
Type de retour
emplois
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)
Récupérer tous les travaux en cours d'exécution, avec un filtrage optionnel.
Paramètres
- limit (int | None) – Nombre de travaux à récupérer.
Nonesignifie qu'il n'y a pas de limite. - skip (int) – Index de départ pour l'extraction des travaux.
- backend_name (str | None) – Nom du backend à partir duquel les travaux doivent être récupérés.
- pending (bool | None) – Filtre sur l'état des travaux en attente. Si
True, les travaux "QUEUED" et "RUNNING" sont inclus. SiFalse, les travaux "DONE", "CANCELLED" et "ERROR" sont inclus. - program_id (str | None) – Filtrer par ID de programme.
- instance (str | None) – Filtrer par IBM Cloud crn d'instance.
- job_tags (List[str] | None) – Filtre sur les étiquettes attribuées aux travaux. Les emplois correspondants sont associés à toutes les étiquettes.
- session_id (str | None) – Filtre sur l'identifiant de la session. Tous les travaux de la session seront renvoyés dans l'ordre de leur date de création.
- created_after (datetime | None) – Filtre sur la date de début donnée, en heure locale. Cette fonction permet de rechercher les emplois dont la date de création est postérieure (supérieure ou égale) à cette date/heure locale.
- created_before (datetime | None) – Filtre sur la date de fin donnée, en heure locale. Cette fonction est utilisée pour rechercher les emplois dont la date de création est antérieure (inférieure ou égale) à cette date/heure locale.
- descending (bool) – Si
True, les travaux sont renvoyés dans l'ordre décroissant de leur date de création (c'est-à-dire le plus récent en premier) jusqu'à ce que la limite soit atteinte.
Retours
Liste des travaux d'exécution.
Augmentations
IBMInputValueError - Si une valeur d'entrée n'est pas valide.
Type de retour
Liste [ RuntimeJobV2 ]
least_busy
least_busy(min_num_qubits=None, instance=None, filters=None, **kwargs)
Renvoie le backend disponible le moins occupé.
Paramètres
-
min_num_qubits (int | None) – Nombre minimum de qubits que le backend doit posséder.
-
instance (str | None) – IBM Cloud compte CRN.
-
filters (Callable[[IBMBackend], bool] | None) –
Les filtres peuvent être définis comme pour la méthode
backends()méthode. Un exemple pour obtenir les backends opérationnels avec 5 qubits :QiskitRuntimeService.least_busy(n_qubits=5, operational=True) -
kwargs* (Tout* )
Retours
Le backend ayant le plus petit nombre de travaux en attente.
Augmentations
QiskitBackendNotFoundError - Si aucun backend ne correspond aux critères.
Type de retour
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)
Sauvegarder le compte sur le disque pour une utilisation ultérieure.
Paramètres
- token (str | None) – IBM Cloud Clé API.
- url (str | None) – L'API URL. La valeur par défaut est https://cloud.ibm.com.
- instance (str | None) – Il s'agit d'un paramètre facultatif permettant de spécifier le CRN ou le nom du service. S'il est défini, il définira une instance par défaut pour l'instanciation du service. S'il n'est pas défini, le service ira chercher toutes les instances accessibles dans le compte.
- channel (Literal['ibm_quantum_platform', 'ibm_cloud', 'local'] | None) – Type de canal.
ibm_cloudouibm_quantum_platform. - filename (str | None) – Chemin complet du fichier dans lequel le compte est enregistré.
- name (str | None) – Nom du compte à sauvegarder.
- proxies (dict | None) – Configuration du proxy. Les clés optionnelles prises en charge sont les suivantes :
urls(un dictionnaire associant le protocole ou le protocole et l'hôte à l'adresse URL du proxy, documenté à l'adresse suivante https://requests.readthedocs.io/en/latest/api/#requests.Session.proxies ),username_ntlm,password_ntlm(nom d'utilisateur et mot de passe pour activer l'authentification NTLM de l'utilisateur) - verify (bool | None) – Vérifiez le certificat TLS du serveur.
- overwrite (bool | None) –
Truesi le compte existant doit être remplacé. - set_as_default (bool | None) – Si
True, le compte est enregistré dans le nom du fichier, en tant que compte par défaut. - private_endpoint (bool | None) – Connexion à l'API privée URL.
- region (Literal['us-east', 'eu-de'] | None) – Définir une préférence régionale. us-east ou eu-de. Une instance avec cette région sera prioritaire si aucune instance n'est transmise.
- plans_preference (List[str] | None) – Une liste de noms de plans de comptes (
open,premium, etc.), par ordre de préférence. Une instance avec la première valeur de la liste sera priorisée et seules les instances avec les noms de plan donnés seront prises en compte. Par exemple, si vous voulez éviter d'utiliser vos comptes premium, il vous suffit de passer"open"pour n'utiliser que vos instances de plan ouvert.plans_preferenceest ignorée si une adresseinstanceest spécifiée. - tags (List[str] | None) – Définir une liste d'étiquettes pour filtrer les instances disponibles. Les instances avec ces étiquettes seront prioritaires si une instance n'est pas transmise.
Type de retour
Aucun
Comptes sauvegardés
static saved_accounts(default=None, channel=None, filename=None, name=None)
Liste des comptes enregistrés sur le disque.
Paramètres
- default (bool | None) – Si la valeur est True, seuls les comptes par défaut sont renvoyés.
- channel (Literal['ibm_quantum_platform', 'ibm_cloud', 'local'] | None) – Canal type.\
ibm\_cloud\\\\ouibm_quantum_platform. - filename (str | None) – Nom du fichier dont les comptes sont renvoyés.
- name (str | None) – Si cette option est activée, seuls les comptes portant le nom donné sont renvoyés.
Retours
Un dictionnaire contenant des informations sur les comptes enregistrés sur le disque.
Augmentations
ValueError - Si un compte non valide est trouvé sur le disque.
Type de retour
dict
utilisation
usage()
Renvoie des informations sur l'utilisation de l'instance active actuelle.
Retours
Dict avec détails d'utilisation.
Type de retour
Dict [str, Any ]