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

# Wgrywanie plików

> Wgrywaj dokumenty bezpośrednio przez API

Wgraj pliki do kolekcji jednym requestem. Plik jest przechowywany, walidowany i natychmiast kolejkowany do przetwarzania i ekstrakcji wiedzy.

## Wgraj plik

```bash theme={null}
curl -X POST https://aigmented.io/api/v1/collections/49/files/upload \
  -H "Authorization: Bearer sk-TWOJ_KLUCZ_API" \
  -F "file=@/sciezka/do/dokument.pdf"
```

Odpowiedź:

```json theme={null}
{
  "file_id": 250,
  "filename": "dokument.pdf",
  "status": "processing",
  "content_type": "application/pdf",
  "size_bytes": 1048576
}
```

Plik automatycznie wchodzi do pipeline przetwarzania. Sprawdź status kolekcji, aby wiedzieć kiedy ekstrakcja jest zakończona.

## Obsługiwane formaty

| Format | Rozszerzenia | Typ MIME                                                                  |
| ------ | ------------ | ------------------------------------------------------------------------- |
| PDF    | `.pdf`       | `application/pdf`                                                         |
| Excel  | `.xlsx`      | `application/vnd.openxmlformats-officedocument.spreadsheetml.sheet`       |
| CSV    | `.csv`       | `text/csv`                                                                |
| Word   | `.docx`      | `application/vnd.openxmlformats-officedocument.wordprocessingml.document` |

## Walidacja

Pliki są walidowane w trzech warstwach przed uploadem:

1. **Rozszerzenie** — musi być jednym z obsługiwanych formatów powyżej
2. **Typ MIME** — musi odpowiadać oczekiwanemu typowi dla rozszerzenia
3. **Magic bytes** — nagłówek pliku jest sprawdzany aby potwierdzić rzeczywisty format (zapobiega zmianie nazwy plików wykonywalnych na `.pdf`)

Pliki wykonywalne (`.exe`, `.sh`, `.bat`, `.dll`, itd.) i pliki binarne (ELF, Mach-O) są zawsze odrzucane.

## Limity

| Limit                    | Wartość              |
| ------------------------ | -------------------- |
| Maksymalny rozmiar pliku | 50 MB                |
| Dozwolone formaty        | PDF, XLSX, CSV, DOCX |

## Kody błędów

| Status                       | Znaczenie                                             |
| ---------------------------- | ----------------------------------------------------- |
| `201 Created`                | Plik wgrany i przetwarzanie rozpoczęte                |
| `400 Bad Request`            | Brak pliku (użyj nazwy pola `file`)                   |
| `413 Payload Too Large`      | Plik przekracza 50 MB                                 |
| `415 Unsupported Media Type` | Format pliku niedozwolony lub niezgodność magic bytes |

## Pipeline przetwarzania

Po wgraniu plik przechodzi przez pipeline przetwarzania:

1. **Parsowanie** — dokument jest parsowany na strefy (sekcje, tabele, itd.)
2. **Ekstrakcja** — karty wiedzy są ekstrahowane ze stref za pomocą LLM
3. **Indeksowanie** — karty są embedowane i indeksowane w bazie wektorowej

Pliki referencyjne (`.xlsx`, `.csv`) przechodzą osobny pipeline zoptymalizowany dla danych tabelarycznych.

Status kolekcji zmienia się na `processing` w tym czasie i `processed` po zakończeniu.
