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

# Manejo de prompts

> Los cuatro campos que modifican lo que enviamos al proveedor y lo que conservamos.

Tu prompt pasa a través de nosotros en su camino hacia el proveedor. Cuatro campos deciden qué hacemos con él. Eliminamos los cuatro del cuerpo antes de llamar al proveedor, por lo que el proveedor nunca los ve.

| Campo           | Qué hace                                                              | Dónde funciona   |
| --------------- | --------------------------------------------------------------------- | ---------------- |
| `pii_mask`      | Reemplaza datos personales con marcadores de posición antes de enviar | Managed Keys     |
| `moderate`      | Verifica el prompt en busca de contenido dañino antes de enviar       | Managed Keys     |
| `trace_storage` | Conserva el prompt y la respuesta para la página de Registros         | Managed Keys     |
| `cache`         | Factura un prefijo Claude repetido a una décima parte del precio      | Anthropic direct |

Los tres primeros solo se ejecutan en Managed Keys. Con tus propias claves, reenviamos tu solicitud sin modificaciones.

El enmascaramiento y la moderación leen primero tu solicitud, luego la configuración predeterminada de tu organización, y luego se desactivan. El almacenamiento de trazas lee la solicitud y nada más.

## Enmascaramiento de PII

Podemos enmascarar datos personales en tu prompt antes de que llegue al proveedor. Cada coincidencia se convierte en un marcador de posición estable como `[EMAIL_1]`, para que el modelo aún pueda distinguir a las personas. Cubre correos electrónicos, números de teléfono y otros patrones como números de tarjeta.

```json theme={null}
{ "pii_mask": true }
```

Envía `false` en una solicitud para omitir el enmascaramiento que tu organización haya activado. Si el enmascaramiento está activado y falla, detenemos la solicitud con `500` [`pii_masking_failed`](/es/errors#pii_masking_failed) en lugar de enviarla sin enmascarar.

## Moderación

Podemos verificar un prompt en busca de contenido dañino antes de enviarlo. Un prompt bloqueado devuelve `403` [`moderation_blocked`](/es/errors#moderation_blocked) y no llega a ningún proveedor.

```json theme={null}
{ "moderate": true }
```

## Almacenamiento de trazas

Podemos almacenar tus prompts y respuestas, cifrados, para que la página de Registros pueda mostrarlos. Solo tu solicitud activa esto. Una solicitud gestionada, de lo contrario, conserva lo que conserva una solicitud BYOK, que son los datos de facturación y nada más.

```json theme={null}
{ "trace_storage": true }
```

Una solicitud posterior sin el campo no almacena nada nuevo. Lo que ya almacenaste permanece hasta que lo elimines en la página de Registros.

## Caché de prompts

Almacenamos en caché cada solicitud de Claude en la ruta directa de Anthropic. Un prefijo repetido se factura entonces a una décima parte del precio de entrada normal. Escribir en la caché cuesta 1.25 veces el precio de entrada. Un prefijo que nunca reutilizas cuesta un 25 por ciento más. Por eso puedes desactivar el almacenamiento en caché.

```json theme={null}
{ "cache": false }
```

Tus propios marcadores siempre prevalecen. Si tu solicitud tiene algún `cache_control`, lo reenviamos y no añadimos nada propio. Una solicitud demasiado corta para almacenar en caché simplemente se ejecuta sin caché.

| Ruta              | Qué sucede                                                                                                |
| ----------------- | --------------------------------------------------------------------------------------------------------- |
| Anthropic direct  | Automático, y tus propios marcadores lo anulan                                                            |
| Bedrock           | Solo tus marcadores explícitos, ya que Bedrock no tiene caché automático                                  |
| OpenAI and Gemini | El proveedor almacena en caché los prefijos repetidos por sí mismo, por lo que no hay nada que configurar |

La respuesta informa `cached_tokens` y `cache_write_tokens` en su bloque de uso.

## Campos de identidad en Managed Keys

En Managed Keys, reemplazamos cuatro campos de identidad con un hash estable de tu ID de organización antes de llamar al proveedor. La identidad que un proveedor ve en nuestra credencial debe provenir de nosotros, por lo que estos son los únicos campos que cambiamos en lugar de reenviar.

* `user`
* `safety_identifier`
* `prompt_cache_key`
* `metadata.user_id`

Con tu propia clave, reenviamos los cuatro tal como los enviaste.

| Campo               | Managed Keys                          | Tu propia clave |
| ------------------- | ------------------------------------- | --------------- |
| `user`              | Eliminado                             | Forwarded       |
| `safety_identifier` | Hash de tu organización, en OpenAI    | Forwarded       |
| `prompt_cache_key`  | Hash de tu organización, en OpenAI    | Forwarded       |
| `metadata.user_id`  | Hash de tu organización, en Anthropic | Forwarded       |

Dejamos cualquier otra clave en `metadata` sin modificar.

Workers AI no acepta ningún campo de identidad en el cuerpo, por lo que adjuntamos el hash a la solicitud misma. Gemini, Vertex y Bedrock no aceptan ningún campo de identidad que podamos configurar. En esas tres rutas, eliminamos el tuyo y no enviamos nada en su lugar.

## Un marcador reservado en los IDs de llamadas a herramientas

Gemini necesita una firma que se reproduzca con cada llamada a herramienta, por lo que la llevamos dentro del ID de la llamada a herramienta. El ID que te entregamos se ve como `<id>::gsig::<signature>`, y retiramos la firma antes de que cualquier otro proveedor la vea.

Tus propios IDs pasan sin modificaciones, incluso cuando contienen `::`. Lo único que debes evitar es el texto literal `::gsig::` dentro de un ID que inventes, porque lo leeríamos como nuestro y acortaríamos el ID.

## Nombres de archivo en modelos Gemini

Puedes enviar un documento en línea, como bytes base64 o como una URL `data:`. En un modelo Gemini, enviamos a Google el tipo de medio y los bytes, y omitimos `filename` y `file_id`. El formato de documento de Google no tiene un campo para ellos y rechaza una solicitud que contenga uno. El modelo lee los bytes y nunca ve un nombre, por lo que nada de lo que enviaste se pierde.

Cualquier otro proveedor sigue recibiendo el nombre.
