Skip to main content
IBM Quantum Platform

Inicialice su cuenta de servicio Qiskit Runtime

Antes de utilizar Qiskit Runtime, tiene que inicializar (instanciar) su cuenta enviando (cargando) las credenciales. Estas credenciales pueden enviarse manualmente cada vez que inicialice el servicio Qiskit Runtime, o puede guardarlas para reutilizarlas.

Notas

Antes de empezar

Asegúrese de haber completado estos pasos:

  1. Asegúrese de que es miembro de una cuenta IBM Cloud. Consulte las instrucciones para configurar su cuenta en IBM Cloud.
  2. Crear (o tener acceso a) al menos una instancia. Sigue estos pasos para verificarlo:
    1. Iniciar sesión en IBM Quantum Platform.
    2. Asegúrese de que la cuenta y la región correctas están seleccionadas en el conmutador de cuentas de la cabecera.
    3. Si se muestra una o más instancias, ya ha completado este paso. De lo contrario, cree una instancia.
  3. Asegúrese de que está trabajando en un entorno activo de Python con Qiskit SDK y Qiskit Runtime instalados.
  4. Active el entorno virtual Python y ejecute Python en su entorno virtual.

Encuentre sus credenciales de acceso

  1. Encuentre su clave API (también denominada token API ). En el panel de control, cree su clave API y cópiela en un lugar seguro para poder utilizarla en la autenticación. La ficha no volverá a ser visible. Tenga en cuenta que puede utilizar una única clave API para conectarse a cualquier región.
  2. Opcional: Busque la instancia que desea utilizar en la página Instancias. Pase el ratón por encima de su CRN, haga clic en el icono para copiarlo y guárdelo en una ubicación segura para poder utilizarlo para identificar la instancia.

Conecta Qiskit con tu instancia del servicio Qiskit Runtime

Note

Estas instrucciones están diseñadas para qiskit_ibm_runtime v0.42 o posterior. Algunas funciones no están habilitadas en versiones anteriores de qiskit_ibm_runtime. En estos casos, siempre debe proporcionar un valor para channel, token, y instance, ya sea explícitamente o a través de una cuenta guardada.

El código básico para conectar Qiskit con tu instancia de servicio Qiskit Runtime es el siguiente. Sin embargo, hay varias formas de personalizar las opciones de QiskitRuntimeService , en función de sus necesidades. Estas opciones se describen en las secciones siguientes.

from qiskit_ibm_runtime import QiskitRuntimeService

service = QiskitRuntimeService(channel=<channel>,
            # For `token`, use the 44-character API_KEY you created 
            # and saved from the IBM Quantum Platform dashboard
            token=<your-API_KEY>, 
            instance=<instance_CRN>)
Note

El canal por defecto es ibm_quantum_platform. Como éste es casi siempre el canal adecuado, no se incluye en los ejemplos.

Ruta de inicio rápido: Especifique las credenciales explícitamente

La forma más rápida de poner en marcha una instancia de QiskitRuntimeService es el método de instanciación directa: proporcione explícitamente el token de la API (clave) y el CRN (identificador de instancia) cada vez que necesite inicializar el servicio Qiskit Runtime. Consulte Buscar sus credenciales de acceso si es necesario.

from qiskit_ibm_runtime import QiskitRuntimeService

# For `token`, use the 44-character API_KEY you created 
# and saved from the IBM Quantum Platform dashboard
service = QiskitRuntimeService(token=<cloud_api_key>, 
            instance=<instance_CRN>)

Esta ruta es fiable, pero puede resultar tediosa si necesita cargar los mismos datos repetidamente. Para evitar cargar tus credenciales varias veces, si estás trabajando en un entorno de confianza Python (como en un portátil o estación de trabajo personal), puedes utilizar credenciales de cuenta guardadas, como se describe en la siguiente sección.

Aunque el parámetro de entrada instance es opcional, se recomienda proporcionar siempre esta información, a menos que desee utilizar un único servicio para trabajar con varias instancias. En esta situación, consulte la sección de selección automática de instancias.

Ruta de inicio rápido: Especifique las credenciales guardadas

Si ya ha guardado sus credenciales, utilice el siguiente código para aplicar sus credenciales predeterminadas. Para obtener instrucciones sobre cómo guardar las credenciales, consulte Guardar sus credenciales de acceso.

from qiskit_ibm_runtime import QiskitRuntimeService

# run every time you need the service
service = QiskitRuntimeService()
...

Si nombró uno o más conjuntos de credenciales - por ejemplo, para acceso abierto y premium - utilice el siguiente código para utilizar un conjunto de credenciales nombradas.

from qiskit_ibm_runtime import QiskitRuntimeService

# run every time you need the service
service = QiskitRuntimeService(name="<name_of_saved_credentials>")
...

Consideraciones al cargar credenciales guardadas

  • Si inicializa un servicio con token y name, se ignora token y se cargan los datos guardados de la cuenta name .

    En el siguiente ejemplo, el servicio carga los detalles desde account_A y no utiliza token_B:

    from qiskit_ibm_runtime import QiskitRuntimeService
    
    service = QiskitRuntimeService(token="token_B", name="account_A")
  • Si proporciona un name y un instance al inicializar un servicio, éste intenta cargar la cuenta name y conectarse al instance especificado. Si hay algún conflicto, se emite una advertencia.

    En el siguiente ejemplo, el servicio intenta cargar las credenciales para account_A y utilizar la instancia CRN_B - incluso si hay una instancia diferente especificada en account_A:

    from qiskit_ibm_runtime import QiskitRuntimeService
    
    service = QiskitRuntimeService(instance="CRN_B", name="account_A")
  • El servicio intenta cargar la cuenta guardada por defecto sólo si no proporcionas un token o name al inicializar un servicio. Sin embargo, si se proporciona explícitamente un instance , el servicio intenta conectarse a esa instancia utilizando las credenciales predeterminadas. Si hay algún conflicto, se emite una advertencia.

    En el siguiente ejemplo, el servicio intenta cargar las credenciales por defecto y utilizar la instancia CRN_B - incluso si hay una instancia diferente especificada en la cuenta por defecto:

    from qiskit_ibm_runtime import QiskitRuntimeService
    
    service = QiskitRuntimeService(instance="CRN_B")
  • Si guarda varios conjuntos de credenciales pero no especifica ninguno al inicializar el servicio y no hay ninguna cuenta guardada por defecto, se utilizará aquella cuyo nombre aparezca en último lugar por orden alfabético.

    En el siguiente ejemplo, el usuario guardó las cuentas denominadas "mi_premium" y "mi_abierto", pero no marcó ninguna de ellas como dfault. A continuación, inicializaron el servicio utilizando el siguiente código. En este caso, se utilizan las credenciales "mi_premio":

    from qiskit_ibm_runtime import QiskitRuntimeService
    
    service = QiskitRuntimeService()
  • Si sigue recibiendo el error «401 No autorizado», es posible que esté intentando utilizar un token de portador en lugar de su clave API.

Seleccionar automáticamente la instancia

Si proporciona un token pero no proporciona un CRN de instancia al instanciar el servicio, QiskitRuntimeService se autentica en la cuenta identificada por el token y utiliza la selección automática de instancias para elegir la instancia más relevante para la tarea solicitada. Si tiene varias instancias disponibles en su cuenta, el servicio elige automáticamente entre las instancias disponibles, en función del recurso solicitado y de estas opciones de QiskitRuntimeService (si están configuradas): plans_preference, region, tags.

  • plans_preference: Los tipos de planes de instancia a priorizar. Por ejemplo, si se introduce [open] sólo estarán disponibles las instancias de Plan abierto. Los valores aceptados son open, premium, pay-as-you-go, flex y on-prem. Si no se especifica plans_preference , los planes gratuitos tienen prioridad sobre los de pago.
  • region: La región de la instancia. Los valores aceptados son us-east y eu-de.
  • tags: Las etiquetas de instancia. Acepta una lista de cadenas de nombres de etiquetas.
Note

Puede configurar sus credenciales guardadas para seleccionar automáticamente una instancia.

La instancia se encuentra y se utiliza en este orden:

  1. Si su cuenta sólo tiene acceso a una instancia, ésta se selecciona por defecto.
  2. Si se utilizan credenciales guardadas y se ha especificado una instancia con las credenciales, se utiliza esa instancia. Consulte las consideraciones al cargar credenciales guardadas.
  3. Si su cuenta tiene varias instancias que pueden acceder a la QPU solicitada, el sistema utiliza sus preferencias de plan especificadas para elegir un plan y una instancia. En Qiskit Runtime v0.42 y posteriores, los planes gratuitos tienen prioridad por defecto.
  4. Si su cuenta tiene acceso a varias instancias pero sólo una puede acceder a la QPU solicitada, se selecciona la instancia con acceso. Si esta instancia no está asociada a un plan gratuito, se incurrirá en un coste.

Ejemplos

En este ejemplo, el servicio busca todas las instancias disponibles en la cuenta para encontrar las que pueden acceder al backend especificado:

service = QiskitRuntimeService(token=<your-API_KEY>)

En este ejemplo, el servicio busca todas las instancias disponibles para la cuenta en la región de la UE para encontrar las que pueden acceder al backend especificado:

service = QiskitRuntimeService(token=<your-API_KEY>, region="eu-de")

En este ejemplo, el servicio busca en todas las instancias disponibles para la cuenta y etiquetadas como services para encontrar las que pueden acceder al backend especificado:

service = QiskitRuntimeService(token=<your-API_KEY>, tags=['services'])

En este ejemplo, el servicio busca todas las instancias premium y abiertas disponibles en la cuenta para encontrar las que pueden acceder al backend especificado. Si un backend se encuentra tanto en una instancia del Plan Premium como en una del Plan Open, se da prioridad a la instancia del Plan Premium porque premium se especifica en primer lugar en plans_preference.

service = QiskitRuntimeService(token=<your-API_KEY>, 
    plans_preference=['premium', 'open'])

Determinar qué instancia se eligió

La instancia seleccionada se devuelve como advertencia. Además, puede ejecutar service.active_instance() para determinar la instancia activa.

Pruebas locales con Qiskit Runtime

La clase QiskitRuntimeService puede inicializarse con channel=local para realizar una simulación local. En este caso, no se requiere autenticación y no es necesario proporcionar valores para token o instance. Por lo tanto, no se recomienda guardar una cuenta local. En su lugar, puede realizar una instanciación directa:

from qiskit_ibm_runtime import QiskitRuntimeService

# Initialize for local testing

service = QiskitRuntimeService(channel="local")

Próximos pasos

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