> ## 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.

# Wyszukiwanie i pytania

> Semantyczne wyszukiwanie i odpowiedzi LLM

## Wyszukiwanie

Wyszukiwanie zwraca dopasowane karty wiedzy uszeregowane według trafności. Bez LLM — czyste wyszukiwanie wektorowe z opcjonalnym rerankingiem.

```bash theme={null}
curl -X POST https://aigmented.io/api/v1/collections/49/search \
  -H "Authorization: Bearer sk-TWOJ_KLUCZ_API" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "warunki płatności",
    "top_k": 5,
    "rerank": true
  }'
```

### Parametry

| Parametr       | Typ     | Domyślnie | Opis                               |
| -------------- | ------- | --------- | ---------------------------------- |
| `query`        | string  | wymagany  | Zapytanie wyszukiwania             |
| `top_k`        | integer | 10        | Liczba wyników (1-100)             |
| `rerank`       | boolean | true      | Zastosuj reranking cross-encoderem |
| `current_only` | boolean | true      | Tylko aktualne wersje dokumentów   |
| `filters`      | object  | null      | Filtry metadanych (patrz niżej)    |

### Filtry

Zawęź wyniki po metadanych:

```json theme={null}
{
  "query": "warunki płatności",
  "filters": {
    "knowledge_type": "procedure",
    "document_id": "umowa-2024.pdf"
  }
}
```

| Filtr            | Opis                                                  |
| ---------------- | ----------------------------------------------------- |
| `knowledge_type` | Typ karty (np. `knowledge`, `procedure`, `reference`) |
| `document_id`    | Ogranicz do kart z konkretnego dokumentu              |

***

## Pytania

Zadaj pytanie i otrzymaj odpowiedź AI opartą na Twojej bazie wiedzy.

```bash theme={null}
curl -X POST https://aigmented.io/api/v1/collections/49/ask \
  -H "Authorization: Bearer sk-TWOJ_KLUCZ_API" \
  -H "Content-Type: application/json" \
  -d '{
    "question": "Jakie są warunki płatności?",
    "mode": "fast"
  }'
```

### Parametry

| Parametr       | Typ     | Domyślnie | Opis                                                               |
| -------------- | ------- | --------- | ------------------------------------------------------------------ |
| `question`     | string  | wymagany  | Twoje pytanie                                                      |
| `model`        | string  | auto      | Model LLM do użycia                                                |
| `mode`         | string  | `"full"`  | `"fast"` (szukaj → LLM) lub `"full"` (pipeline z eskalacją agenta) |
| `stream`       | boolean | false     | Streamuj odpowiedź jako zdarzenia SSE                              |
| `top_k`        | integer | 10        | Liczba kart wiedzy do pobrania                                     |
| `current_only` | boolean | true      | Tylko aktualne wersje dokumentów                                   |
| `chat_history` | array   | \[]       | Poprzednie tury rozmowy                                            |
| `filters`      | object  | null      | Te same filtry co w wyszukiwaniu                                   |

### Tryby

**`fast`** — Pobiera karty, wysyła do LLM, zwraca odpowiedź. Deterministyczny i szybki. Filtry i `current_only` w pełni obsługiwane.

**`full`** — Używa pełnego pipeline z inteligentnym routingiem i eskalacją do agenta. Może trwać dłużej, ale lepiej radzi sobie ze złożonymi pytaniami. Uwaga: `filters` i `current_only` nie są obsługiwane w trybie full.

### Odpowiedź

```json theme={null}
{
  "answer": "Warunki płatności stanowią, że...",
  "sources": [
    { "card_id": "abc123", "title": "Sekcja warunków płatności", "score": 0.95 }
  ],
  "model": "google/gemini-3-flash-preview",
  "tokens_used": {
    "llm_prompt": 2100,
    "llm_completion": 350,
    "embedding": 0,
    "model_id": "google/gemini-3-flash-preview"
  }
}
```

***

## Streaming

Ustaw `stream: true` aby otrzymywać zdarzenia Server-Sent Events:

```bash theme={null}
curl -N -X POST https://aigmented.io/api/v1/collections/49/ask \
  -H "Authorization: Bearer sk-TWOJ_KLUCZ_API" \
  -H "Content-Type: application/json" \
  -d '{
    "question": "Jakie są warunki płatności?",
    "stream": true
  }'
```

Zdarzenia:

```
data: {"type": "status", "data": {"message": "Szukam informacji..."}}

data: {"type": "answer_chunk", "data": {"content": "Warunki płatności"}}

data: {"type": "answer_chunk", "data": {"content": " stanowią, że faktury..."}}

data: {"type": "source", "data": {"card_id": "abc123", "title": "Warunki płatności", "score": 0.95}}

data: {"type": "done", "data": {"total_sources": 3, "model": "google/gemini-3-flash-preview", "tokens": {"prompt_tokens": 2100, "completion_tokens": 350}}}
```

| Zdarzenie      | Opis                                                       |
| -------------- | ---------------------------------------------------------- |
| `status`       | Aktualizacja statusu przetwarzania                         |
| `answer_chunk` | Fragment odpowiedzi (streamuj w miarę nadchodzenia)        |
| `source`       | Karta wiedzy użyta do odpowiedzi                           |
| `done`         | Stream zakończony, zawiera zużycie tokenów i info o modelu |

***

## Rozmowy wieloturowe

Przekaż poprzednie tury w `chat_history` dla pytań uzupełniających:

```json theme={null}
{
  "question": "Czy możesz rozwinąć punkt 3?",
  "chat_history": [
    ["Jakie są warunki płatności?", "Warunki płatności stanowią, że..."]
  ]
}
```

Każdy wpis to para `[pytanie, odpowiedź]`.
