Skip to main content

Endpoints

  • POST /api/feedback
  • GET /api/feedback/stats
  • GET /api/feedback/review-queue

Submit Feedback

Request

{
  "conversation_id": "string",
  "message_id": 123,
  "rating": 1,
  "max_rerank_score": 0.81,
  "source_ids": ["yt_abc123"],
  "reason_code": "wrong_intent",
  "expected_intent": "clear_meta",
  "expected_answer_origin": "general"
}
Required fields:
  • conversation_id
  • rating (-1 or 1)
Optional fields:
  • message_id
  • max_rerank_score
  • source_ids
  • review-label fields (reason_code, expected_*, reviewer trace fields)

Response

{ "success": true, "feedback_id": 42 }

Stats and Review Queue

GET /api/feedback/stats

Returns aggregate counters and score-by-rating summaries.

GET /api/feedback/review-queue

Query params:
  • limit (default 100)
  • unlabeled_only (default true)
Returns review candidates with user/assistant context for HITL workflows.

Ranking Impact

Feedback influences retrieval ordering by source-level penalty aggregation. Repeated negative outcomes can demote a source in future retrieval ordering. Source IDs are canonicalized before aggregation to avoid alias double-counting.

Validation and Errors

  • invalid payloads: 422
  • rate-limit guard may return 429
  • strict request schemas reject unknown fields