{
  "cells": [
    {
      "cell_type": "markdown",
      "id": "ef283f37-0ad4-48c7-bb92-8a09baaae6e5",
      "metadata": {},
      "source": [
        "---\n",
        "title: \"Organizar y buscar por etiquetas de trabajo\"\n",
        "description: \"Asigna etiquetas a los trabajos, añade y actualiza etiquetas, y busca por etiqueta para organizar mejor tus experimentos.\"\n",
        "---\n",
        "\n",
        "<span id=\"organize-and-search-by-job-tags\" />\n",
        "\n",
        "# Organizar y buscar por etiquetas de trabajo\n",
        "\n"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "f4471d6b-dc12-486c-95de-22ac12e367d2",
      "metadata": {
        "tags": [
          "version-info"
        ]
      },
      "source": [
        "{/*\n",
        "  DO NOT EDIT THIS CELL!!!\n",
        "  This cell's content is generated automatically by a script. Anything you add\n",
        "  here will be removed next time the notebook is run. To add new content, create\n",
        "  a new cell before or after this one.\n",
        "  */}\n",
        "\n",
        "<Accordion>\n",
        "  <AccordionItem title=\"Versiones del paquete\">\n",
        "    El código de esta página se ha desarrollado teniendo en cuenta los siguientes requisitos.\n",
        "    Recomendamos utilizar estas versiones o versiones más recientes.\n",
        "\n",
        "    ```\n",
        "    qiskit[all]~=2.3.1\n",
        "    qiskit-ibm-runtime~=0.45.1\n",
        "    ```\n",
        "  </AccordionItem>\n",
        "</Accordion>\n",
        "\n"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "ec8277ad-1811-4318-8282-84d6d282bb17",
      "metadata": {},
      "source": [
        "Esta guía se centra en cómo añadir y actualizar etiquetas de trabajo, así como en cómo buscar por etiquetas de trabajo, para que pueda organizar, seguir y comprender mejor sus experimentos.\n",
        "\n"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "59e38320-db15-4566-b262-40d4fcf19b82",
      "metadata": {},
      "source": [
        "<span id=\"assign-tags\" />\n",
        "\n",
        "## Asignar etiquetas\n",
        "\n",
        "Puedes asignar una o varias etiquetas a tus trabajos cuando los ejecutes para poder filtrarlos por una etiqueta más tarde. Es posible que desee utilizar etiquetas de trabajo para etiquetar determinados ajustes de mitigación de errores, parámetros de circuito, etc.\n",
        "\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 1,
      "id": "74a7a1ea-f2ae-4b8c-9499-af52840c2e74",
      "metadata": {},
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "['experiment-2025', 'sampler-example']\n"
          ]
        }
      ],
      "source": [
        "from qiskit_ibm_runtime import QiskitRuntimeService, Sampler\n",
        "from qiskit import QuantumCircuit\n",
        "from qiskit.transpiler import generate_preset_pass_manager\n",
        "\n",
        "service = QiskitRuntimeService()\n",
        "backend = service.least_busy(simulator=False, operational=True)\n",
        "\n",
        "qc = QuantumCircuit(2)\n",
        "qc.h(0)\n",
        "qc.cx(0, 1)\n",
        "qc.measure_all()\n",
        "\n",
        "sampler = Sampler(backend)\n",
        "\n",
        "pm = generate_preset_pass_manager(backend=backend, optimization_level=1)\n",
        "isa_circuit = pm.run(qc)\n",
        "\n",
        "# Assign tags before executing\n",
        "sampler.options.environment.job_tags = [\"experiment-2025\", \"sampler-example\"]\n",
        "\n",
        "# Submit\n",
        "job = sampler.run([isa_circuit])\n",
        "\n",
        "print(service.job(job.job_id()).tags)"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "2b29f9da-3fca-4ffc-b4b2-6f0d130b5b23",
      "metadata": {},
      "source": [
        "<span id=\"add-and-update-tags\" />\n",
        "\n",
        "## Añadir y actualizar etiquetas\n",
        "\n",
        "Puede añadir etiquetas después de enviar un trabajo con el método `update_tags()` . Este método sobrescribe las etiquetas actuales, por lo que si ya ha asignado etiquetas a un trabajo y desea añadir etiquetas adicionales, asegúrese de volver a asignar las etiquetas originales.\n",
        "\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 2,
      "id": "205ceaf7-f79d-4452-b4b0-9688e39a4564",
      "metadata": {},
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "['sampler-example', '127-qubit', 'experiment-2025']\n"
          ]
        }
      ],
      "source": [
        "# Add a new tag while keeping the previously assigned tags\n",
        "job.update_tags([\"experiment-2025\", \"sampler-example\", \"127-qubit\"])\n",
        "\n",
        "# Confirm updated tags\n",
        "print(job.tags)"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "9e2e8c4a-5fbb-4a15-ab75-ddb61e35b65e",
      "metadata": {},
      "source": [
        "<span id=\"retrieve-jobs-by-tag\" />\n",
        "\n",
        "## Recuperar trabajos por etiqueta\n",
        "\n",
        "Muestra una lista de trabajos con determinadas etiquetas como se indica a continuación:\n",
        "\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 3,
      "id": "b6db503e-46ef-406e-9420-ef73446df564",
      "metadata": {},
      "outputs": [
        {
          "data": {
            "text/plain": [
              "[<RuntimeJobV2('d76cmj5bjrds73edf2og', 'sampler')>,\n",
              " <RuntimeJobV2('d6r5u84u243c73a11mug', 'sampler')>,\n",
              " <RuntimeJobV2('d6hugq2thhns7392lovg', 'sampler')>,\n",
              " <RuntimeJobV2('d68n7qtbujdc73d1b3vg', 'sampler')>,\n",
              " <RuntimeJobV2('d674nppv6o8c73d514fg', 'sampler')>,\n",
              " <RuntimeJobV2('d61mt5bc4tus73fcf3ng', 'sampler')>,\n",
              " <RuntimeJobV2('d61lhfqo8gvs73f15d30', 'sampler')>,\n",
              " <RuntimeJobV2('d5vftt1mvbjc73acdgpg', 'sampler')>,\n",
              " <RuntimeJobV2('d5k96nv853es738djj30', 'sampler')>,\n",
              " <RuntimeJobV2('d5b1s2rht8fs73a66r80', 'sampler')>]"
            ]
          },
          "execution_count": 3,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "# List jobs with a specific tag or set of tags\n",
        "\n",
        "service.jobs(job_tags=[\"experiment-2025\", \"sampler-example\"])"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {},
      "id": "a1b8767d",
      "source": "© IBM Corp., 2017-2026"
    }
  ],
  "metadata": {
    "kernelspec": {
      "display_name": "Python 3",
      "language": "python",
      "name": "python3"
    },
    "language_info": {
      "codemirror_mode": {
        "name": "ipython",
        "version": 3
      },
      "file_extension": ".py",
      "mimetype": "text/x-python",
      "name": "python",
      "nbconvert_exporter": "python",
      "pygments_lexer": "ipython3",
      "version": "3"
    }
  },
  "nbformat": 4,
  "nbformat_minor": 4
}