Skip to main content
IBM Quantum Platform

QiskitRuntimeService

class QiskitRuntimeService(*args, **kwargs)

GitHub

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 desde filename,

    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 desde

    el archivo de configuración, incluyendo channel, token, instance, region plans_preference,, y los parámetros de configuración avanzados: url, url_resolver, private_endpoint, verify, y proxies. instanceNota importante : Si se proporciona un valor explícito instance durante la instanciación, este sobrescribirá el valor del archivo cargado.

  • Si no name se especifica: si channel se especifica, el servicio cargará el

    cuenta 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() con set_as_default=True.

Parámetros

  • canal : cadena que identifica la plataforma de servicios. El valor ibm_quantum_platform predeterminado es, pero también puede tomar local los valores y ibm_cloud . ibm_cloud es una opción heredada y apunta a la misma ruta que ibm_quantum_platform, el valor recomendado es ibm\_quantum\_platform\. Si local se 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_cloud era el identificador de la plataforma heredada IBM Cloud, y su URL se redirigirá a la nueva ibm_quantum_platform direcció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.com para los canales no locales que acceden a IBM Quantum Platform (por ejemplo, ibm_quantum_platform, ibm_cloud). Este URL es procesado por un url_resolver para 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 a https://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_cloud y ibm_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 mediante save_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 son us-east o eu-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()

GitHub

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

active_instance()

GitHub

Devuelve el crn de la instancia activa actual.

Tipo de retorno

str

backend

backend(name, instance=None, use_fractional_gates=False, calibration_id=None)

GitHub

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)

GitHub

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. Si None, 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)

GitHub

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)

GitHub

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()

GitHub

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)

GitHub

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

RuntimeJobV2

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)

GitHub

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. None significa 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'. Si False, 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)

GitHub

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

ibm_backend.IBMBackend

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)

GitHub

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_cloud o ibm_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) – True si 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_preference se ignora si se especifica un instance .
  • 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)

GitHub

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`` o ibm_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()

GitHub

Devuelve información de uso de la instancia activa actual.

Devuelve

Dict con detalles de uso.

Tipo de retorno

dict [str, Cualquiera]

¿Le ha resultado útil esta página?
Informe de un error, de una errata o solicite contenido en GitHub.