## Create span assessment

`span_assessments.create(SpanAssessmentCreateParams**kwargs)  -> SpanAssessment`

**post** `/v5/span-assessments`

Attach a new assessment to a span within a trace.

A span assessment records feedback on a single span's output. Its
assessment_type selects one of comment, rating (an integer 1-5), approval
(approved or rejected), rubric (key-value rule pairs), metadata (arbitrary
JSON), or overwrite (a corrected span output), and exactly the content field
matching that type must be supplied; a free-text comment may additionally
accompany any type. trace_id is required, while span_id is optional and, when
omitted, the assessment is attached to the trace's root span. The call returns
404 if the given span_id and trace_id do not identify an existing span, or if
no root span is found for the trace. Creating an overwrite for a span that
already holds a live overwrite returns 409, whether that overwrite is yours or
another user's. Update or delete the existing one instead. Use the list
endpoint to read a span's or trace's existing assessments.

### Parameters

- `assessment_type: AssessmentType`

  Type of assessment

  - `"comment"`

  - `"rating"`

  - `"approval"`

  - `"rubric"`

  - `"metadata"`

  - `"overwrite"`

- `trace_id: str`

  The ID of the trace this assessment is attached to

- `approval: Optional[ApprovalStatus]`

  Approval status (approved/rejected)

  - `"approved"`

  - `"rejected"`

- `comment: Optional[str]`

  Raw text feedback

- `metadata: Optional[Dict[str, object]]`

  Arbitrary JSON object for additional data

- `overwrite: Optional[Dict[str, object]]`

  User corrections to span output

- `rating: Optional[int]`

  Numerical rating (1-5)

- `rubric: Optional[Dict[str, str]]`

  Rule key-value pairs for rubric evaluation

- `span_id: Optional[str]`

  The ID of the span this assessment is attached to. If omitted, the assessment is attached to the root span of the trace.

### Returns

- `class SpanAssessment: …`

  Response model for span assessment

  - `assessment_id: str`

    Unique identifier for the assessment

  - `assessment_type: AssessmentType`

    Type of assessment

    - `"comment"`

    - `"rating"`

    - `"approval"`

    - `"rubric"`

    - `"metadata"`

    - `"overwrite"`

  - `created_by: str`

    User who submitted the assessment

  - `span_id: str`

    The span this assessment is attached to

  - `trace_id: str`

    The trace this assessment is attached to

  - `account_id: Optional[str]`

    Account this assessment belongs to

  - `approval: Optional[ApprovalStatus]`

    Approval status (approved/rejected)

    - `"approved"`

    - `"rejected"`

  - `comment: Optional[str]`

    Raw text feedback

  - `created_at: Optional[datetime]`

    When this assessment was created

  - `metadata: Optional[Dict[str, object]]`

    Arbitrary JSON object for additional data

  - `object: Optional[Literal["span.assessment"]]`

    - `"span.assessment"`

  - `overwrite: Optional[Dict[str, object]]`

    User corrections to span output

  - `rating: Optional[int]`

    Numerical rating (1-5)

  - `rubric: Optional[Dict[str, str]]`

    Rule key-value pairs for rubric evaluation

  - `updated_at: Optional[datetime]`

    When this assessment was last updated

### Example

```python
import os
from scale_gp_beta import SGPClient

client = SGPClient(
    api_key=os.environ.get("SGP_API_KEY"),  # This is the default and can be omitted
)
span_assessment = client.span_assessments.create(
    assessment_type="comment",
    trace_id="trace_id",
)
print(span_assessment.assessment_id)
```

#### Response

```json
{
  "assessment_id": "assessment_id",
  "assessment_type": "comment",
  "created_by": "created_by",
  "span_id": "span_id",
  "trace_id": "trace_id",
  "account_id": "account_id",
  "approval": "approved",
  "comment": "comment",
  "created_at": "2019-12-27T18:11:19.117Z",
  "metadata": {
    "foo": "bar"
  },
  "object": "span.assessment",
  "overwrite": {
    "foo": "bar"
  },
  "rating": 1,
  "rubric": {
    "foo": "string"
  },
  "updated_at": "2019-12-27T18:11:19.117Z"
}
```
