Skip to main content

FindDocs

Lokalna wyszukiwarka dokumentów korporacyjnych dla Windows 11. Indeksuje dokumenty z SharePointa i z katalogów lokalnych, a następnie pozwala je przeszukiwać dokładnie, semantycznie i hybrydowo. Wszystko dzieje się na komputerze użytkownika: dokumenty, zapytania i embeddingi nie opuszczają maszyny.

Co to potrafi

  • Wyszukiwanie dokładne zwraca wszystkie dokumenty zawierające podane słowo, frazę, nazwisko, datę, kwotę lub numer rachunku. Bez ukrytego limitu wyników. Numer 00 1234 5678 9012 3456 7890 1234, 00-1234-... i zapis ciągły trafiają w te same dokumenty. Data 24.07.2015, 2015-07-24 i 24 lipca 2015 również.
  • Wyszukiwanie semantyczne znajduje dokumenty powiązane znaczeniowo, nawet jeśli nie zawierają tych samych słów. Model jest polski i działa na CPU.
  • Wyszukiwanie hybrydowe łączy oba podejścia metodą Reciprocal Rank Fusion, zachowując wartości dosłowne z zapytania jako warunek obowiązkowy.
  • OCR uruchamiany tylko wtedy, gdy dokument nie ma użytecznej warstwy tekstowej. Wynik jest oznaczany, żeby dało się odróżnić go od tekstu natywnego.
  • Raport pokrycia pokazuje, czego nie udało się zaindeksować i dlaczego. Jeśli choć jeden dokument jest niewyszukiwalny, aplikacja nie twierdzi, że zbiór jest kompletny.

Obsługiwane formaty

PDF (z warstwą tekstową i skanowany), DOCX, DOC, XLSX, XLS, CSV, TSV, TXT, HTML, RTF, EML, MSG wraz z załącznikami, PNG, JPEG, TIFF, BMP, GIF, WEBP.

Szczegóły, poziom wsparcia i ograniczenia każdego formatu: docs/formaty.md.

Instalacja dla użytkownika

Uruchom instalator FindDocs-0.2.2-instalator.exe. Instalacja nie wymaga uprawnień administratora. Po zakończeniu aplikacja jest dostępna w menu Start. Nie trzeba uruchamiać żadnego serwera ani wpisywać adresu w przeglądarce.

Pełna instrukcja: docs/instrukcja-uzytkownika.md.

Instalacja przez pip

Wymagany Python od 3.11 do 3.14 na Windows 11.

pip install finddocs

Silnik OCR jest opcjonalny i instaluje się jako dodatek:

pip install "finddocs[ocr-rapid]"

Po instalacji polecenie finddocs-gui uruchamia interfejs graficzny, a finddocs daje dostęp do poleceń administracyjnych. Wyszukiwanie dokładne działa od razu. Wyszukiwanie semantyczne i hybrydowe wymaga lokalnego modelu embeddingów, który instaluje jedno polecenie (za jawną zgodą pobiera model z Hugging Face i konwertuje do ONNX):

finddocs model import --use

Polecenie finddocs model import przyjmuje też katalog z własnym modelem albo dowolne repozytorium Hugging Face. Pełny opis instalacji, konfiguracji i modeli: docs/instalacja-pip.md.

Szybki start bez SharePointa

Aplikacja ma wbudowany zbiór demonstracyjny z fikcyjnymi polskimi dokumentami. Na ekranie Źródła i konfiguracja naciśnij Wygeneruj zbiór demonstracyjny, potem przejdź na ekran Indeksowanie i naciśnij Start. Po chwili można wyszukiwać.

To samo z wiersza poleceń:

finddocs demo --register
finddocs index
finddocs search "procedura przelewów 24.07.2015"

Uruchomienie developerskie

Wymagany Python od 3.11 do 3.14 na Windows 11.

py -3.11 -m venv .venv
.venv\Scripts\python.exe -m pip install -e ".[dev,ocr-rapid]"

Model embeddingów pobiera się raz z Hugging Face i eksportuje do ONNX:

git clone https://huggingface.co/sdadas/mmlw-retrieval-roberta-base models/mmlw-retrieval-roberta-base
.venv\Scripts\python.exe -m pip install torch transformers onnx onnxscript
.venv\Scripts\python.exe tools/export_model_onnx.py models/mmlw-retrieval-roberta-base --quantize

Uruchomienie interfejsu:

.venv\Scripts\python.exe -m finddocs.gui

Uruchomienie poleceń administracyjnych:

.venv\Scripts\python.exe -m finddocs --help

Kontrola jakości

.venv\Scripts\python.exe -m ruff check src tests packaging tools
.venv\Scripts\python.exe -m ruff format --check src tests packaging tools
.venv\Scripts\python.exe -m mypy src
.venv\Scripts\python.exe -m pytest -q

Budowanie pakietu i instalatora

.venv\Scripts\python.exe packaging/build_app.py --with-model
.venv\Scripts\python.exe packaging/build_installer.py

Pierwsze polecenie tworzy katalog packaging/output/FindDocs z plikiem wykonywalnym i wykonuje test dymny. Drugie buduje instalator przy pomocy Inno Setup 6. Gdy Inno Setup nie jest zainstalowany, skrypt wypisuje instrukcję instalacji zamiast kończyć pracę bez komunikatu.

Rozmiary wyniku: 409 MB bez modelu, 534 MB z modelem w wersji INT8, 191 MB dla samego instalatora. Przełącznik --full-precision-model dokłada wagi FP32, co powiększa pakiet o około 470 MB i nie jest potrzebne do domyślnej konfiguracji.

Architektura w skrócie

connectors  ->  extractors / ocr  ->  normalization / chunking  ->  indexing
                                                                      |
                                                     search  <--------+
                                                       |
                                                jobs  -+->  gui
  • metadane, fragmenty i indeks pełnotekstowy: SQLite w trybie WAL z FTS5 w wariancie external content;
  • indeks wektorowy: FAISS HNSW z mapą identyfikatorów, usunięcia przez nagrobki i okresową kompaktację;
  • embeddingi: ONNX Runtime na CPU, model sdadas/mmlw-retrieval-roberta-base (Apache-2.0, 768 wymiarów, pooling CLS);
  • interfejs: PySide6 (LGPL).

Szczegóły i diagramy: docs/architektura.md.

Dokumentacja

Dokument Zawartość
Instrukcja użytkownika obsługa aplikacji
Instalacja z PyPI pip, konfiguracja, lokalny model embeddingów
Instrukcja administratora wdrożenie, konfiguracja, CLI
Integracja z SharePoint Microsoft Graph, Entra ID, uprawnienia
Architektura warstwy, diagramy, decyzje
Schemat danych tabele, kolumny, wersjonowanie
Odbudowa indeksu przebudowa, kopie, kompaktacja
Aktualizacja procedura aktualizacji
Diagnostyka logi, kody błędów, typowe problemy
Formaty obsługiwane formaty i poziomy wsparcia
OCR silniki, jakość, wydajność
Znane ograniczenia czego aplikacja nie robi
Raport bezpieczeństwa model zagrożeń i kontrole
Raport PoC porównanie modeli i pomiary
Raport testów zakres i wyniki testów
Licencje komponenty i licencje, SBOM w sbom.cdx.json
Plan RAG i GPU przyszły rozwój
ADR decyzje architektoniczne

Prywatność

Aplikacja nie zawiera telemetrii. Domyślnie cały ruch wychodzący jest zablokowany. Połączenia z Microsoft Graph włączają się dopiero po skonfigurowaniu źródła SharePoint, a pobieranie modelu wymaga osobnej zgody. Lista dozwolonych adresów jest wpisana w kod i widoczna na ekranie Diagnostyka.

Indeks zawiera treść dokumentów, więc katalog %LOCALAPPDATA%\FindDocs podlega tej samej klauzuli poufności co dokumenty źródłowe.

Licencja

Kod aplikacji: licencja MIT, patrz LICENSE. Licencje komponentów i modeli: docs/licencje.md.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

finddocs-0.2.2.tar.gz (338.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

finddocs-0.2.2-py3-none-any.whl (437.8 kB view details)

Uploaded Python 3

File details

Details for the file finddocs-0.2.2.tar.gz.

File metadata

  • Download URL: finddocs-0.2.2.tar.gz
  • Upload date:
  • Size: 338.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for finddocs-0.2.2.tar.gz
Algorithm Hash digest
SHA256 d178ad4cdc0b6d7e7fcdd32ae9e619c4f3e00dd56d7eb339f437844db9403265
MD5 cfc00b68937e1b75e3785fd4ee92bacc
BLAKE2b-256 059c071fe0b85a7a0bb335f0139890783996fc6fd2942b4648285a743352295f

See more details on using hashes here.

Provenance

The following attestation bundles were made for finddocs-0.2.2.tar.gz:

Publisher: publish.yml on KMChris/finddocs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file finddocs-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: finddocs-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 437.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for finddocs-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 d3e0e09b1fff2ecdd77d592e1bbb7b122233072da320ddbca1ebf22c2173add8
MD5 7e1c4bf8aa8491b953c9020ec41aacc3
BLAKE2b-256 f05182c2d5f8c66d9076ee73c21b908802ba7803f9a0cd766058c61a8839195d

See more details on using hashes here.

Provenance

The following attestation bundles were made for finddocs-0.2.2-py3-none-any.whl:

Publisher: publish.yml on KMChris/finddocs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.3.0

2 files

0.2.4

2 files

0.2.3

2 files

This release

0.2.2 This release

2 files

0.2.1

2 files

0.2.0

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page