feat: 添加线索引擎、NLQ、场景检测、前端界面等核心功能模块
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
"""生成演示数据:跑两个场景扫描,落库若干线索,供前端看板演示。
|
||||
|
||||
用法:python -m scripts.seed_demo
|
||||
仅用于本地演示,使用脱敏/虚构数据,不涉及真实业务数据。
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from app.db import get_sessionmaker
|
||||
from app.engines import scan
|
||||
from app.scenarios.churn_fraud import CohortPoint
|
||||
from app.scenarios.split_contract import ContractRecord
|
||||
|
||||
|
||||
def main() -> None:
|
||||
sm = get_sessionmaker()
|
||||
with sm() as session:
|
||||
# 场景一:8 个客户拆单 + 同一实控人
|
||||
contracts = [
|
||||
ContractRecord(f"HT-{i}", f"政企客户{i}", 790000 + i * 25000) for i in range(8)
|
||||
]
|
||||
r1 = scan.run_split_contract_scan(
|
||||
session, contracts, approval_threshold=1_000_000, shared_controller=True
|
||||
)
|
||||
|
||||
# 场景二:养卡骗补,第 3 月断崖退订
|
||||
curve = [
|
||||
CohortPoint(0, 1.0), CohortPoint(1, 0.96),
|
||||
CohortPoint(2, 0.92), CohortPoint(3, 0.08),
|
||||
]
|
||||
r2 = scan.run_churn_scan(
|
||||
session, retention_curve=curve, commission_paid=360000,
|
||||
active_ratio=0.04, zero_usage_ratio=0.93, channel_key="渠道-华南-001",
|
||||
)
|
||||
|
||||
# 再来一条中置信
|
||||
curve2 = [CohortPoint(0, 1.0), CohortPoint(1, 0.7), CohortPoint(2, 0.55)]
|
||||
r3 = scan.run_churn_scan(
|
||||
session, retention_curve=curve2, commission_paid=80000,
|
||||
active_ratio=0.4, zero_usage_ratio=0.5, channel_key="渠道-西南-007",
|
||||
)
|
||||
|
||||
session.commit()
|
||||
for r in (r1, r2, r3):
|
||||
if r.clue:
|
||||
print(f"已生成线索 [{r.scenario_code}] {r.clue.title} "
|
||||
f"置信={r.clue.confidence.value} 评分={r.clue.score}")
|
||||
else:
|
||||
print(f"[{r.scenario_code}] 未命中阈值,无线索")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user