Faculytics Docs

Sentiment Worker

Batch sentiment analysis contract — request/response schemas, deployment, and versioning.

Source of Truth: src/modules/analysis/dto/sentiment-worker.dto.ts

Endpoint

POST {SENTIMENT_WORKER_URL}

Request

{
  "items": [
    {
      "submissionId": "uuid-string",
      "text": "The professor was very helpful and engaging."
    },
    {
      "submissionId": "uuid-string-2",
      "text": "Too fast. Couldn't keep up."
    }
  ],
  "metadata": {
    "pipelineId": "uuid-string",
    "runId": "uuid-string"
  }
}

Fields

FieldTypeRequiredDescription
itemsarrayYesArray of submissions to analyze
items[].submissionIdstringYesUnique submission identifier
items[].textstring (min 1)YesQualitative comment text
metadata.pipelineIdstringYesParent pipeline ID
metadata.runIdstringYesCurrent sentiment run ID

Response

{
  "version": "1.0",
  "status": "completed",
  "results": [
    {
      "submissionId": "uuid-string",
      "positive": 0.85,
      "neutral": 0.1,
      "negative": 0.05
    },
    {
      "submissionId": "uuid-string-2",
      "positive": 0.05,
      "neutral": 0.15,
      "negative": 0.8
    }
  ],
  "completedAt": "2026-03-13T10:30:00.000Z"
}

Fields

FieldTypeRequiredDescription
versionstringYesWorker/model version identifier
statusenumYescompleted or failed
resultsarrayOn successPer-submission sentiment scores
results[].submissionIdstringYesMatches input submissionId
results[].positivenumber (0-1)YesPositive sentiment score
results[].neutralnumber (0-1)YesNeutral sentiment score
results[].negativenumber (0-1)YesNegative sentiment score
errorstringOn failureError message when status is failed
completedAtISO datetimeYesProcessing completion timestamp

Error Response

{
  "version": "1.0",
  "status": "failed",
  "error": "Model inference failed: CUDA out of memory",
  "completedAt": "2026-03-13T10:30:00.000Z"
}

Deployment

  • Platform: RunPod (serverless GPU)
  • Model: Multilingual sentiment classifier (positive/neutral/negative)
  • Batch size: Entire run in one request

Versioning

The version field in responses tracks the model/worker version. This is stored on the SentimentRun.workerVersion field for provenance tracking.