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.
- s_websearch-1.0.0/PKG-INFO +87 -0
- s_websearch-1.0.0/README.md +72 -0
- s_websearch-1.0.0/pyproject.toml +27 -0
- s_websearch-1.0.0/s_websearch/__init__.py +1098 -0
- s_websearch-1.0.0/s_websearch.egg-info/PKG-INFO +87 -0
- s_websearch-1.0.0/s_websearch.egg-info/SOURCES.txt +8 -0
- s_websearch-1.0.0/s_websearch.egg-info/dependency_links.txt +1 -0
- s_websearch-1.0.0/s_websearch.egg-info/requires.txt +5 -0
- s_websearch-1.0.0/s_websearch.egg-info/top_level.txt +1 -0
- s_websearch-1.0.0/setup.cfg +4 -0
|
@@ -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*"]
|