QiskitRuntimeService
class QiskitRuntimeService(*args, **kwargs)
Bases : object
Classe permettant d'interagir avec le service « IBM Quantum Compute » (anciennement « Qiskit Runtime »).
Utilisations recommandées :
-
Instanciation directe :
from qiskit_ibm_runtime import QiskitRuntimeService service = QiskitRuntimeService( channel="ibm_quantum_platform", # optional token="API_KEY", instance="CRN" # recommended ) -
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.
En cas d'utilisation de plusieurs instances, QiskitRuntimeService le système gérera en interne l'instance active à un moment donné. Des méthodes telles que backend(), backends(), job() et jobs() peuvent entraîner la modification de l'instance active. Il est recommandé d'utiliser la active_instance() méthode pour vérifier quelle instance est active, ou d'utiliser un objet distinct QiskitRuntimeService par instance pour un contrôle plus précis.
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 un
filenameest spécifié, les informations du compte seront chargées à partir defilename,sinon, ils seront chargés à partir du fichier de configuration par défaut.
-
Si un
nameest spécifié, les informations relatives au compte correspondant seront chargées à partir dele fichier de configuration, y compris
channel,token,instance,region,plans_preference, ainsi que les paramètres de configuration avancés :url,url_resolver,private_endpoint,verify, etproxies.instanceRemarque importante : une valeur explicitementinstancefournie lors de l'instanciation remplacera la valeur du fichier chargé. -
Si n'est pas
namespécifié : sichannelest spécifié, le service chargera lecompte par défaut associé à ce canal, tel qu'il figure dans le fichier de configuration. Sinon, le système reviendra au compte par défaut général, défini lors de l'appel de
save_account()avecset_as_default=True.
Étant donné que, qiskit-ibm-runtime``0.49 cette classe est également accessible sous la forme qiskit_ibm_runtime.IBMQuantumComputeService.
Paramètres
- channel – Chaîne de caractères identifiant la plateforme de services. Cette option est définie
ibm_quantum_platformpar défaut sur, mais peut également prendre lesibm_cloudvaleurslocalet.ibm_cloudIl s'agit d'une option héritée qui pointe vers le même chemin queibm_quantum_platform; la valeur recommandée estibm\_quantum\_platform\. Si cette option estlocalsélectionnée, le mode de test local sera utilisé et les requêtes primitives s'exécuteront sur un simulateur local. Pour plus d'informations, consultez la documentation relative au mode de test local sur IBM Quantum Compute. Pour les modes non locaux, ce canal sert à déterminer la valeur par défaut de l'API « URL ».ibm_cloudIl s'agissait de l'identifiant de l'ancienne plateforme IBM Cloud, et son URL URL sera redirigée vers la nouvelleibm_quantum_platformadresse. - token – Clé API d' IBM Cloud. Il est nécessaire de fournir une clé API pour l'authentification IQP. Si elle n'est pas fournie explicitement, cette clé API sera récupérée dans le compte enregistré par défaut.
- url – API de base URL. La valeur par défaut est
https://cloud.ibm.compour les canaux non locaux accédant à l'adresse IBM Quantum Platform (par exemple,ibm_quantum_platform,ibm_cloud). Cette adresse URL est traitée par unurl_resolverafin d'acheminer les requêtes vers le point d'entrée du service approprié.url_resolver``urlSi vous fournissez un fichier de configuration personnalisé, vous devez également fournir un fichier correspondant. Le résolveur par défaut réécrit l' URL e de base enhttps://quantum.cloud.ibm.com/api/v[x]. - nom_fichier – Chemin d'accès complet du fichier dans lequel le compte est créé. Par défaut : _DEFAULT_ACCOUNT_CONFIG_JSON_FILE.
- nom – Nom du compte à charger à partir du fichier.
- instance – L'instance du service à utiliser. Pour
ibm_cloudetibm_quantum_platform, il s'agit du nom de la ressource cloud ( CRN ) ou du nom du service. Si ce paramètre est défini, il permettra de définir une instance pour l'instanciation du service; s'il n'est pas défini, le service récupérera toutes les instances accessibles au sein du compte selon les critères de filtrage spécifiés. Passez"auto"ce paramètre pour demander explicitement la sélection automatique sans déclencher l'avertissement « instance non définie ». Cette valeur peut également être enregistrée dans le fichier de configuration viasave_account()afin qu'elle s'applique automatiquement à chaque instanciation. - Proxys – Configuration des proxys. Les clés optionnelles prises en charge sont
urls(un protocole de mappage de dictionnaire ou un protocole et un hôte vers l' URL du proxy, documenté à l'adresse 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 utilisateur NTLM) - Vérifier – Indique s'il faut vérifier le certificat d' TLS s du serveur.
- private_endpoint – Se connecter à l' URL de l'API privée.
- url_resolver – Fonction utilisée pour résoudre l'adresse IBM Quantum ComputeURL. Si aucune information n'est fournie, un résolveur par défaut sera utilisé pour accéder aux différents points de terminaison des services.
- région – Définissez une préférence de région 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 associée à cette région sera privilégiée si aucune instance n'est fournie. - plans_preference – Une liste des noms de plans de compte classés par ordre de priorité pour la sélection automatique des instances. Cet argument est ignoré si un
instanceest spécifié. Seules les instances portant les noms de forfait indiqués seront prises en compte. Par exemple, si vous souhaitez éviter d'utiliser vos comptes premium, il vous suffit de passer le paramètre"open"pour n'utiliser que vos instances en mode ouvert. Les valeurs autorisées comprennent (sans s'y limiter) :open,premium,flex,on-prem,pay-as-you-go. - balises – Définissez une liste de balises pour filtrer les instances disponibles en vue d'une sélection automatique. Cet argument est ignoré si un
instanceest spécifié.
Retours
Une instance de QiskitRuntimeService ou QiskitRuntimeLocalService si le canal local est défini.
Augmentations
IBMInputValueError - Si une entrée n'est pas valide.
Créer une QiskitRuntimeService instance.
Attributs
channel
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
[d] ictstr, 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é.
Veuillez noter que la disponibilité du backend n'est vérifiée qu'au moment de l'envoi du circuit. Pour vérifier l'état du backend à l'avance, utilisez la status() méthode sur l'objet backend :
from qiskit_ibm_runtime import QiskitRuntimeService
service = QiskitRuntimeService()
backend = service.backend()
status = backend.status()
assert status.operational and status.status_msg == "active"Paramètres
- name (str) – Nom du backend.
- instance (str | None) – Indiquez le CRN du compte IBM Cloud.
- use_fractional_gates (bool | None) – Définissez cette valeur sur « True » pour permettre aux backends d'inclure des portes fractionnaires. Pour connaître les restrictions d 'utilisation, consultez la section « Quand ne pas utiliser les portes fractionnaires ».
- calibration_id (str | None) – L'identifiant de calibration utilisé pour l'instanciation du backend.
Retours
Un backend correspondant au filtrage.
Augmentations
- QiskitBackendNotFoundError - si aucun backend n'a pu être trouvé.
- IBMInputValueError – si des portes fractionnaires sont demandées mais ne sont pas prises en charge par le backend.
Type de retour
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)
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 backend: ( (status := backend.status()).operational and status.status_msg == "active" ) )ne renverra que les backends opérationnels et actifs.
-
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 ]
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 (ChannelType | None) – Type de canal du compte par défaut à supprimer. Ce paramètre est ignoré si un nom de 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)
Supprimer une tâche « IBM Quantum Compute ».
Notez que cette opération ne peut pas être annulé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()
Renvoie une liste des instances disponibles pour le compte actif.
Renvoie une liste contenant une série de dictionnaires, chacun comportant les identifiants d'instance suivants : « crn », « plan », « name ».
Retours
Une liste des instances disponibles pour le compte actif.
Type de retour
Séquence[ [dic] tstr, Any]
job
job(job_id)
Récupérer une tâche « IBM Quantum Compute ».
Paramètres
job_id (str) – Job ID.
Retours
IBM Quantum Compute tâche récupérée.
Augmentations
- RuntimeJobNotFound - Si l'emploi n'existe pas.
- IBMRuntimeError - Si la demande a échoué.
Type de retour
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)
Récupérer toutes les missions d' IBM Quantum Compute, en appliquant éventuellement des critères de filtrage.
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) – Filtrer par mots-clés attribués aux emplois. Les emplois correspondants sont associés à toutes les balises.
- 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
Une liste d'offres d'emploi chez IBM Quantum Compute.
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, use_fractional_gates=False, **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) -
use_fractional_gates (bool | None) –
TrueDans ce cas, seuls les backends comportant des portes fractionnaires sont pris en compte, et ces portes fractionnaires sont incluses dans le backend renvoyé. Pour connaître les restrictions d 'utilisation, consultez la section « Quand ne pas utiliser les portes fractionnaires ». -
kwargs (Any) – Arguments supplémentaires transmis à la requête du backend.
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 l' CRN ou le nom du service. Si ce paramètre est défini, il déterminera l'instance par défaut à utiliser pour l'instanciation du service; s'il n'est pas défini, le service récupérera toutes les instances accessibles au sein du compte. Définissez la valeur sur
"auto"pour enregistrer explicitement la sélection automatique comme préférence, ce qui supprime l'avertissement « instance non définie » lors des instanciations suivantes. - channel (ChannelType | 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 serveur proxy. Les clés optionnelles prises en charge sont
urls(un dictionnaire associant le protocole ou le protocole et l'hôte à l' URL e du proxy, documenté à l'adresse 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 utilisateur NTLM) - 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 (RegionType | None) – Définissez une préférence régionale. us-east ou eu-de. Une instance associée à cette région sera priorisée si aucune instance n'est fournie.
- plans_preference (PlanType | None) – Une liste des noms de plans de compte (
open,premium, etc.), classés par ordre de préférence. Une instance correspondant à la première valeur de la liste sera privilégiée, et seules les instances portant les noms de plans indiqués seront prises en compte. Par exemple, si vous souhaitez éviter d'utiliser vos comptes premium, il vous suffit de passer le paramètre"open"pour n'utiliser que vos instances en mode « open plan ».plans_preferenceest ignoré si uninstanceest spécifié. - tags (list[str] | None) – Définissez une liste de balises pour filtrer les instances disponibles. Les instances comportant ces balises seront prioritaires si aucune instance n'est transmise.
Type de retour
Aucun
saved_accounts
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 (ChannelType | 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
usage
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]