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:
|
Ziele:
|
||||||
- Keine API-Signaturänderungen (bestehende Routen bleiben)
|
|
||||||
- /semantic/pages reichert pageid/fullurl für ALLE Titel batchweise an (redirects=1, converttitles=1)
|
- /semantic/pages reichert pageid/fullurl für ALLE Titel batchweise an (redirects=1, converttitles=1)
|
||||||
- /info robust: 404 statt 500, mit Titel-Varianten
|
- /info robust: 404 statt 500, mit Titel-Varianten
|
||||||
- Wiederholungen & Throttling gegen MediaWiki
|
- Wiederholungen & Throttling gegen MediaWiki
|
||||||
- Optionale Diagnose-Ausgaben und Coverage-Kennzahlen
|
- 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
|
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.
|
prefix="/import/wiki" ergänzen und in main.py OHNE prefix einbinden.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from typing import Dict, Any, Optional, List, Tuple
|
from typing import Dict, Any, Optional, List
|
||||||
from fastapi import APIRouter, HTTPException, Query, Request
|
from fastapi import APIRouter, HTTPException, Query
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
import os, time, logging
|
import os, time, logging
|
||||||
import requests
|
import requests
|
||||||
|
|
@ -38,7 +39,7 @@ WIKI_SLEEPMS = int(os.getenv("WIKI_SLEEP_MS", "0")) # Throttle zwischen Requ
|
||||||
|
|
||||||
# Single Session (Cookies für Login)
|
# Single Session (Cookies für Login)
|
||||||
wiki_session = requests.Session()
|
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 --------
|
# -------- Schemas --------
|
||||||
class WikiLoginRequest(BaseModel):
|
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)
|
return PageContentResponse(pageid=pageid, title=title or "", wikitext=wikitext)
|
||||||
|
|
||||||
@router.get("/info", response_model=PageInfoResponse)
|
@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
|
# 1. Versuch: wie geliefert, mit redirects/converttitles
|
||||||
res = _fetch_pageinfo_batch([title])
|
res = _fetch_pageinfo_batch([title])
|
||||||
if res.get(title):
|
if res.get(title):
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user