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

> ## Agent Instructions
> Use https://docs.fastino.ai/openapi.json as the source of truth for customer-facing routes. For GLiDE decision inference, call POST https://api.fastino.ai/v1/systemone with model fastino/glide. Do not infer undocumented routes. Read API keys from FASTINO_API_KEY and never embed credentials in code, logs, or reports.

# Inferencia de GLiDE con /v1/systemone

> Autentícate, elige una pregunta Noul, Choice o Score, llama a POST /v1/systemone y actúa según las probabilidades y la confianza de GLiDE.

```text theme={null}
POST https://api.fastino.ai/v1/systemone
```

Este es el endpoint de inferencia de **GLiDE**. Envía un `state` no vacío y una o varias `questions`
tipadas y con nombre; lee las decisiones estructuradas en `answers`. GLiDE no usa
`/v1/chat/completions`, `messages` ni un `schema` de GLiNER.

## Autenticación

Crea una clave de API en [Fastino Settings](https://agent.fastino.ai/api-keys) y luego configúrala:

```bash theme={null}
export FASTINO_API_KEY="fast_sk_..."
```

Envíala en cada solicitud:

```http theme={null}
X-API-Key: $FASTINO_API_KEY
Content-Type: application/json
```

También se acepta `Authorization: Bearer $FASTINO_API_KEY`. Usa un solo estilo de forma coherente.

## Elige un tipo de pregunta

Cada pregunta es de una sola etiqueta y devuelve probabilidades. Elige la primitiva según la
forma de respuesta que necesita tu código:

| Primitiva | Úsala cuando | Forma de `criteria` | Resultado principal |
| - | - | - | - |
| [Noul](/es/concepts/glide-noul) | La respuesta es sí o no | Opcional `{"true": "...", "false": "..."}`; por defecto Yes/No | `noul`, la probabilidad de true |
| [Choice](/es/concepts/glide-choice) | Debe ganar exactamente una opción sin orden | Objeto que asigna claves de opción a descripciones | `choice` más `probabilities` |
| [Score](/es/concepts/glide-score) | La respuesta pertenece a una escala ordenada | Array ordenado de descripciones de niveles | `score`, `expected_level` y `probabilities` |

No existe una primitiva multietiqueta. Haz varias preguntas independientes con nombre en una sola solicitud
cuando necesites varios juicios sobre el mismo state.

## Solicitud

<ParamField body="model" type="string" required>
  Usa `fastino/glide`. La respuesta devuelve el nombre del motor como `glide`.
</ParamField>

<ParamField body="state" type="string | object | array" required>
  La situación no vacía que se va a evaluar. Usa una cadena para un solo pasaje, un objeto para campos
  etiquetados o un array para una secuencia ordenada de mensajes o registros.
</ParamField>

<ParamField body="questions" type="object" required>
  Un objeto no vacío cuyas claves son nombres que tú eliges. Cada valor debe contener `type` e
  `instructions`; Choice y Score también requieren `criteria`. Las mismas claves aparecen bajo
  `answers` en la respuesta.
</ParamField>

### Solicitud completa

```bash theme={null}
curl --max-time 300 -s https://api.fastino.ai/v1/systemone \
  -H "X-API-Key: $FASTINO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "fastino/glide",
    "state": "Refund request: the receipt is attached, the purchase was 10 days ago, and refunds are allowed within 30 days.",
    "questions": {
      "refund_allowed": {
        "type": "noul",
        "instructions": "Does this request qualify for a refund?",
        "criteria": { "true": "Qualifies", "false": "Does not qualify" }
      }
    }
  }'
```

## Respuesta

```json theme={null}
{
  "model": "glide",
  "answers": {
    "refund_allowed": {
      "type": "noul",
      "noul": 0.99767683794902,
      "confidence": 0.9953536758980399
    }
  },
  "usage": { "input_tokens": 89, "output_tokens": 1 }
}
```

`answers` usa las claves de pregunta de tu solicitud. Para este Noul:

* `noul` es la probabilidad de que se cumpla el criterio `true`. No es un booleano.
* `confidence` es la certeza sobre cualquiera de los dos resultados: `|2 × noul − 1|`.
* Ajusta los umbrales de acción con datos representativos. No des por hecho que `0.5` es el umbral
  adecuado para tu negocio.

Choice y Score devuelven campos distintos. Consulta sus páginas de primitiva para ver las formas exactas de respuesta
y ejemplos de integración.

## Límites y formas no admitidas

* Cada prompt de pregunta renderizado (`state` más esa pregunta) debe caber en **40,000
  tokens**.
* Choice y Score aceptan como máximo **255 opciones o niveles**.
* `usage.input_tokens` suma las pasadas internas de todas las preguntas, por lo que puede superar 40,000
  aunque cada prompt renderizado individual quepa.
* Una solicitud evalúa un único `state` compartido; pon varias preguntas bajo `questions`.
* `/v1/systemone` no hace streaming y no acepta un lote de estados independientes.
* GLiDE no admite actualmente ID de despliegues ajustados.

Consulta la [referencia de GLiDE](/es/concepts/decision-models) para ver orientación sobre las formas de state, las fórmulas
de confianza y una solicitud mixta de Choice/Score.

## Errores

| Estado | Causa probable | Acción |
| - | - | - |
| `400` | El prompt supera la ventana de contexto u otra entrada de inferencia no es válida | Acorta el state o corrige la pregunta |
| `401` | Clave de API ausente, mal formada o no válida | Exporta una clave `fast_sk_...` válida |
| `402` | Créditos insuficientes, se requiere financiación o límite de gasto diario/mensual fijado por el propietario | Añade créditos o ajusta el límite de gasto |
| `403` | Método de pago, verificación de tarjeta, techo de crédito o denegación por política de la cuenta | Resuelve el requisito de facturación o de la cuenta |
| `404` | Modelo desconocido o un modelo que solo admite chat completions | Usa `fastino/glide` |
| `422` | Falta un campo obligatorio, un valor tiene una forma incorrecta o se envió un campo adicional | Lee y corrige los detalles de validación a nivel de campo |
| `425` | El despliegue se está calentando | Reintenta tras el retraso indicado |
| `429` | Límite de tasa o de capacidad | Respeta `Retry-After` y reintenta con retroceso |
| `503` | Fallo temporal del proveedor o del servicio | Reintenta antes de tratarlo como terminal |

Usa un tiempo de espera de lectura de al menos 300 segundos y un backoff acotado para `425`, `429` y `503`.
No reintentes `401`, `402`, `403`, `404` ni `422` sin corregir el problema subyacente.

## Sigue aprendiendo

<CardGroup cols={2}>
  <Card title="Referencia de GLiDE" icon="book-open" href="/es/concepts/decision-models">
    Entiende las formas de state, los límites, la confianza y cómo combinar varias preguntas.
  </Card>

  <Card title="Noul" icon="toggle-on" href="/es/concepts/glide-noul">
    Integra una probabilidad de sí/no.
  </Card>

  <Card title="Choice" icon="list" href="/es/concepts/glide-choice">
    Enruta a una opción con nombre.
  </Card>

  <Card title="Score" icon="gauge" href="/es/concepts/glide-score">
    Evalúa una rúbrica ordenada.
  </Card>
</CardGroup>
