# Archivos

> Agregar archivos al Agente para que pueda responder información de tu empresa

Fuente: https://developers.plazbot.com/sdk/file/

### API de Archivos – Agregar, Validar y Eliminar Archivos

Esta API permite subir archivos (`.pdf`, `.doc`, `.docx`) y conectarlos con un agente de IA para que su contenido pueda ser procesado mediante tecnología de Recuperación Aumentada por Generación (RAG). Los archivos son analizados y divididos en fragmentos vectorizados que pueden ser utilizados durante la conversación con el usuario.

### Agregar Archivo 

Sube un archivo y lo vincula con un agente de IA. El contenido del archivo será procesado y almacenado como fragmentos de conocimiento consultables.

| Campo        | Tipo      | Requerido | Descripción |
|--------------|-----------|-----------|-------------|
| `fileUrl`    | `string`  |  Sí     | URL pública del archivo a subir. Solo se permiten los formatos `.pdf`, `.doc`, `.docx`. |
| `reference`  | `string`  |  Sí     | Descripción detallada del contenido del archivo. Se utiliza para decidir si el archivo debe ser consultado. |
| `agentId`    | `string`  |  Sí     | ID del agente al que se asociará el archivo. |
| `tags   `    | `array`   | No        | Son referencias para poder entender más la información dentro del archivo, si bien es cierto, con la Referencia existe más posibilidades, con los tags complementa esta funcionalidad. |

#### Ejemplo

```ts
const file = await plazbot.agent.addFile({
fileUrl: "https://example.com/docs/contrato.pdf",
reference: "Contrato de servicio entre Plazbot y Proveedor.",
tags: ['whatsapp', 'pricing', 'conversations'],
agentId: agentId
});

console.log("Archivo agregado:", file.fileId);
```

### Validar Archivo

Consulta si el archivo ya fue procesado y está disponible en la base vectorial. Los estados son `IN PROCESS` y `COMPLETE`.

```ts
const validated = await plazbot.agent.validateFile({
fileId: file.fileId
});

console.log("Estado:", validated.status);
```

### Eliminar Archivo

Elimina el archivo de la base de Plazbot y de la base vectorial.

```ts
await plazbot.agent.deleteFile({
fileId: file.fileId,
agentId: agentId
});
```

### Tipos de Archivos Soportados

| Extensión    | Tipo                  | Tamaño Máximo | OCR/Extracción |
|-------------|----------------------|---------------|----------------|
| `.pdf`      | Documentos           | 10 MB         |  Sí          |
| `.docx`     | Word                 | 5 MB          |  Sí          |
| `.txt`      | Texto plano          | 2 MB          |  Sí          |
| `.csv`      | Datos estructurados  | 10 MB         |  Sí          |
| `.xlsx`     | Excel                | 10 MB         |  Sí          |

> **Importante:** Los archivos se procesan automáticamente para extraer su contenido y hacer que esté disponible para el agente durante las conversaciones.
