Přeskočit na hlavní obsah

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žimKdy se používáPoznámky
Hledání klíčových slovVž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í

  1. Nahrajte podporovaný soubor z ovládání dokumentů.
  2. Počkejte na dokončení zpracování.
  3. Položte otázku v chatu.
  4. 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/uploadNahrát podporovaný dokument
GET /api/documentsVypsat nahrané dokumenty
GET /api/documents/session/:sessionIdVypsat dokumenty relace chatu
POST /api/documents/searchHledat v dokumentech
DELETE /api/documents/:documentIdSmazat dokument
GET /api/documents/embeddings/statusZobrazit stav vkládání
POST /api/documents/embeddings/regenerateZnovu 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é.

Související dokumentace