s-websearch 1.0.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,87 @@
1
+ Metadata-Version: 2.4
2
+ Name: s-websearch
3
+ Version: 1.0.0
4
+ Summary: SearXNG-basierte Suche mit Intent-Klassifikation, Domain-Trust und Cross-Encoder-Reranking (persönliches Tool, siehe README fuer Import-Verhalten)
5
+ Author: sxbo
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://github.com/DEIN_USERNAME/s-search
8
+ Requires-Python: >=3.9
9
+ Description-Content-Type: text/markdown
10
+ Requires-Dist: httpx>=0.24
11
+ Requires-Dist: sentence-transformers>=2.2
12
+ Requires-Dist: transformers>=4.30
13
+ Requires-Dist: curl_cffi>=0.6
14
+ Requires-Dist: beautifulsoup4>=4.11
15
+
16
+ # s-websearch
17
+
18
+ Fortgeschrittene Such-Pipeline auf Basis von SearXNG: Multi-Page-Abfrage, Domain-Discovery,
19
+ Zero-Shot-Intent-Klassifikation (News / Dokument / Fakt), Cross-Encoder-Reranking und
20
+ Hybrid-Scoring (SERP-Position + Domain-Trust + Relevanz).
21
+
22
+ ## ⚠️ Wichtig, bevor du installierst
23
+
24
+ Dieses Paket wurde primär für den eigenen Gebrauch veröffentlicht (persönliches Tool, das
25
+ von überall abrufbar sein soll). Es verhält sich **nicht** wie eine normale, "stille" Python-Bibliothek:
26
+
27
+ - **Blockierender Import:** Allein durch `import s_websearch` bzw. `from s_websearch import Web`
28
+ wird automatisch Setup-Code ausgeführt — inklusive Laden von ML-Modellen
29
+ (`sentence-transformers` / `transformers`, mehrere hundert MB Downloads beim ersten Mal)
30
+ und Print-Ausgaben. Das kann je nach Internetverbindung/Hardware mehrere Sekunden bis
31
+ Minuten dauern, **bevor dein restlicher Code überhaupt weiterläuft.**
32
+ - **Startet ggf. automatisch einen Docker-Container:** Falls Docker auf dem System installiert
33
+ ist, versucht das Paket beim Import, selbstständig eine lokale SearXNG-Instanz per
34
+ `docker compose up -d` zu starten (kein Rückfrage-Dialog).
35
+ - **Fällt sonst auf öffentliche SearXNG-Instanzen zurück:** Ist kein Docker vorhanden, sendet
36
+ das Paket Suchanfragen automatisch an fremde, öffentliche SearXNG-Server (z. B. `searx.be`).
37
+ - **Große Abhängigkeiten:** `sentence-transformers` und `transformers` ziehen ML-Modelle nach,
38
+ der Installations-Fußabdruck ist deutlich größer als bei einem einfachen Scraping-Paket.
39
+ - Über die Umgebungsvariable `SMART_SEARCH_SKIP_INIT=1` kann der komplette Auto-Setup-Block
40
+ beim Import übersprungen werden, falls du das nicht willst (z. B. für CI/Tests).
41
+
42
+ **Kurz gesagt:** Wenn du nur schnell `pip install`en und direkt lostippen willst, ohne dass im
43
+ Hintergrund Modelle geladen oder Docker-Container gestartet werden, ist das hier vermutlich
44
+ nicht das richtige Paket für dich.
45
+
46
+ ## Installation
47
+
48
+ ```bash
49
+ pip install s-websearch
50
+ ```
51
+
52
+ Vorausgesetzt (optional, aber empfohlen): Docker installiert, damit lokal eine SearXNG-Instanz
53
+ läuft statt öffentlicher Fallback-Instanzen.
54
+
55
+ ## Verwendung
56
+
57
+ ```python
58
+ from s_websearch import Web
59
+
60
+ results = Web.search("python packaging", result_count=10, source="on")
61
+ for r in results:
62
+ print(r["title"], r["source"], r["content"])
63
+ ```
64
+
65
+ ### Auto-Setup überspringen
66
+
67
+ ```bash
68
+ # vor dem Import setzen
69
+ export SMART_SEARCH_SKIP_INIT=1
70
+ ```
71
+
72
+ ```python
73
+ import os
74
+ os.environ["SMART_SEARCH_SKIP_INIT"] = "1"
75
+
76
+ from s_websearch import Web
77
+ Web.preload(background=False) # Modelle explizit laden, wenn du bereit bist
78
+ ```
79
+
80
+ ## Architektur (kurz)
81
+
82
+ 1. SearXNG lokal (automatisch per Docker gestartet, falls nötig)
83
+ 2. Parallele Multi-Page-Abfrage (async)
84
+ 3. Regelbasierte Zwei-Phasen-Domain-Discovery (site:-Deep-Dive)
85
+ 4. Zero-Shot-Intent-Classifier (News / Dokument / Fakt)
86
+ 5. Cross-Encoder-Reranking
87
+ 6. Hybrid-Score: SERP-Position + Domain-Trust + Cross-Encoder-Relevanz
@@ -0,0 +1,72 @@
1
+ # s-websearch
2
+
3
+ Fortgeschrittene Such-Pipeline auf Basis von SearXNG: Multi-Page-Abfrage, Domain-Discovery,
4
+ Zero-Shot-Intent-Klassifikation (News / Dokument / Fakt), Cross-Encoder-Reranking und
5
+ Hybrid-Scoring (SERP-Position + Domain-Trust + Relevanz).
6
+
7
+ ## ⚠️ Wichtig, bevor du installierst
8
+
9
+ Dieses Paket wurde primär für den eigenen Gebrauch veröffentlicht (persönliches Tool, das
10
+ von überall abrufbar sein soll). Es verhält sich **nicht** wie eine normale, "stille" Python-Bibliothek:
11
+
12
+ - **Blockierender Import:** Allein durch `import s_websearch` bzw. `from s_websearch import Web`
13
+ wird automatisch Setup-Code ausgeführt — inklusive Laden von ML-Modellen
14
+ (`sentence-transformers` / `transformers`, mehrere hundert MB Downloads beim ersten Mal)
15
+ und Print-Ausgaben. Das kann je nach Internetverbindung/Hardware mehrere Sekunden bis
16
+ Minuten dauern, **bevor dein restlicher Code überhaupt weiterläuft.**
17
+ - **Startet ggf. automatisch einen Docker-Container:** Falls Docker auf dem System installiert
18
+ ist, versucht das Paket beim Import, selbstständig eine lokale SearXNG-Instanz per
19
+ `docker compose up -d` zu starten (kein Rückfrage-Dialog).
20
+ - **Fällt sonst auf öffentliche SearXNG-Instanzen zurück:** Ist kein Docker vorhanden, sendet
21
+ das Paket Suchanfragen automatisch an fremde, öffentliche SearXNG-Server (z. B. `searx.be`).
22
+ - **Große Abhängigkeiten:** `sentence-transformers` und `transformers` ziehen ML-Modelle nach,
23
+ der Installations-Fußabdruck ist deutlich größer als bei einem einfachen Scraping-Paket.
24
+ - Über die Umgebungsvariable `SMART_SEARCH_SKIP_INIT=1` kann der komplette Auto-Setup-Block
25
+ beim Import übersprungen werden, falls du das nicht willst (z. B. für CI/Tests).
26
+
27
+ **Kurz gesagt:** Wenn du nur schnell `pip install`en und direkt lostippen willst, ohne dass im
28
+ Hintergrund Modelle geladen oder Docker-Container gestartet werden, ist das hier vermutlich
29
+ nicht das richtige Paket für dich.
30
+
31
+ ## Installation
32
+
33
+ ```bash
34
+ pip install s-websearch
35
+ ```
36
+
37
+ Vorausgesetzt (optional, aber empfohlen): Docker installiert, damit lokal eine SearXNG-Instanz
38
+ läuft statt öffentlicher Fallback-Instanzen.
39
+
40
+ ## Verwendung
41
+
42
+ ```python
43
+ from s_websearch import Web
44
+
45
+ results = Web.search("python packaging", result_count=10, source="on")
46
+ for r in results:
47
+ print(r["title"], r["source"], r["content"])
48
+ ```
49
+
50
+ ### Auto-Setup überspringen
51
+
52
+ ```bash
53
+ # vor dem Import setzen
54
+ export SMART_SEARCH_SKIP_INIT=1
55
+ ```
56
+
57
+ ```python
58
+ import os
59
+ os.environ["SMART_SEARCH_SKIP_INIT"] = "1"
60
+
61
+ from s_websearch import Web
62
+ Web.preload(background=False) # Modelle explizit laden, wenn du bereit bist
63
+ ```
64
+
65
+ ## Architektur (kurz)
66
+
67
+ 1. SearXNG lokal (automatisch per Docker gestartet, falls nötig)
68
+ 2. Parallele Multi-Page-Abfrage (async)
69
+ 3. Regelbasierte Zwei-Phasen-Domain-Discovery (site:-Deep-Dive)
70
+ 4. Zero-Shot-Intent-Classifier (News / Dokument / Fakt)
71
+ 5. Cross-Encoder-Reranking
72
+ 6. Hybrid-Score: SERP-Position + Domain-Trust + Cross-Encoder-Relevanz
@@ -0,0 +1,27 @@
1
+ [build-system]
2
+ requires = ["setuptools>=68.0"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "s-websearch"
7
+ version = "1.0.0"
8
+ description = "SearXNG-basierte Suche mit Intent-Klassifikation, Domain-Trust und Cross-Encoder-Reranking (persönliches Tool, siehe README fuer Import-Verhalten)"
9
+ readme = "README.md"
10
+ license = "MIT"
11
+ requires-python = ">=3.9"
12
+ authors = [
13
+ { name = "sxbo" }
14
+ ]
15
+ dependencies = [
16
+ "httpx>=0.24",
17
+ "sentence-transformers>=2.2",
18
+ "transformers>=4.30",
19
+ "curl_cffi>=0.6",
20
+ "beautifulsoup4>=4.11",
21
+ ]
22
+
23
+ [project.urls]
24
+ Homepage = "https://github.com/DEIN_USERNAME/s-search"
25
+
26
+ [tool.setuptools.packages.find]
27
+ include = ["s_websearch*"]