llm-api/wiki_router.py aktualisiert
All checks were successful
Deploy Trainer_LLM to llm-node / deploy (push) Successful in 2s
All checks were successful
Deploy Trainer_LLM to llm-node / deploy (push) Successful in 2s
This commit is contained in:
parent
bba860d839
commit
d8d12e0b6b
|
|
@ -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):
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user