QiskitRuntimeService
class QiskitRuntimeService(*args, **kwargs)
Bases: object
Clase para interactuar con el servicio Qiskit Runtime.
Usos recomendados:
-
Instanciación directa:
from qiskit_ibm_runtime import QiskitRuntimeService service = QiskitRuntimeService( channel="ibm_quantum_platform", # optional token="API_KEY", instance="CRN" # recommended ) -
Guardar cuenta por defecto:
from qiskit_ibm_runtime import QiskitRuntimeService QiskitRuntimeService.save_account( token="API_KEY", instance="CRN", set_as_default = True ) service = QiskitRuntimeService()
La información mínima necesaria para la autenticación del servicio en un canal no local es token. El canal local no requiere autenticación. Para los canales no locales, se recomienda proporcionar siempre la dirección instance correspondiente para minimizar las llamadas a la API. Si no se define un instance , el servicio buscará todas las instancias accesibles dentro de la cuenta, filtradas por region, plans_preference, y tags. Si no se define plans_preference , las instancias gratuitas y de prueba tendrán prioridad sobre las instancias de pago.
Cuando se utilicen varias instancias, QiskitRuntimeService el sistema gestionará internamente cuál de ellas está activa en cada momento. Métodos como backend(), backends(), job() y jobs() pueden provocar un cambio en la instancia activa. Se recomienda utilizar el active_instance() método para comprobar qué instancia está activa, o bien utilizar un objeto independiente QiskitRuntimeService por cada instancia para lograr un control más preciso.
Tenga en cuenta también que sólo se puede utilizar una cuenta por token de API. El token de la API está vinculado a la cuenta en la que se creó. Si desea utilizar varias cuentas, debe crear varios tokens de API.
El servicio intentará cargar una cuenta desde un archivo si (a) no se proporcionó un token explícito durante la instanciación o (b) se especifica un name , incluso si se proporcionó un token explícito al constructor del servicio. La cuenta se seleccionará en función de los siguientes criterios:
-
Si se especifica un
filename, los datos de la cuenta se cargarán desdefilename,de lo contrario, se cargarán desde el archivo de configuración predeterminado.
-
Si se especifica un
name, los datos de la cuenta correspondiente se cargarán desdeel archivo de configuración, incluyendo
channel,token,instance,regionplans_preference,, y los parámetros de configuración avanzados:url,url_resolver,private_endpoint,verify, yproxies.instanceNota importante : Si se proporciona un valor explícitoinstancedurante la instanciación, este sobrescribirá el valor del archivo cargado. -
Si no
namese especifica: sichannelse especifica, el servicio cargará elcuenta predeterminada asociada a ese canal en el archivo de configuración. De lo contrario, se utilizará la cuenta predeterminada general, definida al llamar a
save_account()conset_as_default=True.
Parámetros
- canal : cadena que identifica la plataforma de servicios. El valor
ibm_quantum_platformpredeterminado es, pero también puede tomarlocallos valores yibm_cloud.ibm_cloudes una opción heredada y apunta a la misma ruta queibm_quantum_platform, el valor recomendado esibm\_quantum\_platform\. Silocalse selecciona, se utilizará el modo de prueba local y las consultas primitivas se ejecutarán en un simulador local. Para obtener más información, consulta la documentación sobre el modo de pruebas locales de Qiskit Runtime. En el caso de los modos no locales, el canal se utiliza para determinar el valor predeterminado de la API « URL ».ibm_cloudera el identificador de la plataforma heredada IBM Cloud, y su URL se redirigirá a la nuevaibm_quantum_platformdirección. - token : una clave API de IBM Cloud. Es necesario proporcionar una clave API para la autenticación en IQP. Si no se indica explícitamente, se consultará la cuenta guardada por defecto para obtener esta clave API.
- URL : API base URL. El valor predeterminado es
https://cloud.ibm.compara los canales no locales que acceden a IBM Quantum Platform (por ejemplo,ibm_quantum_platform,ibm_cloud). Este URL es procesado por unurl_resolverpara dirigir las solicitudes al punto de entrada del servicio correcto.url_resolver``urlSi proporcionas un valor personalizado, también debes indicar el correspondiente. El resolutor predeterminado reescribe la base URL ahttps://quantum.cloud.ibm.com/api/v[x]. - nombre_archivo – Ruta completa del archivo en el que se crea la cuenta. Valor predeterminado: _DEFAULT_ACCOUNT_CONFIG_JSON_FILE.
- nombre – Nombre de la cuenta que se va a cargar desde el archivo.
- instancia : la instancia del servicio que se va a utilizar. Para
ibm_cloudyibm_quantum_platform, se trata del nombre del recurso en la nube ( CRN ) o del nombre del servicio. Si se configura, definirá una instancia para la instanciación del servicio; si no se configura, el servicio recuperará todas las instancias accesibles dentro de la cuenta según los criterios de filtrado especificados. Pasa"auto"este parámetro para solicitar explícitamente la selección automática sin que se active la advertencia «instancia no definida». Este valor también se puede guardar en el archivo de la cuenta mediantesave_account()para que se aplique automáticamente cada vez que se cree una instancia. - Servidores proxy – Configuración de servidores proxy. Las claves opcionales admitidas son
urls(un protocolo de asignación de diccionarios o un protocolo y un host a la dirección URL del proxy, documentado en https://requests.readthedocs.io/en/latest/api/#requests.Session.proxies ),username_ntlm,password_ntlm(nombre de usuario y contraseña para habilitar la autenticación de usuario NTLM) - verificar : si se debe verificar el certificado TLS del servidor.
- private_endpoint – Conéctate a la API privada URL.
- url_resolver – Función utilizada para resolver la dirección URL en tiempo de ejecución. Si no se especifica, se utilizará un resolutor predeterminado para acceder a los distintos puntos finales del servicio.
- región : configura una preferencia de región para la selección automática de instancias. Este argumento se ignora si se especifica un
instance. Los valores válidos sonus-eastoeu-de. Se dará prioridad a una instancia de esta región si no se especifica ninguna instancia. - plans_preference – Una lista de nombres de planes de cuenta ordenados por prioridad para la selección automática de instancias. Este argumento se ignora si se especifica un
instance. Solo se tendrán en cuenta las instancias con los nombres de plan indicados. Por ejemplo, si quieres evitar utilizar tus cuentas premium, solo tienes que especificar"open"que se utilicen únicamente tus instancias de plan abierto. Los valores permitidos incluyen (entre otros):open,premium,flex,on-prem,pay-as-you-go. - Etiquetas : establece una lista de etiquetas para filtrar las instancias disponibles y facilitar la selección automática de instancias. Este argumento se ignora si se especifica un
instance.
Devuelve
Una instancia de QiskitRuntimeService o QiskitRuntimeLocalService si se ha configurado el canal local.
Eleva
IBMInputValueError - Si una entrada no es válida.
Crea una QiskitRuntimeService instancia.
Atributos
channel
Devuelve el tipo de canal utilizado.
Devuelve
El tipo de canal utilizado.
Métodos
active_account
active_account()
Devuelve la cuenta de IBM Quantum actualmente en uso para la sesión.
Devuelve
Un diccionario con información sobre la cuenta actualmente en la sesión.
Tipo de retorno
[d] ictstr, str | Ninguno
active_instance
backend
backend(name, instance=None, use_fractional_gates=False, calibration_id=None)
Devuelve un único backend que coincida con el filtrado especificado.
Ten en cuenta que la disponibilidad del backend solo se comprueba al enviar el circuito. Para comprobar el estado del backend con antelación, utiliza el status() método del objeto backend:
from qiskit_ibm_runtime import QiskitRuntimeService
service = QiskitRuntimeService()
backend = service.backend()
status = backend.status()
assert status.operational and status.status_msg == "active"Parámetros
- name (str) – Nombre del backend.
- instance (str | None) – Especifique el CRN de la cuenta IBM Cloud.
- use_fractional_gates (bool | None) – Establece el valor en «True» para permitir que los backends incluyan puertas fraccionarias. Consulta la sección «Cuándo no utilizar puertas fraccionarias» para conocer las limitaciones.
- calibration_id (str | None) – El id de calibración utilizado para instanciar el backend.
Devuelve
Un backend que coincida con el filtrado.
Eleva
- QiskitBackendNotFoundError - si no se encuentra ningún backend.
- IBMInputValueError – si se solicitan puertas fraccionarias pero el backend no las admite.
Tipo de retorno
Programa de fondo
backends
backends(name=None, min_num_qubits=None, instance=None, dynamic_circuits=None, filters=None, *, use_fractional_gates=False, calibration_id=None, **kwargs)
Devuelve todos los backends accesibles a través de esta cuenta, sujetos a un filtrado opcional.
Parámetros
-
name (str | None) – Nombre del backend por el que filtrar.
-
min_num_qubits (int | None) – Número mínimo de qubits que debe tener el backend.
-
instance (str | None) – IBM Cloud cuenta CRN
-
dynamic_circuits (bool | None) – Filtrar por si el backend admite circuitos dinámicos.
-
filters (Callable[[ibm_backend.IBMBackend], bool] | None) –
Filtros más complejos, como las funciones lambda. Por ejemplo:
QiskitRuntimeService.backends( filters=lambda backend: ( (status := backend.status()).operational and status.status_msg == "active" ) )solo mostrará los backends que estén operativos y activos.
-
use_fractional_gates (bool | None) – Establece True para permitir que los backends incluyan puertas fraccionarias. Tenga en cuenta que ahora nuestros backends admiten circuitos dinámicos y puertas fraccionarias simultáneamente. Ya no es necesario desactivar este indicador cuando se utilizan circuitos dinámicos (por ejemplo,
if_else) en su algoritmo. Las instrucciones de flujo de control no se eliminan del backend cuando este indicador se establece en True. SiNone, entonces tanto las puertas fraccionarias como las operaciones de flujo de control se incluyen en los backends. -
calibration_id (str | None) – El id de calibración utilizado para instanciar el backend. Sólo debe utilizarse cuando se selecciona un único backend, ya que el id de calibración se define por backend.
-
**kwargs* (Cualquiera* ) -
Filtros simples que requieren un valor específico para un atributo en la configuración o el estado del backend. Ejemplos:
# 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)Para obtener la lista completa de atributos del backend, consulte la documentación de la clase IBMBackend
Devuelve
La lista de backends disponibles que coinciden con el filtro.
Eleva
- IBMInputValueError - Si una entrada no es válida.
- QiskitBackendNotFoundError - Si el backend no está en ninguna instancia.
Tipo de retorno
lista[ ibm_backend.IBMBackend ]
delete_account
static delete_account(filename=None, name=None, channel=None)
Borrar del disco una cuenta guardada.
Parámetros
- filename (str | None) – Nombre del fichero del que se va a borrar la cuenta.
- name (str | None) – Nombre de la cuenta guardada que se desea eliminar.
- channel (ChannelType | None) – Tipo de canal de la cuenta predeterminada que se va a eliminar. Se ignora si se indica el nombre de la cuenta.
Devuelve
True si la cuenta ha sido eliminada. False si no se ha encontrado ninguna cuenta.
Tipo de retorno
bool
delete_job
delete_job(job_id)
Eliminar un trabajo en tiempo de ejecución.
Tenga en cuenta que esta operación no se puede revertir.
Parámetros
job_id (str) – ID del trabajo que se va a eliminar.
Eleva
- RuntimeJobNotFound – El puesto no existe.
- IBMRuntimeError – El método no es compatible.
Tipo de retorno
Ninguna
instances
instances()
Devuelve una lista de las instancias disponibles para la cuenta activa.
Devuelve una lista que contiene una serie de diccionarios con los siguientes identificadores por instancia: «crn», «plan», «name».
Devuelve
Una lista con las instancias disponibles para la cuenta activa.
Tipo de retorno
Sequence[ [dic] tstr, Any]
job
job(job_id)
Recuperar un trabajo en tiempo de ejecución.
Parámetros
job_id (str) – ID del puesto.
Devuelve
Trabajo en tiempo de ejecución recuperado.
Eleva
- RuntimeJobNotFound - Si el trabajo no existe.
- IBMRuntimeError - Si la solicitud falla.
Tipo de retorno
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)
Recupera todos los trabajos en tiempo de ejecución, sujetos a un filtrado opcional.
Parámetros
- limit (int | None) – Número de trabajos a recuperar.
Nonesignifica que no hay límite. - skip (int) – Índice inicial para la recuperación de trabajos.
- backend_name (str | None) – Nombre del backend del que recuperar los trabajos.
- pending (bool | None) – Filtrar por estado de trabajo pendiente. Si
True, se incluyen los trabajos 'QUEUED' y 'RUNNING'. SiFalse, se incluyen los trabajos 'DONE', 'CANCELLED' y 'ERROR'. - program_id (str | None) – Filtrar por ID de programa.
- instance (str | None) – Filtrar por IBM Cloud instance crn.
- job_tags (list[str] | None) – Filtrar por etiquetas asignadas a los trabajos. Los trabajos coincidentes están asociados a todas las etiquetas.
- session_id (str | None) – Filtrar por identificador de sesión. Todos los trabajos de la sesión se devolverán en orden decreciente de la fecha de creación del trabajo.
- created_after (datetime | None) – Filtrar por la fecha de inicio dada, en hora local. Se utiliza para buscar trabajos cuya fecha de creación sea posterior (mayor o igual) a esta fecha/hora local.
- created_before (datetime | None) – Filtrar por la fecha final dada, en hora local. Se utiliza para buscar trabajos cuya fecha de creación sea anterior (menor o igual que) a esta fecha/hora local.
- descending (bool) – Si
True, devuelve los trabajos en orden descendente de la fecha de creación del trabajo (es decir, el más reciente primero) hasta que se alcanza el límite.
Devuelve
Una lista de trabajos en tiempo de ejecución.
Eleva
IBMInputValueError - Si un valor de entrada no es válido.
Tipo de retorno
lista[ RuntimeJobV2 ]
least_busy
least_busy(min_num_qubits=None, instance=None, filters=None, use_fractional_gates=False, **kwargs)
Devuelve el backend disponible menos ocupado.
Parámetros
-
min_num_qubits (int | None) – Número mínimo de qubits que debe tener el backend.
-
instance (str | None) – IBM Cloud cuenta CRN.
-
filters (Callable[[ibm_backend.IBMBackend], bool] | None) –
Los filtros pueden definirse como para el
backends()método. Un ejemplo para obtener los backends operativos con 5 qubits:QiskitRuntimeService.least_busy(n_qubits=5, operational=True) -
use_fractional_gates (bool | None) –
TrueEn este caso, solo se tienen en cuenta los backends que incluyen puertas fraccionarias, y estas se incluyen en el backend devuelto. Consulta la sección «Cuándo no utilizar puertas fraccionarias» para conocer las limitaciones. -
kwargs (Any) – Argumentos adicionales pasados a la consulta del backend.
Devuelve
El backend con el menor número de trabajos pendientes.
Eleva
QiskitBackendNotFoundError - Si ningún backend coincide con los criterios.
Tipo de retorno
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)
Guarde la cuenta en el disco para utilizarla en el futuro.
Parámetros
- token (str | None) – IBM Cloud Clave API.
- url (str | None) – La API URL. Por defecto https://cloud.ibm.com.
- instance (str | None) – Este es un parámetro opcional que permite especificar el nombre del servicio o de CRN. Si se configura, definirá una instancia predeterminada para la instanciación del servicio; si no se configura, el servicio recuperará todas las instancias accesibles dentro de la cuenta. Establece el valor en
"auto"para guardar explícitamente la selección automática como preferencia, lo que suprime la advertencia «instancia no definida» en las instanciaciones posteriores. - channel (ChannelType | None) – Tipo de canal.
ibm_cloudoibm_quantum_platform. - filename (str | None) – Ruta completa del archivo donde se guarda la cuenta.
- name (str | None) – Nombre de la cuenta a guardar.
- proxies (dict | None) – Configuración del servidor proxy. Las claves opcionales admitidas son
urls(un diccionario que asocia el protocolo o el protocolo y el host a la dirección URL del proxy, tal y como se describe en https://requests.readthedocs.io/en/latest/api/#requests.Session.proxies ),password_ntlm``username_ntlm(nombre de usuario y contraseña para habilitar la autenticación de usuario NTLM) - verify (bool | None) – Verifique el certificado TLS del servidor.
- overwrite (bool | None) –
Truesi la cuenta existente debe sobrescribirse. - set_as_default (bool | None) – Si
True, la cuenta se guarda en filename, como cuenta por defecto. - private_endpoint (bool | None) – Conéctese a la API privada URL.
- region (RegionType | None) – Establece una preferencia de región. us-east o eu-de. Se dará prioridad a una instancia de esta región si no se especifica ninguna instancia.
- plans_preference (PlanType | None) – Una lista de nombres de planes de cuentas (
open,premium, etc.), ordenados por preferencia. Se dará prioridad a la instancia que tenga el primer valor de la lista y solo se tendrán en cuenta las instancias con los nombres de plan indicados. Por ejemplo, si quieres evitar utilizar tus cuentas premium, solo tienes que indicarlo"open"para que se utilicen únicamente tus instancias de plan abierto.plans_preferencese ignora si se especifica uninstance. - tags (list[str] | None) – Establezca una lista de etiquetas para filtrar las instancias disponibles. Las instancias con estas etiquetas tendrán prioridad si no se pasa una instancia.
Tipo de retorno
Ninguna
saved_accounts
static saved_accounts(default=None, channel=None, filename=None, name=None)
Lista las cuentas guardadas en disco.
Parámetros
- default (bool | None) – Si se establece en True, sólo se devuelven las cuentas por defecto.
- channel (ChannelType | None) – Canal type.\
\ibm_cloud`` oibm_quantum_platform. - filename (str | None) – Nombre del fichero cuyas cuentas se devuelven.
- name (str | None) – Si se establece, sólo se devuelven las cuentas con el nombre dado.
Devuelve
Un diccionario con información sobre las cuentas guardadas en disco.
Eleva
ValueError - Si se encuentra una cuenta no válida en el disco.
Tipo de retorno
dict
usage
usage()
Devuelve información de uso de la instancia activa actual.
Devuelve
Dict con detalles de uso.
Tipo de retorno
dict [str, Cualquiera]