Chat s dokumenty
Chat s dokumenty umožňuje Libre WebUI prohledávat nahrané dokumenty a přidávat relevantní úryvky do kontextu chatu.
Podporované soubory
Aktuálně podporované typy:
- PDF (s původem podle stránky)
- Prostý text a protokoly
- Markdown (
.md,.markdown,.mdx, s původem podle oddílu) - HTML
- Dokumenty Word (
.docx) - Prezentace (
.pptx, s původem podle snímku) - Tabulky (
.xlsx, s původem podle listu) a CSV/TSV - Zdrojový kód (TypeScript, Python, Go, Rust, SQL, YAML a další běžné jazyky)
- Obrázky (
.png,.jpg,.webp,.gif) — text čte nakonfigurovaný model vidění (Nastavení → Výchozí hodnoty → Model vidění) - Zvuk (
.wav,.webm) — přepisuje poskytovatel řeči na text za stejnou přístupovou bránou STT jako hlasový vstup - Maximální velikost souboru: 10 MB
Formáty Office se rozbalují omezeným parserem v repository; v serverovém procesu neběží knihovna dokumentů třetí strany. Opakované nahrání stejných bajtů ve stejném rozsahu se deduplikuje místo dvojího načtení.
Extrakce obrázků a zvuku se směruje k již nakonfigurovaným poskytovatelům. Součástí není místní OCR ani řečový modul a instanci neopouští nic kromě volání vybraného modelu. PDF bez textové vrstvy se zpracuje stejně: vložené obrázky JPEG se obnoví a přečtou modelem vidění s původem podle stránky. Skeny v jiných kódováních (CCITT fax, JBIG2) stále nevytvoří text. Bez modelu vidění nebo STT se nahrání označí jako neúspěšné a důvod se zobrazí v Nastavení → Dokumenty.
Soubory zpracovává backend a ukládají se s ostatními aplikačními daty.
Režimy hledání
Libre WebUI podporuje dva režimy načítání:
| Režim | Kdy se používá | Poznámky |
|---|---|---|
| Hledání klíčových slov | Vždy dostupné | Hodnocení BM25; není potřeba model vkládání |
| Hybridní hledání | Zapnutá vkládání | Spojuje vektorové hodnocení s BM25 pomocí reciprocal-rank fusion |
Při zapnutých vkládáních spouští každý dotaz obě hodnocení a slučuje je. Přesná shoda termínu může předstihnout sémanticky podobný, ale neurčitější úsek a úseky s právě vytvářenými vkládáními zůstávají dostupné lexikálně. Při selhání nebo vypnutí se hledání vrátí k čisté shodě klíčových slov.
Lexikální hodnocení běží v procesu nad úseky, ke kterým máte přístup. Libre záměrně neudržuje plnotextový index na disku, protože text úseků je šifrovaný a tokenový index by ukládal otevřený text vedle šifry. Úsek se kvalifikuje pouze tehdy, když plně obsahuje alespoň jedno slovo dotazu, takže složený identifikátor ALPHA_BETA_GAMMA nikdy nezobrazí text sdílející jen část.
Znalostní kolekce sdílené s vámi se automaticky účastní obou hodnocení. Řízení přístupu se vynucuje uvnitř vektorového dotazu; oprávnění se publikují do ACL indexu, takže odvolání sdílení skryje dokumenty již při příštím hledání bez nových vkládání.
Zapnutí sémantického hledání
Nainstalujte model vkládání:
ollama pull nomic-embed-text
Poté otevřete Nastavení a zapněte vkládání. Můžete použít místní modely Ollama nebo pluginy poskytovatelů s podporou vkládání.
Výchozí nastavení vkládání:
- Model:
nomic-embed-text - Velikost úseku: 1000 znaků
- Překrytí úseků: 200 znaků
- Práh podobnosti: 0,3
Citace a režim celého dokumentu
Načtené úryvky obsahují původ: název zdrojového souboru, index úseku, skóre načtení a u formátů s mapou segmentů stránku, snímek, list nebo oddíl Markdown. Kontext chatu označuje každý úryvek umístěním a panel Zdroje uvádí citovaná místa pod dokumentem.
Každý chat lze v panelu Zdroje přepnout do režimu celého dokumentu. Místo úryvků se se zprávou odešle celý extrahovaný obsah dokumentů v rozsahu. Ochrana tokenů (FULL_DOCUMENT_CONTEXT_MAX_TOKENS, výchozí 32000) chrání kontextové okno modelu. Při překročení se chat vrátí k načítání a panel vysvětlí důvod.
Nahrání a hledání
- Nahrajte podporovaný soubor z ovládání dokumentů.
- Počkejte na dokončení zpracování.
- Položte otázku v chatu.
- Libre WebUI načte relevantní úseky pro relaci a zahrne je do kontextu.
Příklady promptů:
Summarize the uploaded document in five bullets.
What deadlines are mentioned in the PDF?
Find the section that talks about pricing.
Compare the uploaded policy with this proposed change.
Endpointy API
| Endpoint | Účel |
|---|---|
POST /api/documents/upload | Nahrát podporovaný dokument |
GET /api/documents | Vypsat nahrané dokumenty |
GET /api/documents/session/:sessionId | Vypsat dokumenty relace chatu |
POST /api/documents/search | Hledat v dokumentech |
DELETE /api/documents/:documentId | Smazat dokument |
GET /api/documents/embeddings/status | Zobrazit stav vkládání |
POST /api/documents/embeddings/regenerate | Znovu vytvořit vkládání |
Doporučené postupy
- Omezte nahrávání na aktuální úkol.
- Upřednostněte textové PDF; skenovaná PDF fungují přes model vidění, ale vyžadují jedno volání modelu na stránku.
- Po změně modelu znovu vytvořte vkládání.
- Snižte práh podobnosti, pokud sémantické hledání přehlíží užitečný kontext.
- Zvyšte práh, pokud jsou výsledky zašuměné.