Akteure im Container, Kontakt im User-Agent
Das Abbild traegt jetzt spaCy und de_core_news_lg 3.8.0 mit fester Version sowie den Wikidata-Spiegel. Es waechst dadurch von 1,28 auf 2,12 GB. Das Modell liegt im Abbild statt im Cache-Volume: 568 MB, die sich nie aendern, und der erste Lauf auf Prod soll nicht an einem Download haengen. Gemessen: ein Slot-Lauf im Container erzeugt bitgleich dieselbe Nutzlast wie die Workstation - 3407 Codings, 0 Abweichungen, gleiche coder_version. Der User-Agent fuer die WDQS traegt jetzt die Impressumsadresse des Projekts, wie es die Nutzungsrichtlinie erbittet. NOTES.md haelt fest, woher die Zeichenkette "None" kommt: bei leerer <description> faellt der Poller auf content:encoded zurueck, und die ZEIT liefert dort einen Anker, dessen Text "None" lautet. Phase 1 schreibt getreu mit, der Fehler ist stromaufwaerts. Am Live-Feed reproduziert, 8 von 15 Items. Der Prod-Cluster-Dump ist per .gitignore ausgeschlossen - er enthaelt die Rollen samt Passworthashes, auch die von gitea und hedgedoc. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NupWEBPzsyohVPG47HsTz8
This commit is contained in:
co-authored by
Claude Opus 5
parent
7e4c31912c
commit
1ce7610e55
@@ -412,3 +412,41 @@ Wahl.
|
||||
Bei Stapelgröße 64, 7 und 1 sowie rückwärts durchlaufen liefert
|
||||
`de_core_news_lg` für 400 Items identische Spannen. Der Kunstgriff mit der
|
||||
festen Tokenlänge, den die Embeddings brauchen, ist hier nicht nötig.
|
||||
|
||||
|
||||
## Woher `None` wirklich kommt
|
||||
|
||||
Reproduziert am Live-Feed, nicht erschlossen: bei Items mit leerer
|
||||
`<description>` fällt der Poller korrekt auf `content:encoded` zurück, und
|
||||
dort liefert die ZEIT
|
||||
|
||||
```
|
||||
<a href="https://www.zeit.de/news/..."><img ...>None</a>
|
||||
```
|
||||
|
||||
Der Ankertext *ist* die Zeichenkette `None` — ein Renderfehler im CMS der
|
||||
ZEIT. `klartext()` entfernt die Tags, und übrig bleibt `None`. Phase 1
|
||||
schreibt also getreu mit; der Fehler ist stromaufwärts.
|
||||
|
||||
Am 8. September 2026 betraf das 8 von 15 Items im Feed. Im Prod-Bestand:
|
||||
|
||||
| Tag | `None` / zeit-Items |
|
||||
|---|---|
|
||||
| 2026-09-04 | 12 / 20 |
|
||||
| 2026-09-05 | 83 / 136 |
|
||||
| 2026-09-06 | 187 / 262 |
|
||||
| 2026-09-07 | 305 / 400 |
|
||||
| 2026-09-08 | 67 / 79 |
|
||||
|
||||
Gleichbleibend rund 70 bis 85 Prozent — der Fehler läuft weiter.
|
||||
|
||||
## Container mit spaCy
|
||||
|
||||
Das Abbild wächst durch `de_core_news_lg` von 1,28 auf 2,12 GB. Das Modell
|
||||
liegt im Abbild, nicht im Cache-Volume: 568 MB, die sich nie ändern, und der
|
||||
erste Lauf auf Prod soll nicht an einem Download hängen.
|
||||
|
||||
Gemessen, nicht behauptet: ein Slot-Lauf im Container (Debian trixie,
|
||||
Python 3.13) erzeugt für die Akteure bitgleich dieselbe Nutzlast wie die
|
||||
Workstation (Fedora, Python 3.14) — 3407 Codings, 0 Abweichungen, gleiche
|
||||
`coder_version`.
|
||||
|
||||
+5
-4
@@ -32,11 +32,12 @@ import urllib.request
|
||||
VERZEICHNIS = pathlib.Path(__file__).parent / "lexikon"
|
||||
ENDPUNKT = "https://query.wikidata.org/sparql"
|
||||
|
||||
# Die Nutzungsrichtlinie der WDQS bittet um einen sprechenden User-Agent.
|
||||
# Eine Kontaktangabe gehoert hier hinein, sobald eine vereinbart ist -
|
||||
# bis dahin steht nur der Name des Projekts da, keine fremde Adresse.
|
||||
# Die Nutzungsrichtlinie der WDQS bittet um einen sprechenden User-Agent mit
|
||||
# Kontaktangabe. Hier steht die Impressumsadresse des Projekts - eine
|
||||
# oeffentliche Adresse, die genau dafuer da ist.
|
||||
KENNUNG = os.environ.get(
|
||||
"WDQS_USER_AGENT", "wurzelwerk-p2/0.1 (Datenjournalismus-Pipeline Wurzelwerkt)"
|
||||
"WDQS_USER_AGENT",
|
||||
"wurzelwerk-p2/0.1 (Datenjournalismus-Pipeline Wurzelwerkt; stress@bnd.wtf)",
|
||||
)
|
||||
|
||||
# Pause zwischen zwei Abfragen. Die WDQS erlaubt mehr, aber wir haben es
|
||||
|
||||
Reference in New Issue
Block a user