> ## Documentation Index
> Fetch the complete documentation index at: https://docs.siliconflow.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 创建快速决策请求（TypeSafe）

> [Alpha] Make yes/no judgments, option selections, or scoring assessments based on the given input. Use this endpoint to call the TypeSafe decision model `Kev-4B`.

This API is still in a testing and validation stage; it may be adjusted or discontinued. Free of charge until 2026-10-08 (inclusive); if charging starts after that, it will be announced separately.

Send a shared `state` plus a map of typed `questions`. Question types (`noul`, `choice`, `score`) may be mixed in the same request. Response `answers` uses the same keys as the request `questions`.


Call **Kev-4B** with `POST /systemone`. Send shared `state` plus a map of typed `questions` (`noul` for yes/no, `choice` for single select, `score` for rating). The response `answers` object uses the same keys.

Question types can be mixed in one request. Question map keys are labels for your answers only; they are not sent to the model. Put the actual question in `instructions`.

## TypeSafe SDK

The official TypeSafe Python SDK appends `/v1/systemone` to `base_url`. It reads the API key from `TYPESAFE_API_KEY`, or you can pass a SiliconFlow API key with `api_key`.

```python theme={null}
from typesafe_sdk import Choice, Noul, Score, TypeSafeClient

with TypeSafeClient(
    base_url="https://api.siliconflow.com",
    model="Kev-4B",
) as client:
    result = client.system_one(
        "My withdrawal has failed for three days in a row and support has not replied. Please handle this as soon as possible!",
        {
            "is_urgent": Noul(instructions="Does this message convey urgency?"),
            "department": Choice(
                instructions="Which team should handle this?",
                criteria={
                    "billing": "Invoicing, refunds, and payment issues",
                    "technical": "Bugs, outages, and integrations",
                    "support": "Service attitude and response times",
                },
            ),
            "frustration": Score(
                instructions="How frustrated is the customer?",
                criteria=["Calm", "Slightly annoyed", "Clearly annoyed", "Very angry"],
            ),
        },
    )

print(result.nouls["is_urgent"].noul)
print(result.choices["department"].choice)
print(result.scores["frustration"].score)
```


## OpenAPI

````yaml post /systemone
openapi: 3.0.0
info:
  title: SiliconFlow API
  description: The SiliconFlow REST API
  version: 1.0.0
  contact:
    name: SiliconFlow Support
    url: https://www.siliconflow.com/
  license:
    name: MIT
    url: https://github.com/siliconflow-inc/siliconflow-api/blob/main/LICENSE
servers:
  - url: https://api.siliconflow.com/v1
security:
  - bearerAuth: []
paths:
  /systemone:
    post:
      tags:
        - TypeSafe
      summary: Create System One (TypeSafe)
      description: >
        [Alpha] Make yes/no judgments, option selections, or scoring assessments
        based on the given input. Use this endpoint to call the TypeSafe
        decision model `Kev-4B`.


        This API is still in a testing and validation stage; it may be adjusted
        or discontinued. Free of charge until 2026-10-08 (inclusive); if
        charging starts after that, it will be announced separately.


        Send a shared `state` plus a map of typed `questions`. Question types
        (`noul`, `choice`, `score`) may be mixed in the same request. Response
        `answers` uses the same keys as the request `questions`.
      operationId: createSystemOne
      parameters:
        - name: X-Trace-Id
          in: header
          required: false
          schema:
            type: string
          description: >-
            Request trace ID. Optionally pass your own value to tag this
            request; if omitted, the platform generates one. When
            troubleshooting, you can provide either this value or the
            `x-siliconcloud-trace-id` response header.
        - name: traceparent
          in: header
          required: false
          schema:
            type: string
          description: >-
            Standard W3C Trace Context header. When provided, the platform uses
            its trace-id as the trace identifier for this request.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/SystemOneNoulRequest'
                - $ref: '#/components/schemas/SystemOneChoiceRequest'
                - $ref: '#/components/schemas/SystemOneScoreRequest'
      responses:
        '200':
          description: >-
            Model response. The response header includes
            `x-siliconcloud-trace-id`, the unique trace identifier for this
            request. Any `X-Trace-Id` request header you passed in is echoed
            back in this field. When troubleshooting, provide either trace ID.
          headers:
            x-siliconcloud-trace-id:
              schema:
                type: string
              description: >-
                Unique trace identifier for this request. Echoes `X-Trace-Id`
                when you send that header.
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/SystemOneNoulResponse'
                  - $ref: '#/components/schemas/SystemOneChoiceResponse'
                  - $ref: '#/components/schemas/SystemOneScoreResponse'
        '400':
          description: BadRequest
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRquestData'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedData'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedData'
        '404':
          description: NotFound
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundData'
        '429':
          description: RateLimit
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitData'
        '503':
          description: Overloaded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OverloadedtData'
        '504':
          description: Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TimeoutData'
      deprecated: false
components:
  schemas:
    SystemOneNoulRequest:
      title: Noul
      type: object
      required:
        - model
        - state
        - questions
      properties:
        model:
          $ref: '#/components/schemas/SystemOneModel'
        state:
          $ref: '#/components/schemas/SystemOneState'
        questions:
          type: object
          minProperties: 1
          description: >-
            A map of questions. Keys are chosen by the caller and only used to
            fill answers; the response `answers` uses the same keys. Question
            types may be mixed in one request.
          required:
            - is_urgent
          properties:
            is_urgent:
              $ref: '#/components/schemas/SystemOneNoulQuestion'
          additionalProperties:
            $ref: '#/components/schemas/SystemOneNoulQuestion'
          example:
            is_urgent:
              type: noul
              instructions: Does this message convey urgency?
    SystemOneChoiceRequest:
      title: Choice
      type: object
      required:
        - model
        - state
        - questions
      properties:
        model:
          $ref: '#/components/schemas/SystemOneModel'
        state:
          $ref: '#/components/schemas/SystemOneState'
        questions:
          type: object
          minProperties: 1
          description: >-
            A map of questions. Keys are chosen by the caller and only used to
            fill answers; the response `answers` uses the same keys. Question
            types may be mixed in one request.
          required:
            - department
          properties:
            department:
              $ref: '#/components/schemas/SystemOneChoiceQuestion'
          additionalProperties:
            $ref: '#/components/schemas/SystemOneChoiceQuestion'
          example:
            department:
              type: choice
              instructions: Which team should handle this?
              criteria:
                billing: Invoicing, refunds, and payment issues
                technical: Bugs, outages, and integrations
                support: Service attitude and response times
    SystemOneScoreRequest:
      title: Score
      type: object
      required:
        - model
        - state
        - questions
      properties:
        model:
          $ref: '#/components/schemas/SystemOneModel'
        state:
          $ref: '#/components/schemas/SystemOneState'
        questions:
          type: object
          minProperties: 1
          description: >-
            A map of questions. Keys are chosen by the caller and only used to
            fill answers; the response `answers` uses the same keys. Question
            types may be mixed in one request.
          required:
            - frustration
          properties:
            frustration:
              $ref: '#/components/schemas/SystemOneScoreQuestion'
          additionalProperties:
            $ref: '#/components/schemas/SystemOneScoreQuestion'
          example:
            frustration:
              type: score
              instructions: How frustrated is the customer?
              criteria:
                - Calm
                - Slightly annoyed
                - Clearly annoyed
                - Very angry
    SystemOneNoulResponse:
      title: Noul
      type: object
      required:
        - model
        - answers
        - usage
      properties:
        model:
          type: string
          description: The model that handled this request.
          example: Kev-4B
        answers:
          type: object
          description: >-
            An answer map keyed exactly like the request questions. No key
            missing, no key added.
          additionalProperties:
            $ref: '#/components/schemas/SystemOneNoulAnswer'
          example:
            is_urgent:
              type: noul
              noul: 0.92
        usage:
          $ref: '#/components/schemas/SystemOneUsage'
    SystemOneChoiceResponse:
      title: Choice
      type: object
      required:
        - model
        - answers
        - usage
      properties:
        model:
          type: string
          description: The model that handled this request.
          example: Kev-4B
        answers:
          type: object
          description: >-
            An answer map keyed exactly like the request questions. No key
            missing, no key added.
          additionalProperties:
            $ref: '#/components/schemas/SystemOneChoiceAnswer'
          example:
            department:
              type: choice
              choice: support
              probabilities:
                billing: 0.08
                technical: 0.17
                support: 0.75
              confidence: 0.82
        usage:
          $ref: '#/components/schemas/SystemOneUsage'
    SystemOneScoreResponse:
      title: Score
      type: object
      required:
        - model
        - answers
        - usage
      properties:
        model:
          type: string
          description: The model that handled this request.
          example: Kev-4B
        answers:
          type: object
          description: >-
            An answer map keyed exactly like the request questions. No key
            missing, no key added.
          additionalProperties:
            $ref: '#/components/schemas/SystemOneScoreAnswer'
          example:
            frustration:
              type: score
              score: 2.1
              legend:
                '0': Calm
                '1': Slightly annoyed
                '2': Clearly annoyed
                '3': Very angry
              probabilities:
                '0': 0.02
                '1': 0.13
                '2': 0.58
                '3': 0.27
              confidence: 0.78
        usage:
          $ref: '#/components/schemas/SystemOneUsage'
    BadRquestData:
      type: object
      required:
        - message
        - data
        - code
      properties:
        code:
          type: integer
          nullable: true
          default: false
          example: 20012
        message:
          type: string
          nullable: false
        data:
          type: string
          nullable: false
    UnauthorizedData:
      type: string
      default: false
      example: Invalid token
    NotFoundData:
      type: string
      default: false
      example: 404 page not found
    RateLimitData:
      type: object
      required:
        - message
        - data
      properties:
        message:
          type: string
          example: >-
            Request was rejected due to rate limiting. If you want more, please
            contact contact@siliconflow.com. Details:TPM limit reached.
        data:
          type: string
    OverloadedtData:
      type: object
      required:
        - code
        - message
        - data
      properties:
        code:
          type: integer
          example: 50505
        message:
          type: string
          example: Model service overloaded. Please try again later.
        data:
          type: string
          nullable: false
    TimeoutData:
      type: string
    SystemOneModel:
      type: string
      description: 'The model handling this request. Currently supported: `Kev-4B`.'
      example: Kev-4B
      default: Kev-4B
      enum:
        - Kev-4B
    SystemOneState:
      description: >
        The content all questions are evaluated against. It can be a string, a
        JSON object, or an array.


        - A string suits a full text passage.

        - An object suits structured fields, and can be referenced by field name
        in `instructions`.

        - An array suits a list of texts or objects.


        Nested structures inside objects and arrays are not restricted.
      example: >-
        My withdrawal has failed for three days in a row and support has not
        replied. Please handle this as soon as possible!
      default: >-
        My withdrawal has failed for three days in a row and support has not
        replied. Please handle this as soon as possible!
    SystemOneNoulQuestion:
      type: object
      required:
        - type
        - instructions
      properties:
        type:
          type: string
          enum:
            - noul
          default: noul
          description: Yes/no question. The answer is a probability from 0 (no) to 1 (yes).
        instructions:
          description: >-
            The question to evaluate against `state`. Keys in `questions` are
            not sent to the model; write the actual question here.
          example: Does this message convey urgency?
          default: Does this message convey urgency?
    SystemOneChoiceQuestion:
      type: object
      required:
        - type
        - instructions
        - criteria
      properties:
        type:
          type: string
          enum:
            - choice
          default: choice
          description: Single-choice question. The answer is one of the keys in `criteria`.
        instructions:
          description: >-
            The question to evaluate against `state`. Keys in `questions` are
            not sent to the model; write the actual question here.
          example: Which team should handle this?
          default: Which team should handle this?
        criteria:
          type: object
          minProperties: 1
          description: >-
            Map of option names to rubric descriptions. Option names are
            returned in the answer.
          properties:
            billing:
              type: string
              default: Invoicing, refunds, and payment issues
            technical:
              type: string
              default: Bugs, outages, and integrations
            support:
              type: string
              default: Service attitude and response times
          additionalProperties:
            type: string
          example:
            billing: Invoicing, refunds, and payment issues
            technical: Bugs, outages, and integrations
            support: Service attitude and response times
    SystemOneScoreQuestion:
      type: object
      required:
        - type
        - instructions
        - criteria
      properties:
        type:
          type: string
          enum:
            - score
          default: score
          description: >-
            Rating question. `criteria` is an ordered list of levels, low end
            first.
        instructions:
          description: >-
            The question to evaluate against `state`. Keys in `questions` are
            not sent to the model; write the actual question here.
          example: How frustrated is the customer?
          default: How frustrated is the customer?
        criteria:
          type: array
          minItems: 2
          maxItems: 10
          items:
            type: string
          description: Ordered level descriptions, low end first.
          default:
            - Calm
            - Slightly annoyed
            - Clearly annoyed
            - Very angry
          example:
            - Calm
            - Slightly annoyed
            - Clearly annoyed
            - Very angry
    SystemOneNoulAnswer:
      type: object
      required:
        - type
        - noul
      properties:
        type:
          type: string
          enum:
            - noul
        noul:
          type: number
          format: float
          minimum: 0
          maximum: 1
          description: Yes/no probability from 0 (no) to 1 (yes).
          example: 0.92
    SystemOneUsage:
      type: object
      required:
        - input_tokens
        - output_tokens
      description: >-
        Token usage for this request. Input tokens are billed; output tokens are
        currently free.
      properties:
        input_tokens:
          type: integer
          example: 296
        output_tokens:
          type: integer
          example: 20
    SystemOneChoiceAnswer:
      type: object
      required:
        - type
        - choice
      properties:
        type:
          type: string
          enum:
            - choice
        choice:
          type: string
          description: >-
            The highest-probability option, matching a key in the request
            `criteria`.
          example: support
        probabilities:
          type: object
          additionalProperties:
            type: number
            format: float
          description: Probability for each option. Values sum to 1.
        confidence:
          type: number
          format: float
          description: How certain the model is, derived from the probability distribution.
    SystemOneScoreAnswer:
      type: object
      required:
        - type
        - score
      properties:
        type:
          type: string
          enum:
            - score
        score:
          type: number
          format: float
          description: >-
            Probability-weighted rating across the criteria levels. Can land
            between levels.
          example: 2.1
        legend:
          type: object
          additionalProperties:
            type: string
          description: Level index mapped back to its description.
        probabilities:
          type: object
          additionalProperties:
            type: number
            format: float
          description: Probability for each level (string index keys). Values sum to 1.
        confidence:
          type: number
          format: float
          description: How certain the model is, derived from the probability distribution.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: your api key
      description: >-
        Use the following format for authentication: Bearer [<your api
        key>](https://cloud.siliconflow.com/account/ak)

````