Skip to main content
IBM Quantum Platform

QiskitRuntimeService

class QiskitRuntimeService(*args, **kwargs)

GitHub

Bases: object

Classe para interagir com o serviço Qiskit Runtime.

Usos recomendados:

  • Instanciação direta:

    from qiskit_ibm_runtime import QiskitRuntimeService
    
    service = QiskitRuntimeService(
        channel="ibm_quantum_platform", # optional
        token="API_KEY",
        instance="CRN" # recommended
        )
  • Salvando a conta padrão:

    from qiskit_ibm_runtime import QiskitRuntimeService
    
    QiskitRuntimeService.save_account(
        token="API_KEY",
        instance="CRN",
        set_as_default = True
        )
    
    service = QiskitRuntimeService()

As informações mínimas necessárias para a autenticação do serviço em um canal não local são token. O canal local não requer autenticação. Para canais não locais, é recomendável sempre fornecer o endereço instance relevante para minimizar as chamadas de API. Se um instance não for definido, o serviço buscará todas as instâncias acessíveis na conta, filtradas por region, plans_preference e tags. Se plans_preference não estiver definido, as instâncias gratuitas e de avaliação terão prioridade sobre as instâncias pagas.

Ao usar várias instâncias, QiskitRuntimeService o sistema gerenciará internamente qual instância está ativa em um determinado momento. Métodos como backend(), backends(), job() e jobs() podem resultar na alteração da instância ativa. Recomenda-se usar o active_instance() método para verificar qual instância está ativa ou utilizar um objeto separado QiskitRuntimeService por instância para um controle mais preciso.

Observe também que somente uma conta por token de API pode ser usada. O token de API está vinculado à conta em que foi criado. Se quiser usar várias contas, você deverá criar vários tokens de API.

O serviço tentará carregar uma conta do arquivo se (a) nenhum token explícito tiver sido fornecido durante a instanciação ou (b) um name for especificado, mesmo que um token explícito tenha sido fornecido ao construtor do serviço. A conta será selecionada com base nos seguintes critérios:

  • Se for especificado um filename , os detalhes da conta serão carregados de filename,

    caso contrário, serão carregados a partir do arquivo de configuração padrão.

  • Se for especificado um name , os detalhes da conta correspondente serão carregados de

    o arquivo de configuração, incluindo channel, token, instance, region plans_preference,, e os parâmetros de configuração avançados: url, url_resolver, private_endpoint, verify, e proxies. instanceObservação importante : um valor explícito instance fornecido durante a instanciação substituirá o valor do arquivo carregado.

  • Se não name for especificado: se channel for especificado, o serviço carregará o

    conta padrão associada a esse canal no arquivo de configuração. Caso contrário, será utilizada a conta padrão geral, definida ao chamar save_account() com set_as_default=True.

Parâmetros

  • canal – String que identifica a plataforma de serviço. Esse valor é definido como ibm_quantum_platform por padrão, mas também pode assumir local os valores e ibm_cloud . ibm_cloud é uma opção legada e aponta para o mesmo caminho que ibm_quantum_platform, sendo que o valor recomendado é ibm\_quantum\_platform\. Se local for selecionado, será utilizado o modo de teste local, e as consultas primitivas serão executadas em um simulador local. Para mais detalhes, consulte a documentação sobre o modo de teste local em Qiskit Runtime. Para modos não locais, o canal é usado para determinar o valor padrão da API URL. ibm_cloud era o identificador da plataforma antiga IBM Cloud, e seu endereço URL será redirecionado para o novo ibm_quantum_platform endereço.
  • token – uma chave de API d IBM Cloud. É necessário fornecer uma chave de API para a autenticação no IQP. Se não for fornecida explicitamente, a conta salva por padrão será consultada para obter essa chave de API.
  • url – API base URL. O valor padrão é https://cloud.ibm.com para canais não locais que acessam o IBM Quantum Platform (por exemplo, ibm_quantum_platform, ibm_cloud). Esse URL é processado por um url_resolver para encaminhar as solicitações ao ponto de entrada correto do serviço. url_resolver``urlSe você fornecer um valor personalizado, também deverá fornecer um valor correspondente. O resolvedor padrão reescreve o endereço base URL para https://quantum.cloud.ibm.com/api/v[x].
  • nome do arquivo – Caminho completo do arquivo onde a conta é criada. Padrão: _DEFAULT_ACCOUNT_CONFIG_JSON_FILE.
  • nome – Nome da conta a ser carregada a partir do arquivo.
  • instância – A instância do serviço a ser utilizada. Para ibm_cloud e ibm_quantum_platform, trata-se do nome do recurso na nuvem ( CRN ) ou do nome do serviço. Se definido, ele definirá uma instância para a instanciação do serviço; caso contrário, o serviço buscará todas as instâncias acessíveis na conta, de acordo com os critérios de filtragem especificados. Passe "auto" para solicitar explicitamente a seleção automática sem acionar o aviso “instância não definida”. Esse valor também pode ser salvo no arquivo da conta por meio de save_account() para que entre em vigor automaticamente a cada instância.
  • proxies – Configuração de proxy. As chaves opcionais suportadas são urls (um protocolo de mapeamento de dicionário ou protocolo e host para o endereço URL do proxy, documentado em https://requests.readthedocs.io/en/latest/api/#requests.Session.proxies ), username_ntlm, password_ntlm (nome de usuário e senha para habilitar a autenticação de usuário NTLM)
  • verificar – Se deve verificar o certificado TLS do servidor.
  • private_endpoint – Conecte-se à API privada URL.
  • url_resolver – Função usada para resolver o endereço URL em tempo de execução. Caso não seja fornecido, será utilizado um resolvedor padrão para acessar diferentes pontos de extremidade do serviço.
  • região – Defina uma preferência de região para a seleção automática de instâncias. Este argumento é ignorado se for especificado um instance . Os valores aceitos são us-east ou eu-de. Uma instância com essa região terá prioridade caso não seja especificada nenhuma instância.
  • plans_preference – Uma lista de nomes de planos de conta ordenados por prioridade para a seleção automática de instâncias. Este argumento é ignorado se for especificado um instance . Serão consideradas apenas as instâncias com os nomes de plano indicados. Por exemplo, se você quiser evitar o uso de suas contas premium, basta especificar "open" que deseja usar apenas suas instâncias em plano aberto. Os valores aceitos incluem (mas não se limitam a): open, premium, flex, on-prem, pay-as-you-go.
  • tags – Defina uma lista de tags para filtrar as instâncias disponíveis para a seleção automática de instâncias. Este argumento é ignorado se for especificado um instance .

Retorna

Uma instância de QiskitRuntimeService ou QiskitRuntimeLocalService se o canal local estiver definido.

Aumentos

IBMInputValueError - Se uma entrada for inválida.

Crie uma QiskitRuntimeService instância.


Atributos

channel

Retorna o tipo de canal usado.

Retorna

O tipo de canal usado.


Métodos

active_account

active_account()

GitHub

Retorna a conta do IBM Quantum atualmente em uso para a sessão.

Retorna

Um dicionário com informações sobre a conta atualmente na sessão.

Tipo de retorno

[d] ictstr, str | Nenhum

active_instance

active_instance()

GitHub

Retorna o crn da instância ativa atual.

Tipo de retorno

str

backend

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

GitHub

Retorna um único backend que corresponde à filtragem especificada.

Observe que a disponibilidade do backend só é verificada no momento do envio do circuito. Para verificar o status do backend com antecedência, use o status() método no objeto do 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) – Nome do backend.
  • instance (str | None) – Especifique o CRN da conta IBM Cloud.
  • use_fractional_gates (bool | None) – Defina como True para permitir que os backends incluam portas fracionárias. Consulte “Quando não usar portas fracionárias” para conhecer as restrições.
  • calibration_id (str | None) – O ID de calibração usado para instanciar o backend.

Retorna

Um backend que corresponde à filtragem.

Aumentos

  • QiskitBackendNotFoundError - se não for possível encontrar um backend.
  • IBMInputValueError – se forem solicitados portões fracionários, mas estes não forem suportados pelo backend.

Tipo de retorno

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)

GitHub

Retorna todos os back-ends acessíveis por meio dessa conta, sujeitos a filtragem opcional.

Parâmetros

  • name (str | None) – Nome do backend para filtrar.

  • min_num_qubits (int | None) – Número mínimo de qubits que o backend deve ter.

  • instance (str | None) – IBM Cloud conta CRN

  • dynamic_circuits (bool | None) – Filtrar por se o backend suporta circuitos dinâmicos.

  • filters (Callable[[ibm_backend.IBMBackend], bool] | None) –

    Filtros mais complexos, como funções lambda. Por exemplo:

    QiskitRuntimeService.backends(
        filters=lambda backend: (
            (status := backend.status()).operational
            and status.status_msg == "active"
        )
    )

    retornará apenas os back-ends que estiverem operacionais e ativos.

  • use_fractional_gates (bool | None) – Defina True para permitir que os backends incluam portas fracionárias. Observe que nossos backends agora suportam circuitos dinâmicos e portas fracionárias simultaneamente. Não é mais necessário desativar esse sinalizador ao usar recursos de circuitos dinâmicos (por exemplo, if_else) em seu algoritmo. As instruções de fluxo de controle não são removidas do backend quando esse sinalizador é definido como True. Se None, então tanto as portas fracionárias quanto as operações de fluxo de controle estão incluídas nos backends.

  • calibration_id (str | None) – O ID de calibração usado para instanciar o backend. Isso só deve ser usado ao selecionar um único backend, pois o ID de calibração é definido por backend.

  • **kwargs* (Any* ) -

    Filtros simples que exigem um valor específico para um atributo na configuração ou no status do backend. Exemplos:

    # 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 obter a lista completa de atributos de backend, consulte a documentação da classe IBMBackend

Retorna

A lista de backends disponíveis que correspondem ao filtro.

Aumentos

  • IBMInputValueError - Se uma entrada for inválida.
  • QiskitBackendNotFoundError - Se o backend não estiver em nenhuma instância.

Tipo de retorno

lista[ ibm_backend.IBMBackend ]

delete_account

static delete_account(filename=None, name=None, channel=None)

GitHub

Excluir uma conta salva do disco.

Parâmetros

  • filename (str | None) – Nome do arquivo do qual será excluída a conta.
  • name (str | None) – Nome da conta salva a ser excluída.
  • channel (ChannelType | None) – Tipo de canal da conta padrão a ser excluída. Será ignorado se o nome da conta for fornecido.

Retorna

True se a conta foi excluída. Falso se nenhuma conta foi encontrada.

Tipo de retorno

bool

delete_job

delete_job(job_id)

GitHub

Excluir uma tarefa de tempo de execução.

Observe que esta operação não pode ser revertida.

Parâmetros

job_id (str) – ID da tarefa a ser excluída.

Aumentos

  • RuntimeJobNotFound – O cargo não existe.
  • IBMRuntimeError – O método não é suportado.

Tipo de retorno

Nenhum

instances

instances()

GitHub

Retorna uma lista das instâncias disponíveis para a conta ativa.

Retorne uma lista que contenha uma série de dicionários com os seguintes identificadores de instância para cada instância: “crn”, “plan”, “name”.

Retorna

Uma lista com as instâncias disponíveis para a conta ativa.

Tipo de retorno

Sequence[ [dic] tstr, Any]

job

job(job_id)

GitHub

Recuperar um trabalho em tempo de execução.

Parâmetros

job_id (str) – ID do trabalho.

Retorna

Trabalho em tempo de execução recuperado.

Aumentos

  • RuntimeJobNotFound - Se o trabalho não existir.
  • IBMRuntimeError - Se a solicitação falhar.

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 os trabalhos em tempo de execução, sujeitos a filtragem opcional.

Parâmetros

  • limit (int | None) – Número de trabalhos a serem recuperados. None significa sem limite.
  • skip (int) – Índice inicial para a recuperação do trabalho.
  • backend_name (str | None) – Nome do backend do qual recuperar os trabalhos.
  • pending (bool | None) – Filtrar por estado pendente do trabalho. Se True, os trabalhos "QUEUED" e "RUNNING" serão incluídos. Se False, os trabalhos "DONE" (Concluído), "CANCELLED" (Cancelado) e "ERROR" (Erro) serão incluídos.
  • program_id (str | None) – Filtrar por ID do programa.
  • instance (str | None) – Filtrar por IBM Cloud instance crn.
  • job_tags (list[str] | None) – Filtrar por tags atribuídas às tarefas. Os trabalhos correspondentes estão associados a todas as etiquetas.
  • session_id (str | None) – Filtrar por id de sessão. Todos os trabalhos na sessão serão retornados em ordem decrescente da data de criação do trabalho.
  • created_after (datetime | None) – Filtrar pela data de início fornecida, em horário local. Isso é usado para localizar trabalhos cujas datas de criação são posteriores (maiores ou iguais) a essa data/hora local.
  • created_before (datetime | None) – Filtrar pela data final fornecida, em horário local. É usado para encontrar trabalhos cujas datas de criação sejam anteriores (menores ou iguais) a essa data/hora local.
  • descending (bool) – Se True, retorne os trabalhos em ordem decrescente da data de criação do trabalho (ou seja, o mais novo primeiro) até que o limite seja atingido.

Retorna

Uma lista de trabalhos em tempo de execução.

Aumentos

IBMInputValueError - Se um valor de entrada for inválido.

Tipo de retorno

lista[ RuntimeJobV2 ]

least_busy

least_busy(min_num_qubits=None, instance=None, filters=None, use_fractional_gates=False, **kwargs)

GitHub

Retorna o backend disponível menos ocupado.

Parâmetros

  • min_num_qubits (int | None) – Número mínimo de qubits que o backend deve ter.

  • instance (str | None) – IBM Cloud conta CRN.

  • filters (Callable[[ibm_backend.IBMBackend], bool] | None) –

    Os filtros podem ser definidos como para o método backends() método. Um exemplo para obter os backends operacionais com 5 qubits:

    QiskitRuntimeService.least_busy(n_qubits=5, operational=True)
  • use_fractional_gates (bool | None) –

    TrueNesse caso, apenas os backends que incluem portas fracionárias são considerados, e as portas fracionárias são incluídas no backend retornado. Consulte “Quando não usar portas fracionárias” para conhecer as restrições.

  • kwargs (Any) – Argumentos adicionais passados para a consulta do backend.

Retorna

O backend com o menor número de trabalhos pendentes.

Aumentos

QiskitBackendNotFoundError - Se nenhum backend corresponder aos critérios.

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

Salve a conta no disco para uso futuro.

Parâmetros

  • token (str | None) – IBM Cloud Chave de API.
  • url (str | None) – A API URL. O padrão é https://cloud.ibm.com.
  • instance (str | None) – Este é um parâmetro opcional para especificar o CRN ou o nome do serviço. Se definido, ele determinará uma instância padrão para a instanciação do serviço; caso contrário, o serviço buscará todas as instâncias acessíveis na conta. Defina como "auto" para salvar explicitamente a seleção automática como preferência, o que suprime o aviso “instância não definida” nas instanciações subsequentes.
  • channel (ChannelType | None) – Tipo de canal. ibm_cloud ou ibm_quantum_platform.
  • filename (str | None) – Caminho completo do arquivo em que a conta é salva.
  • name (str | None) – Nome da conta a ser salva.
  • proxies (dict | None) – Configuração de proxy. As chaves opcionais suportadas são urls (um protocolo de mapeamento de dicionário ou protocolo e host para o endereço URL do proxy, documentado em https://requests.readthedocs.io/en/latest/api/#requests.Session.proxies ), username_ntlm, password_ntlm (nome de usuário e senha para habilitar a autenticação de usuário NTLM)
  • verify (bool | None) – Verifique o certificado TLS do servidor.
  • overwrite (bool | None) – True se a conta existente tiver que ser substituída.
  • set_as_default (bool | None) – Se for True, a conta será salva no nome do arquivo, como a conta padrão.
  • private_endpoint (bool | None) – Conecte-se à API privada URL.
  • region (RegionType | None) – Defina uma preferência de região. us-east ou eu-de. Uma instância com essa região terá prioridade caso não seja especificada nenhuma instância.
  • plans_preference (PlanType | None) – Uma lista de nomes de planos de contas (open, premium, etc.), ordenados por ordem de preferência. Será dada prioridade a uma instância com o primeiro valor da lista, e somente serão consideradas as instâncias com os nomes de plano indicados. Por exemplo, se você quiser evitar o uso de suas contas premium, basta especificar "open" que deseja usar apenas suas instâncias de plano aberto. plans_preference é ignorado se um instance for especificado.
  • tags (list[str] | None) – Defina uma lista de tags para filtrar as instâncias disponíveis. As instâncias com essas tags serão priorizadas se uma instância não for passada.

Tipo de retorno

Nenhum

saved_accounts

static saved_accounts(default=None, channel=None, filename=None, name=None)

GitHub

Liste as contas salvas no disco.

Parâmetros

  • default (bool | None) – Se definido como True, somente as contas padrão serão retornadas.
  • channel (ChannelType | None) – Canal type.\ \ibm_cloud`` ou ibm_quantum_platform.
  • filename (str | None) – Nome do arquivo cujas contas são retornadas.
  • name (str | None) – Se definido, somente as contas com o nome fornecido serão retornadas.

Retorna

Um dicionário com informações sobre as contas salvas no disco.

Aumentos

ValueError - Se uma conta inválida for encontrada no disco.

Tipo de retorno

dict

usage

usage()

GitHub

Retorna informações de uso da instância ativa atual.

Retorna

Dict com detalhes de uso.

Tipo de retorno

dict [str, Qualquer]

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