feat: support score in keyword parsers
All checks were successful
build / build (push) Successful in 1m47s
build / trigger-build-image (push) Successful in 10s

This commit is contained in:
张泊明518370910136 2025-06-15 10:49:54 -04:00
parent 5404313199
commit 367a79850c
GPG Key ID: D47306D7062CDA9D
3 changed files with 4 additions and 1 deletions

View File

@ -223,6 +223,7 @@ class KeywordConfig(BaseModel):
class KeywordMatchConfig(BaseModel): class KeywordMatchConfig(BaseModel):
score: int = 0
matches: List[KeywordConfig] = [] matches: List[KeywordConfig] = []

View File

@ -67,6 +67,7 @@ class ParserResultStatus(BaseModel):
class ParserKeyword(BaseModel): class ParserKeyword(BaseModel):
score: int = 0
keyword: List[str] = [] keyword: List[str] = []
weight: List[int] = [] weight: List[int] = []

View File

@ -124,10 +124,11 @@ def fix_keyword(
for keyword, score in zip(keyword_config.keyword, keyword_config.weight): for keyword, score in zip(keyword_config.keyword, keyword_config.weight):
score_groups.setdefault(score, []).append(keyword) score_groups.setdefault(score, []).append(keyword)
keyword_parser.with_ = result.KeywordMatchConfig( keyword_parser.with_ = result.KeywordMatchConfig(
score=keyword_config.score,
matches=[ matches=[
result.KeywordConfig(keywords=keywords, score=score) result.KeywordConfig(keywords=keywords, score=score)
for score, keywords in score_groups.items() for score, keywords in score_groups.items()
] ],
) )