| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- # -*- coding: utf-8 -*-
- """预测器层(PREDICTORS)。
- 只做模型推理和模型后处理,不直接读写 Redis/PG,模型路径从配置读取。
- 按 ARCHITECTURE.md §6.2 Predictor 接口约束:
- - Predictor 不直接读写 Redis/PG。
- - 模型路径从配置读取,不拼接代码目录。
- - load() 与 predict() 分离,便于启动预热和测试 mock。
- - Predictor 之间不互相 import,通过 Pipeline 编排顺序传递结果。
- Phase 5 已填充模块(从 interface/predictor.py 迁出):
- _common.py <- sess_config / agency_set / header_set / is_agency / get_td_companys / get_role
- codename.py <- CodeNamePredict
- prem.py <- PREMPredict / EPCPredict
- form.py <- FormPredictor
- role.py <- RoleRulePredictor / RoleRuleFinalAdd / TendereeRuleRecall(Phase E 起薄委托 role_recall_engine)/ RoleGrade / role_special_predictor
- role_context.py <- RoleContext / build_role_contexts(Phase A 上下文预计算,prem/roleRule/tendereeRuleRecall 共享)
- role_recall_engine.py <- RoleRecallEngine(Phase E 召回规则统一引擎,消费 role_context.yaml / role_fallback.yaml)
- role_rule_engine.py <- RoleRuleEngine(Phase C 模型后修正引擎,消费 role_context_fix.yaml / role_money_fix.yaml)
- money.py <- MoneyGrade / DepositPaymentWay / TotalUnitMoney
- time.py <- TimePredictor
- product.py <- ProductPredictor
- product_attrs.py <- TableResult / ProductAttributesPredictor
- channel.py <- DocChannel
- label.py <- ProjectLabel / IndustryLabel / PropertyLabel / BiddingScore
- industry.py <- IndustryPredictor
- district.py <- DistrictPredictor
- table_prem.py <- TableTag2List / TablePremExtractor / CandidateExtractor / is_head_line / get_header_line
- websource.py <- WebsourceTenderee
- approval.py <- ApprovalPredictor
- entity_type.py <- EntityTypeRulePredictor / get_package_moneys
- Phase 2 已建立:
- base.py <- BasePredictor 抽象基类
- registry.py <- PredictorRegistry(替代 dict_predictor)
- 依赖方向(§4.3):
- - predictors 可引用 common / infra / interface.Entitys / interface.modelFactory / model_runtime
- - predictors 不反向依赖 pipeline / assembly / rules
- - predictors 之间不互相 import(通过 Pipeline 编排)
- - predictors._common 提供共享状态(sess_config / agency_set / header_set / 辅助函数)
- """
|