Skip to main content
IBM Quantum Platform

Inicialize sua conta de serviço Qiskit Runtime

Antes de usar o Qiskit Runtime, você precisa inicializar (instanciar) sua conta enviando (carregando) as credenciais. Essas credenciais podem ser enviadas manualmente sempre que você inicializar o serviço Qiskit Runtime, ou você pode salvá-las para reutilização.

Notas

Antes de iniciar

Certifique-se de que você concluiu essas etapas:

  1. Certifique-se de que você seja membro de uma conta IBM Cloud. Consulte Configurar sua conta IBM Cloud para obter instruções.
  2. Criar (ou ter acesso a) pelo menos uma instância. Siga estas etapas para verificar:
    1. Faça login no IBM Quantum Platform.
    2. Certifique-se de que a conta e a região corretas estejam selecionadas no alternador de contas no cabeçalho.
    3. Se você tiver uma ou mais instâncias exibidas, esta etapa está concluída. Caso contrário, crie uma instância.
  3. Certifique-se de que está trabalhando em um ambiente ativo do Python com o Qiskit SDK e o Qiskit Runtime instalados.
  4. Ative o ambiente virtual Python e execute Python em seu ambiente virtual.

Encontre suas credenciais de acesso

  1. Encontre sua chave de API (também conhecida como token de API ). No painel, crie sua chave de API e copie-a em um local seguro para poder usá-la para autenticação. O token não ficará visível novamente. Observe que você pode usar uma única chave de API para se conectar a qualquer região.
  2. Opcional: Localize a instância que você deseja usar na página Instâncias. Passe o mouse sobre o CRN, clique no ícone para copiá-lo e salve-o em um local seguro para poder usá-lo para identificar a instância.

Conecte o Qiskit à sua instância do serviço Qiskit Runtime

Note

Essas instruções foram desenvolvidas para o site qiskit_ibm_runtime v0.42 ou posterior. Alguns recursos não estão habilitados em versões anteriores do site qiskit_ibm_runtime. Nesses casos, você deve sempre fornecer um valor para channel, token e instance, seja explicitamente ou por meio de uma conta salva.

A seguir, o código básico para conectar o Qiskit à sua instância de serviço Qiskit Runtime. No entanto, há várias maneiras diferentes de personalizar as opções do QiskitRuntimeService , dependendo de suas necessidades. Essas opções são descritas nas seções a seguir.

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

O canal padrão é ibm_quantum_platform. Como esse é quase sempre o canal adequado, ele não está incluído nos exemplos.

Caminho de início rápido: Especifique as credenciais explicitamente

A maneira mais rápida de colocar uma instância do QiskitRuntimeService em execução é o método de instanciação direta: forneça explicitamente o token da API (chave) e o CRN (identificador de instância) sempre que precisar inicializar o serviço Qiskit Runtime. Consulte Encontre suas credenciais de acesso, se necessário.

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

Esse caminho é confiável, mas pode ser tedioso se você precisar carregar os mesmos detalhes repetidamente. Para evitar carregar suas credenciais várias vezes, se estiver trabalhando em um ambiente Python confiável (como em um laptop ou estação de trabalho pessoal), é possível usar credenciais de conta salvas, conforme descrito na seção a seguir.

Embora o parâmetro de entrada instance seja opcional, é recomendável que você sempre forneça essas informações, a menos que queira usar um único serviço para trabalhar com várias instâncias. Nessa situação, consulte a seção de seleção automática de instâncias.

Caminho de início rápido: Especifique as credenciais salvas

Se você já salvou suas credenciais, use o código a seguir para aplicar suas credenciais padrão. Para obter instruções sobre como salvar credenciais, consulte Salve suas credenciais de acesso.

from qiskit_ibm_runtime import QiskitRuntimeService

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

Se você nomeou um ou mais conjuntos de credenciais - por exemplo, para acesso aberto e premium - use o código a seguir para usar um conjunto de credenciais nomeadas.

from qiskit_ibm_runtime import QiskitRuntimeService

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

Considerações ao carregar credenciais salvas

  • Se você inicializar um serviço com token e name, o token será ignorado e os detalhes salvos da conta name serão carregados.

    No exemplo a seguir, o serviço carrega os detalhes de account_A e não usa token_B:

    from qiskit_ibm_runtime import QiskitRuntimeService
    
    service = QiskitRuntimeService(token="token_B", name="account_A")
  • Se você fornecer um name e um instance ao inicializar um serviço, o serviço tentará carregar a conta name e se conectar ao instance especificado. Se houver algum conflito, será emitido um aviso.

    No exemplo a seguir, o serviço tenta carregar as credenciais para account_A e usar a instância CRN_B , mesmo que haja uma instância diferente especificada em account_A:

    from qiskit_ibm_runtime import QiskitRuntimeService
    
    service = QiskitRuntimeService(instance="CRN_B", name="account_A")
  • O serviço tenta carregar a conta salva padrão somente se você não fornecer um token ou name ao inicializar um serviço. No entanto, se um instance for fornecido explicitamente, o serviço tentará se conectar a essa instância usando as credenciais padrão. Se houver algum conflito, será emitido um aviso.

    No exemplo a seguir, o serviço tenta carregar as credenciais padrão e usar a instância CRN_B , mesmo que haja uma instância diferente especificada na conta padrão:

    from qiskit_ibm_runtime import QiskitRuntimeService
    
    service = QiskitRuntimeService(instance="CRN_B")
  • Se você salvar vários conjuntos de credenciais, mas não especificar um deles ao inicializar o serviço, e se não houver uma conta salva padrão, será usada aquela cujo nome estiver em último lugar na ordem alfabética.

    No exemplo a seguir, o usuário salvou contas denominadas "my_premium" e "my_open", mas não marcou nenhuma delas como padrão. Em seguida, eles inicializaram o serviço usando o seguinte código. Nesse caso, são usadas as credenciais "my_premium":

    from qiskit_ibm_runtime import QiskitRuntimeService
    
    service = QiskitRuntimeService()
  • Se você estiver recebendo persistentemente o erro “401 Não autorizado”, talvez esteja tentando usar um token de portador em vez de sua chave API.

Selecione automaticamente a instância

Se você fornecer um token, mas não fornecer um CRN de instância ao instanciar o serviço, o site QiskitRuntimeService se autenticará na conta identificada pelo token e usará a seleção automática de instância para escolher a instância mais relevante para a tarefa solicitada. Se você tiver várias instâncias disponíveis em sua conta, o serviço escolherá automaticamente entre as instâncias disponíveis, dependendo do recurso solicitado e destas opções de QiskitRuntimeService (se definidas): plans_preference, region, tags.

  • plans_preference: Os tipos de planos de instância a serem priorizados. Por exemplo, se [open] for passado, somente as instâncias do Open Plan estarão disponíveis. Os valores aceitos são open, premium, pay-as-you-go, flex, e on-prem. Se plans_preference não for especificado, os planos gratuitos serão priorizados em relação aos planos pagos.
  • region: A região da instância. Os valores aceitos são us-east e eu-de.
  • tags: As tags da instância. Aceita uma lista de cadeias de nomes de tags.
Note

Você pode configurar suas credenciais salvas para selecionar automaticamente uma instância.

A instância é encontrada e usada nessa ordem:

  1. Se sua conta tiver acesso a apenas uma instância, ela será selecionada por padrão.
  2. Se credenciais salvas estiverem sendo usadas e uma instância tiver sido especificada com as credenciais, essa instância será usada. Consulte Considerações ao carregar credenciais salvas.
  3. Se a sua conta tiver várias instâncias que possam acessar a QPU solicitada, o sistema usará suas preferências de plano especificadas para escolher um plano e uma instância. Para Qiskit Runtime v0.42 e posteriores, os planos gratuitos são priorizados por padrão.
  4. Se a sua conta tiver acesso a várias instâncias, mas apenas uma puder acessar a QPU solicitada, a instância com acesso será selecionada. Se essa instância não estiver associada a um plano gratuito, será cobrado um custo.

Exemplos

Neste exemplo, o serviço pesquisa todas as instâncias disponíveis para a conta para encontrar aquelas que podem acessar o backend especificado:

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

Neste exemplo, o serviço pesquisa todas as instâncias disponíveis para a conta na região da UE para encontrar aquelas que podem acessar o backend especificado:

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

Neste exemplo, o serviço pesquisa todas as instâncias disponíveis para a conta e marcadas como services para encontrar aquelas que podem acessar o backend especificado:

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

Neste exemplo, o serviço pesquisa todas as instâncias premium e abertas que estão disponíveis para a conta para encontrar aquelas que podem acessar o backend especificado. Se um backend estiver em uma instância Premium e em uma instância Open Plan, a instância Premium Plan será priorizada porque premium é especificado primeiro em plans_preference.

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

Determine qual instância foi escolhida

A instância selecionada é retornada como um aviso. Além disso, você pode executar o site service.active_instance() para determinar a instância ativa.

Teste local com Qiskit Runtime

A classe QiskitRuntimeService pode ser inicializada com channel=local para realizar a simulação local. Nesse caso, a autenticação não é necessária e não há necessidade de fornecer valores para token ou instance. Portanto, não é recomendável que você salve uma conta local. Em vez disso, você pode fazer a instanciação direta:

from qiskit_ibm_runtime import QiskitRuntimeService

# Initialize for local testing

service = QiskitRuntimeService(channel="local")

Próximas etapas

Esta página foi útil?
Relate um bug, erro de digitação ou solicite conteúdo no GitHub.