feat: persist reviewed chunks and index publication versions

This commit is contained in:
2026-10-16 08:44:30 +08:00
parent 3f25ffab83
commit 41b3ae0e41
20 changed files with 1027 additions and 16 deletions
+7 -3
View File
@@ -151,15 +151,19 @@ def load_corpus(db: Session, category: str | None) -> list[dict]:
return corpus
def corpus_fingerprint(corpus: list[dict]) -> str:
return hashlib.sha256(
json.dumps(corpus, ensure_ascii=False, sort_keys=True, separators=(",", ":")).encode()
).hexdigest()
def retrieve(db: Session, payload: RetrievalRequest) -> RetrievalResponse:
started = perf_counter()
terms = list(dict.fromkeys(tokenize(payload.query)))
if not terms:
raise HTTPException(422, "问题中没有可检索词,请补充具体关键词")
corpus = load_corpus(db, payload.category)
fingerprint = hashlib.sha256(
json.dumps(corpus, ensure_ascii=False, sort_keys=True, separators=(",", ":")).encode()
).hexdigest()
fingerprint = corpus_fingerprint(corpus)
counters = [
Counter(tokenize(item["title"]) * CONFIG.title_weight + tokenize(item["content"]))
for item in corpus