{
  "info": {
    "name": "DIP Clustering Phase D",
    "_postman_id": "0c39a7cf-8fde-43f9-8fdb-5d8890ad7676",
    "description": "Spring clustering API examples with generic algorithm parameters and remote Python backend.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "variable": [
    {
      "key": "baseUrl",
      "value": "http://localhost:8080"
    },
    {
      "key": "runId",
      "value": ""
    }
  ],
  "item": [
    {
      "name": "Create DBSCAN run for TED notices",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/v1/dip/clustering/runs",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "v1",
            "dip",
            "clustering",
            "runs"
          ]
        },
        "body": {
          "mode": "raw",
          "raw": "{\n  \"name\": \"TED notices DBSCAN PCA100\",\n  \"algorithm\": \"DBSCAN\",\n  \"executionBackend\": \"PYTHON_REMOTE\",\n  \"reduction\": {\n    \"method\": \"PCA\",\n    \"targetDimensions\": 100\n  },\n  \"selection\": {\n    \"documentTypes\": [\n      \"TED_NOTICE\"\n    ],\n    \"representationTypes\": [\n      \"SEMANTIC_TEXT\"\n    ],\n    \"embeddingStatuses\": [\n      \"COMPLETED\"\n    ],\n    \"primaryRepresentationOnly\": true\n  },\n  \"parameters\": {\n    \"eps\": 0.25,\n    \"minSamples\": 5,\n    \"metric\": \"euclidean\",\n    \"normalizeVectors\": true\n  }\n}"
        }
      }
    },
    {
      "name": "Create HDBSCAN run for Leitstand TIME",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/v1/dip/clustering/runs",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "v1",
            "dip",
            "clustering",
            "runs"
          ]
        },
        "body": {
          "mode": "raw",
          "raw": "{\n  \"name\": \"Leitstand TIME HDBSCAN PCA50\",\n  \"algorithm\": \"HDBSCAN\",\n  \"executionBackend\": \"PYTHON_REMOTE\",\n  \"reduction\": {\n    \"method\": \"PCA\",\n    \"targetDimensions\": 50\n  },\n  \"selection\": {\n    \"documentTypes\": [\n      \"TIME_ENTRY\"\n    ],\n    \"builderKeys\": [\n      \"time-entry-structured-text\"\n    ],\n    \"embeddingStatuses\": [\n      \"COMPLETED\"\n    ],\n    \"primaryRepresentationOnly\": true\n  },\n  \"parameters\": {\n    \"minClusterSize\": 15,\n    \"minSamples\": 5,\n    \"metric\": \"euclidean\",\n    \"clusterSelectionMethod\": \"eom\",\n    \"normalizeVectors\": true\n  }\n}"
        }
      }
    },
    {
      "name": "Create Agglomerative run",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/v1/dip/clustering/runs",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "v1",
            "dip",
            "clustering",
            "runs"
          ]
        },
        "body": {
          "mode": "raw",
          "raw": "{\n  \"name\": \"TED notices Agglomerative\",\n  \"algorithm\": \"AGGLOMERATIVE\",\n  \"executionBackend\": \"PYTHON_REMOTE\",\n  \"reduction\": {\n    \"method\": \"PCA\",\n    \"targetDimensions\": 100\n  },\n  \"selection\": {\n    \"documentTypes\": [\n      \"TED_NOTICE\"\n    ],\n    \"representationTypes\": [\n      \"SEMANTIC_TEXT\"\n    ],\n    \"embeddingStatuses\": [\n      \"COMPLETED\"\n    ],\n    \"primaryRepresentationOnly\": true\n  },\n  \"parameters\": {\n    \"k\": 25,\n    \"linkage\": \"average\",\n    \"metric\": \"euclidean\",\n    \"normalizeVectors\": true\n  }\n}"
        }
      }
    },
    {
      "name": "Start run",
      "request": {
        "method": "POST",
        "url": {
          "raw": "{{baseUrl}}/v1/dip/clustering/runs/{{runId}}/start",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "v1",
            "dip",
            "clustering",
            "runs",
            "{{runId}}",
            "start"
          ]
        }
      }
    },
    {
      "name": "Assignments with text",
      "request": {
        "method": "GET",
        "url": {
          "raw": "{{baseUrl}}/v1/dip/clustering/runs/{{runId}}/assignments?includeText=true",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "v1",
            "dip",
            "clustering",
            "runs",
            "{{runId}}",
            "assignments"
          ],
          "query": [
            {
              "key": "includeText",
              "value": "true"
            }
          ]
        }
      }
    }
  ]
}