diff --git a/llm-api/wiki_router.py b/llm-api/wiki_router.py index 51ea8be..466ffc1 100644 --- a/llm-api/wiki_router.py +++ b/llm-api/wiki_router.py @@ -1,22 +1,23 @@ """ -wiki_router.py - v1.4.0 (stabil & nachvollziehbar) +wiki_router.py – v1.4.1 (stabil & nachvollziehbar) + +Änderungen ggü. v1.4.0: +- /info: Optionalen Request-Parameter entfernt (FastAPI/Pydantic Typfehler behoben) +- Keine API-Signaturänderungen der Routen Ziele: -- Keine API-Signaturänderungen (bestehende Routen bleiben) - /semantic/pages reichert pageid/fullurl für ALLE Titel batchweise an (redirects=1, converttitles=1) - /info robust: 404 statt 500, mit Titel-Varianten - Wiederholungen & Throttling gegen MediaWiki - Optionale Diagnose-Ausgaben und Coverage-Kennzahlen -Annahme: Der Router wird in main.py mit Prefix eingebunden: - app.include_router(wiki_router, prefix="/import/wiki") Wenn ihr stattdessen den Prefix im Router setzen wollt, einfach in der APIRouter-Zeile unten prefix="/import/wiki" ergänzen und in main.py OHNE prefix einbinden. """ -from typing import Dict, Any, Optional, List, Tuple -from fastapi import APIRouter, HTTPException, Query, Request +from typing import Dict, Any, Optional, List +from fastapi import APIRouter, HTTPException, Query from pydantic import BaseModel import os, time, logging import requests @@ -27,7 +28,7 @@ load_dotenv() logger = logging.getLogger("wiki_router") logger.setLevel(logging.INFO) -router = APIRouter(prefix="/import/wiki", tags=["wiki"]) +router = APIRouter(prefix="/import/wiki", tags=["wiki"]) # -------- Konfiguration -------- WIKI_API_URL = os.getenv("WIKI_API_URL", "https://karatetrainer.net/api.php") @@ -38,7 +39,7 @@ WIKI_SLEEPMS = int(os.getenv("WIKI_SLEEP_MS", "0")) # Throttle zwischen Requ # Single Session (Cookies für Login) wiki_session = requests.Session() -wiki_session.headers.update({"User-Agent": "local-llm-wiki-proxy/1.4"}) +wiki_session.headers.update({"User-Agent": "local-llm-wiki-proxy/1.4.1"}) # -------- Schemas -------- class WikiLoginRequest(BaseModel): @@ -214,7 +215,7 @@ def parse_page(pageid: int = Query(...), title: str = Query(None)): return PageContentResponse(pageid=pageid, title=title or "", wikitext=wikitext) @router.get("/info", response_model=PageInfoResponse) -def page_info(title: str = Query(..., description="Seitentitel"), request: Request | None = None): +def page_info(title: str = Query(..., description="Seitentitel")): # 1. Versuch: wie geliefert, mit redirects/converttitles res = _fetch_pageinfo_batch([title]) if res.get(title):