# Streszczenia publikacji

> Streszczenia publikacji naukowych z PubMed Central: od razu albo w kolejce.

Dwa endpointy streszczają publikacje naukowe z PubMed Central (NCBI).

## Streszczenie z wyszukiwania

```text
POST https://api.prosecaptain.com/api/generate/summary-from-ncbi?token=TWOJ_TOKEN
```

Wyszukuje publikację w NCBI i od razu zwraca streszczenie pierwszego wyniku z pełnym tekstem. Nic nie jest zapisywane.

```json
{
  "query": "dieta śródziemnomorska ryzyko sercowo-naczyniowe",
  "language": "polish"
}
```

Odpowiedź:

```json
{
  "success": true,
  "summary": "…",
  "source_article": { "title": "…", "authors": "…", "journal": "…", "pub_date": "2025", "pmcid": "PMC1234567", "url": "https://pmc.ncbi.nlm.nih.gov/articles/PMC1234567/" },
  "search_info": { "query": "…", "total_found": 128, "articles_returned": 10 },
  "processing_time_ms": 23110
}
```

## Streszczenie w kolejce

```text
POST https://api.prosecaptain.com/api/generate/article-summary?token=TWOJ_TOKEN
```

Dodaje do kolejki streszczenie konkretnej publikacji i od razu zwraca `article_id`. Wynik sprawdzisz endpointem [statusu artykułu](/dokumentacja/artykuly/).

```json
{
  "url": "https://pmc.ncbi.nlm.nih.gov/articles/PMC1234567/",
  "language": "polish"
}
```

| Pole | Wymagane | Opis |
|---|---|---|
| `url` | tak | Adres publikacji z identyfikatorem PMC. |
| `language` | tak | Język streszczenia. |
| `article` | nie | Dane publikacji (`title`, `authors`, `journal`, `pub_date`, `pmcid`, `fullText`, `abstract`), jeśli chcesz je podać sam zamiast pobierać z NCBI. |

Odpowiedź:

```json
{
  "success": true,
  "article_id": "6f1c…",
  "status": "queued",
  "message": "Task queued. Worker will create article and generate the summary."
}
```

Streszczenie zwykle jest gotowe w ciągu kilku minut. Sprawdzaj status co 10–15 sekund, aż `queue_status` zmieni się na `completed` albo `failed`.

## Błędy

| Status | `code` | Opis |
|---|---|---|
| 400 | `VALIDATION_FAILED`, `INVALID_URL` | Brak pól albo adres bez identyfikatora PMC. |
| 404 | `NOT_FOUND`, `no_articles_found` | Brak pełnego tekstu publikacji albo brak wyników wyszukiwania. |
| 503 | `WORKER_UNAVAILABLE` | Kolejka jest chwilowo niedostępna. Ponów żądanie. |