Saltar a contenido

Ejemplos#

El repositorio fuente incluye ejemplos ejecutables en la carpeta examples/.

Si instalaste el SDK desde PyPI con pip install qcentroid-sdk, normalmente no tendrás disponible esa carpeta local examples/ en tu entorno.

En ese caso, usa los snippets de código de esta documentación como punto de partida para tus propios scripts.

Listar jobs#

Archivo: examples/list_jobs.py

Este ejemplo se autentica con QCentroid e imprime jobs recientes.

from qcentroid_sdk import QCentroidClient

QCENTROID_API_KEY = "-- your api key --"


def main() -> None:
    client = QCentroidClient(
        api_key=QCENTROID_API_KEY,
    )

    jobs_page = client.jobs.list(limit=10)

    print(f"Retrieved {len(jobs_page.value)} jobs")
    if jobs_page.count is not None:
        print(f"Reported count: {jobs_page.count}")

    for job in jobs_page.value:
        print(
            f"- name={job.name} status={job.status} started_at={job.started_at}"
        )


if __name__ == "__main__":
    main()

Ejecutar un job con datos inline#

Archivo: examples/run_job_inline.py

Este ejemplo lanza un job pasando el payload de entrada directamente en la petición.

from qcentroid_sdk import QCentroidClient

QCENTROID_API_KEY = "-- your api key --"

USE_CASE_NAME = "qcentroid-example-1-sum"
SOLVER_NAME = "QCentroid-OscarSolver-Example1Sum-ClassicalCPU"


def main() -> None:
    client = QCentroidClient(
        api_key=QCENTROID_API_KEY,
    )

    job = client.jobs.run(
        use_case_name=USE_CASE_NAME,
        data={"a": 2, "b": 3},
        solvers=[{"name": SOLVER_NAME}],
        num_shots=1,
        job_description="Run a job with inline data using the QCentroid SDK",
    )

    print(f"Job launched successfully: {job.job_name}")


if __name__ == "__main__":
    main()

Ejecutar un job con un dataset existente#

Archivo: examples/run_job_dataset.py

Este ejemplo lanza un job usando el identificador de archivo de un dataset subido previamente.

from qcentroid_sdk import QCentroidClient

QCENTROID_API_KEY = "-- your api key --"

USE_CASE_NAME = "qcentroid-example-1-sum"
SOLVER_NAME = "QCentroid-OscarSolver-Example1Sum-ClassicalCPU"
DATASET_IDENTIFIER = "-- existing dataset file identifier --"
SOLVERS_PROVIDER_PARAMS = {SOLVER_NAME: {}}
MAX_EXEC_TIME_M = 0


def main() -> None:
    client = QCentroidClient(
        api_key=QCENTROID_API_KEY,
    )

    job = client.jobs.run(
        use_case_name=USE_CASE_NAME,
        dataset_id=DATASET_IDENTIFIER,
        solvers=[{"name": SOLVER_NAME}],
        num_shots=1,
        job_description="Run a job with an existing dataset using the QCentroid SDK",
        solvers_provider_params=SOLVERS_PROVIDER_PARAMS,
        max_exec_time_m=MAX_EXEC_TIME_M,
    )

    print(f"Job launched successfully: {job.job_name}")


if __name__ == "__main__":
    main()

Esperar a que un job finalice#

También puedes esperar a que un job lanzado alcance un estado terminal:

job = client.jobs.run(
    use_case_name="qcentroid-example-1-sum",
    data={"a": 2, "b": 3},
    solvers=[{"name": "QCentroid-OscarSolver-Example1Sum-ClassicalCPU"}],
    num_shots=1,
)

finished_job = client.jobs.wait_for_completion(job.job_name)
print(finished_job.name, finished_job.status)

Placeholders de credenciales#

Los scripts de ejemplo usan placeholders como:

QCENTROID_API_KEY = "-- your api key --"

Sustitúyelo por tu propia API key antes de ejecutar los ejemplos.

Entorno por defecto#

Los ejemplos no pasan un entorno explícito, por lo que usan el valor por defecto del SDK:

environment="sandbox"

Si quieres apuntar a otro entorno, pásalo al construir el cliente:

client = QCentroidClient(
    environment="dev",
    api_key=QCENTROID_API_KEY,
)