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.1.0-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 3.11 lub 3.12 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 modelu embeddingów: przygotuj go według sekcji o uruchomieniu developerskim (potrzebne jest sklonowane repozytorium ze skryptem eksportu), a następnie umieść katalog modelu w %LOCALAPPDATA%\FindDocs\models albo wskaż go w konfiguracji.

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 3.11 lub 3.12 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
.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
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.1.0.tar.gz (320.0 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.1.0-py3-none-any.whl (417.3 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for finddocs-0.1.0.tar.gz
Algorithm Hash digest
SHA256 5a90617bd76dbc97810351da241002aad52eaa4f8db9d856d9af6208fe0271f6
MD5 b9a58eaee66f5ac3a2bdf029ff41ad64
BLAKE2b-256 5e1e1b3faa6d59d01a5dd8b1fa894d69ca0ed6aedc8c8cb9fd1bec45132fc4b4

See more details on using hashes here.

Provenance

The following attestation bundles were made for finddocs-0.1.0.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.1.0-py3-none-any.whl.

File metadata

  • Download URL: finddocs-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 417.3 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.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 aee0db0aa14e853f989aee040b31e21ce18858d35de9542b3df2b79a72a1e814
MD5 6cfcefce49bb5bc5eb36e0ad97da6b16
BLAKE2b-256 c29e37d964b9bb46f3c5d64e92fe2dcdeca1afdd24298bf554bb49453abcd825

See more details on using hashes here.

Provenance

The following attestation bundles were made for finddocs-0.1.0-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

0.2.2

2 files

0.2.1

2 files

0.2.0

2 files

This release

0.1.0 This release

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