QiskitRuntimeService
class QiskitRuntimeService(*args, **kwargs)
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 defilename,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 deo arquivo de configuração, incluindo
channel,token,instance,regionplans_preference,, e os parâmetros de configuração avançados:url,url_resolver,private_endpoint,verify, eproxies.instanceObservação importante : um valor explícitoinstancefornecido durante a instanciação substituirá o valor do arquivo carregado. -
Se não
namefor especificado: sechannelfor especificado, o serviço carregará oconta 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()comset_as_default=True.
Parâmetros
- canal – String que identifica a plataforma de serviço. Esse valor é definido como
ibm_quantum_platformpor padrão, mas também pode assumirlocalos valores eibm_cloud.ibm_cloudé uma opção legada e aponta para o mesmo caminho queibm_quantum_platform, sendo que o valor recomendado éibm\_quantum\_platform\. Selocalfor 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_cloudera o identificador da plataforma antiga IBM Cloud, e seu endereço URL será redirecionado para o novoibm_quantum_platformendereç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.compara canais não locais que acessam o IBM Quantum Platform (por exemplo,ibm_quantum_platform,ibm_cloud). Esse URL é processado por umurl_resolverpara 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 parahttps://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_cloudeibm_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 desave_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ãous-eastoueu-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()
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
backend
backend(name, instance=None, use_fractional_gates=False, calibration_id=None)
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)
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. SeNone, 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)
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)
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()
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)
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
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 os trabalhos em tempo de execução, sujeitos a filtragem opcional.
Parâmetros
- limit (int | None) – Número de trabalhos a serem recuperados.
Nonesignifica 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. SeFalse, 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)
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
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)
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_cloudouibm_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) –
Truese 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 uminstancefor 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)
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`` ouibm_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()
Retorna informações de uso da instância ativa atual.
Retorna
Dict com detalhes de uso.
Tipo de retorno
dict [str, Qualquer]