Skip to content

Create Evaluation

Creates a new evaluation in pending state.

Endpoint

http
POST /api/v1/evaluations

Request Body

FieldTypeRequiredNotes
model_idintegeryesMust exist in current team
namestringyesmax 255
descriptionstringnomax 4000
scale_typestringyesbinary, graded, detail
metricsarrayyesUnique pairs of scorer_type + num_results are required
metrics[].scorer_typestringyesprecision, ap, rr, cg, dcg, ndcg, cg_d, dcg_d, ndcg_d
metrics[].num_resultsintegeryes1..50
keywordsarray of stringsyes1..250 unique non-empty values
tagsarrayno[{ "id": <tag_id> }]
setting_feedback_strategyintegeryes1 (single) or 3 (multiple)
setting_show_positionbooleanyesShow rank position during feedback
setting_reuse_strategyintegeryes0 (none), 1 (query+doc), 2 (query+doc+position)
setting_auto_restartbooleanyesMust be false when reuse strategy is not 0
setting_scoring_guidelinesstringnomax 2000
transformersobjectyesMust match scale_type; include rules for every required destination scale

Request Example

bash
curl --request POST \
  --url 'https://searchtweak.local/api/v1/evaluations' \
  --header 'Authorization: Bearer <API_TOKEN>' \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data '{
    "model_id": 42,
    "name": "Q1 relevance check",
    "description": "optional text",
    "scale_type": "graded",
    "metrics": [
      { "scorer_type": "precision", "num_results": 10 },
      { "scorer_type": "ndcg", "num_results": 10 }
    ],
    "keywords": ["kühlschrank", "mini fridge"],
    "tags": [{ "id": 3 }],
    "setting_feedback_strategy": 3,
    "setting_show_position": true,
    "setting_reuse_strategy": 1,
    "setting_auto_restart": false,
    "setting_scoring_guidelines": "",
    "transformers": {
      "scale_type": "graded",
      "rules": {
        "binary": {
          "0": 0,
          "1": 1,
          "2": 1,
          "3": 1
        }
      }
    }
  }'

Response 201

Returns the same shape as Get Evaluation Details.

Created evaluation is returned in pending status with initial progress = 0.

Error Responses

  • 401 — unauthorized
  • 422 — validation or business-rule error

Example:

json
{
  "message": "Auto-restart cannot be enabled when re-use strategy is set."
}