From cdc2c4ead66bb522fc6879b0b9f9db70ad246b38 Mon Sep 17 00:00:00 2001 From: ntnt Date: Tue, 17 Mar 2026 22:39:05 +0800 Subject: [PATCH] fix: bugs-04 --- backend/app/api/v1/assessments.py | 2 + backend/app/api/v1/images.py | 46 ++ backend/app/api/v1/transactions.py | 24 +- backend/app/rules/transit_rules.py | 28 + backend/app/schemas/image.py | 5 + backend/app/schemas/transaction.py | 15 + backend/app/services/case_service.py | 10 +- backend/app/services/matching_service.py | 11 +- backend/tests/test_rules.py | 28 +- docs/competition-book/Makefile | 9 + docs/competition-book/build.sh | 5 + .../competition-book/chapters/01-overview.tex | 66 ++ docs/competition-book/chapters/02-demand.tex | 88 +++ .../competition-book/chapters/03-solution.tex | 89 +++ .../chapters/04-mechanism.tex | 140 ++++ .../chapters/05-implementation.tex | 117 +++ .../chapters/06-innovation.tex | 72 ++ .../chapters/07-application.tex | 77 ++ .../chapters/08-conclusion.tex | 16 + .../competition-book/chapters/09-appendix.tex | 41 ++ docs/competition-book/main.aux | 115 +++ docs/competition-book/main.out | 64 ++ docs/competition-book/main.pdf | Bin 0 -> 289586 bytes docs/competition-book/main.tex | 65 ++ docs/competition-book/main.toc | 64 ++ docs/competition-book/preamble.tex | 86 +++ docs/competition-plan.md | 416 +++++++++++ docs/project-book/.gitignore | 11 - docs/project-book/Makefile | 19 - docs/project-book/build.sh | 21 - docs/project-book/chapters/.gitkeep | 1 - .../project-book/chapters/01-introduction.tex | 30 - docs/project-book/chapters/02-background.tex | 52 -- .../chapters/03-demand-analysis.tex | 100 --- .../project-book/chapters/04-architecture.tex | 93 --- .../chapters/05-implementation.tex | 74 -- docs/project-book/chapters/06-innovation.tex | 66 -- docs/project-book/chapters/07-evaluation.tex | 64 -- docs/project-book/chapters/08-conclusion.tex | 24 - docs/project-book/chapters/appendix-a-api.tex | 31 - .../chapters/appendix-b-models.tex | 23 - .../chapters/appendix-c-figures.tex | 36 - .../chapters/appendix-d-video.tex | 34 - docs/project-book/chapters/appendix-e-qa.tex | 31 - docs/project-book/figures/README.md | 43 -- docs/project-book/main.tex | 78 -- docs/project-book/preamble.tex | 80 --- docs/project-book/tables/.gitkeep | 1 - ...½â€œæ™ºæ…§+警务â€AI智能体大赛10页PPT大纲与讲稿.md | 324 --------- docs/全国“智慧+警务â€AI智能体大赛å‚赛方案.md | 675 ------------------ 50 files changed, 1694 insertions(+), 1916 deletions(-) create mode 100644 docs/competition-book/Makefile create mode 100755 docs/competition-book/build.sh create mode 100644 docs/competition-book/chapters/01-overview.tex create mode 100644 docs/competition-book/chapters/02-demand.tex create mode 100644 docs/competition-book/chapters/03-solution.tex create mode 100644 docs/competition-book/chapters/04-mechanism.tex create mode 100644 docs/competition-book/chapters/05-implementation.tex create mode 100644 docs/competition-book/chapters/06-innovation.tex create mode 100644 docs/competition-book/chapters/07-application.tex create mode 100644 docs/competition-book/chapters/08-conclusion.tex create mode 100644 docs/competition-book/chapters/09-appendix.tex create mode 100644 docs/competition-book/main.aux create mode 100644 docs/competition-book/main.out create mode 100644 docs/competition-book/main.pdf create mode 100644 docs/competition-book/main.tex create mode 100644 docs/competition-book/main.toc create mode 100644 docs/competition-book/preamble.tex create mode 100644 docs/competition-plan.md delete mode 100644 docs/project-book/.gitignore delete mode 100644 docs/project-book/Makefile delete mode 100644 docs/project-book/build.sh delete mode 100644 docs/project-book/chapters/.gitkeep delete mode 100644 docs/project-book/chapters/01-introduction.tex delete mode 100644 docs/project-book/chapters/02-background.tex delete mode 100644 docs/project-book/chapters/03-demand-analysis.tex delete mode 100644 docs/project-book/chapters/04-architecture.tex delete mode 100644 docs/project-book/chapters/05-implementation.tex delete mode 100644 docs/project-book/chapters/06-innovation.tex delete mode 100644 docs/project-book/chapters/07-evaluation.tex delete mode 100644 docs/project-book/chapters/08-conclusion.tex delete mode 100644 docs/project-book/chapters/appendix-a-api.tex delete mode 100644 docs/project-book/chapters/appendix-b-models.tex delete mode 100644 docs/project-book/chapters/appendix-c-figures.tex delete mode 100644 docs/project-book/chapters/appendix-d-video.tex delete mode 100644 docs/project-book/chapters/appendix-e-qa.tex delete mode 100644 docs/project-book/figures/README.md delete mode 100644 docs/project-book/main.tex delete mode 100644 docs/project-book/preamble.tex delete mode 100644 docs/project-book/tables/.gitkeep delete mode 100644 docs/全国“智慧+警务â€AI智能体大赛10页PPT大纲与讲稿.md delete mode 100644 docs/全国“智慧+警务â€AI智能体大赛å‚赛方案.md diff --git a/backend/app/api/v1/assessments.py b/backend/app/api/v1/assessments.py index 7139e01..e68bf1d 100644 --- a/backend/app/api/v1/assessments.py +++ b/backend/app/api/v1/assessments.py @@ -16,6 +16,7 @@ from app.schemas.assessment import ( InquirySuggestionOut, ) from app.services.assessment_service import generate_inquiry_suggestions +from app.services.case_service import recalculate_case_total router = APIRouter() @@ -48,6 +49,7 @@ async def review_assessment( "reviewed_by": body.reviewed_by, "reviewed_at": datetime.now(timezone.utc), }) + await recalculate_case_total(assessment.case_id, db) # eager-load the transaction relationship to avoid lazy-load in async context result = await db.execute( diff --git a/backend/app/api/v1/images.py b/backend/app/api/v1/images.py index d313b2d..482cb80 100644 --- a/backend/app/api/v1/images.py +++ b/backend/app/api/v1/images.py @@ -15,11 +15,13 @@ from app.schemas.image import ( ImageOut, ImageDetailOut, OcrFieldCorrection, + OcrBlockUpdateIn, CaseOcrStartIn, CaseImagesDeleteIn, ) from app.utils.hash import sha256_file from app.utils.file_storage import save_upload +from app.models.ocr_block import OcrBlock router = APIRouter() @@ -149,6 +151,50 @@ async def correct_ocr( return {"message": "修正已ä¿å­˜", "corrections": len(corrections)} +@router.patch("/images/{image_id}/ocr-blocks") +async def update_ocr_blocks( + image_id: UUID, + blocks: list[OcrBlockUpdateIn], + db: AsyncSession = Depends(get_db), +): + repo = ImageRepository(db) + image = await repo.get(image_id) + if not image: + raise HTTPException(404, "截图ä¸å­˜åœ¨") + + existing = sorted(list(image.ocr_blocks), key=lambda b: b.seq_order) + total = len(blocks) + if total == 0: + return {"message": "未æäº¤å¯ä¿å­˜å†…容", "updated": 0} + + # Update existing blocks first. + min_len = min(len(existing), total) + for idx in range(min_len): + existing[idx].content = blocks[idx].content + existing[idx].confidence = blocks[idx].confidence + existing[idx].seq_order = idx + + # Create extra blocks if payload has more. + for idx in range(min_len, total): + db.add( + OcrBlock( + image_id=image_id, + content=blocks[idx].content, + bbox={}, + seq_order=idx, + confidence=blocks[idx].confidence, + ) + ) + + # Remove extra old blocks if payload has fewer. + for idx in range(total, len(existing)): + await db.delete(existing[idx]) + + await db.flush() + await db.commit() + return {"message": f"å·²ä¿å­˜ {total} æ¡OCR内容", "updated": total} + + @router.get("/images/{image_id}/file") async def get_image_file(image_id: UUID, db: AsyncSession = Depends(get_db)): repo = ImageRepository(db) diff --git a/backend/app/api/v1/transactions.py b/backend/app/api/v1/transactions.py index 8c6e633..8a48190 100644 --- a/backend/app/api/v1/transactions.py +++ b/backend/app/api/v1/transactions.py @@ -5,7 +5,12 @@ from sqlalchemy.ext.asyncio import AsyncSession from app.core.database import get_db from app.repositories.transaction_repo import TransactionRepository -from app.schemas.transaction import TransactionOut, TransactionListOut, FlowGraphOut +from app.schemas.transaction import ( + TransactionOut, + TransactionListOut, + FlowGraphOut, + TransactionUpdateIn, +) from app.services.flow_service import build_flow_graph router = APIRouter() @@ -31,6 +36,23 @@ async def get_transaction(tx_id: UUID, db: AsyncSession = Depends(get_db)): return tx +@router.patch("/transactions/{tx_id}", response_model=TransactionOut) +async def update_transaction( + tx_id: UUID, + body: TransactionUpdateIn, + db: AsyncSession = Depends(get_db), +): + repo = TransactionRepository(db) + tx = await repo.get(tx_id) + if not tx: + raise HTTPException(404, "交易ä¸å­˜åœ¨") + + update_data = body.model_dump(exclude_unset=True) + tx = await repo.update(tx, update_data) + await db.commit() + return tx + + @router.get("/cases/{case_id}/flows", response_model=FlowGraphOut) async def get_fund_flows(case_id: UUID, db: AsyncSession = Depends(get_db)): return await build_flow_graph(case_id, db) diff --git a/backend/app/rules/transit_rules.py b/backend/app/rules/transit_rules.py index 8b3ac06..0b310bd 100644 --- a/backend/app/rules/transit_rules.py +++ b/backend/app/rules/transit_rules.py @@ -4,9 +4,13 @@ Identifies transactions that are internal transfers between the victim's own accounts (e.g. bank -> Alipay -> WeChat) and should NOT be counted as fraud loss. """ +from datetime import datetime + from app.models.transaction import TransactionRecord SELF_KEYWORDS = ["本人", "自己", "ä½™é¢", "充值", "æçް", "银行å¡è½¬å…¥", "银行å¡å……值"] +FEE_TRANSIT_WINDOW_SECONDS = 120 +FEE_TOLERANCE_RATIO = 0.02 def is_self_transfer(tx: TransactionRecord, known_self_accounts: list[str]) -> bool: @@ -33,3 +37,27 @@ def is_self_transfer(tx: TransactionRecord, known_self_accounts: list[str]) -> b return True return False + + +def is_fee_tolerant_transit_pair(tx_a: TransactionRecord, tx_b: TransactionRecord) -> bool: + """Two-way transfer pattern: opposite direction, close time, similar amount.""" + if tx_a.direction.value == tx_b.direction.value: + return False + + amount_a = float(tx_a.amount or 0) + amount_b = float(tx_b.amount or 0) + if amount_a <= 0 or amount_b <= 0: + return False + + time_a = tx_a.trade_time + time_b = tx_b.trade_time + if not isinstance(time_a, datetime) or not isinstance(time_b, datetime): + return False + if abs((time_a - time_b).total_seconds()) > FEE_TRANSIT_WINDOW_SECONDS: + return False + + amount_base = max(amount_a, amount_b) + if amount_base <= 0: + return False + diff_ratio = abs(amount_a - amount_b) / amount_base + return diff_ratio <= FEE_TOLERANCE_RATIO diff --git a/backend/app/schemas/image.py b/backend/app/schemas/image.py index 59eded5..05412a1 100644 --- a/backend/app/schemas/image.py +++ b/backend/app/schemas/image.py @@ -35,6 +35,11 @@ class OcrFieldCorrection(CamelModel): new_value: str +class OcrBlockUpdateIn(CamelModel): + content: str + confidence: float = 0.5 + + class CaseOcrStartIn(CamelModel): include_done: bool = False image_ids: list[UUID] = [] diff --git a/backend/app/schemas/transaction.py b/backend/app/schemas/transaction.py index 75ed1f5..4c2a5ad 100644 --- a/backend/app/schemas/transaction.py +++ b/backend/app/schemas/transaction.py @@ -25,6 +25,21 @@ class TransactionOut(CamelModel): is_transit: bool +class TransactionUpdateIn(CamelModel): + source_app: SourceApp | None = None + trade_time: datetime | None = None + amount: float | None = None + direction: Direction | None = None + counterparty_name: str | None = None + counterparty_account: str | None = None + self_account_tail_no: str | None = None + order_no: str | None = None + remark: str | None = None + confidence: float | None = None + is_duplicate: bool | None = None + is_transit: bool | None = None + + class TransactionListOut(CamelModel): items: list[TransactionOut] total: int diff --git a/backend/app/services/case_service.py b/backend/app/services/case_service.py index 17cbd1c..f44f8b8 100644 --- a/backend/app/services/case_service.py +++ b/backend/app/services/case_service.py @@ -9,11 +9,17 @@ from app.models.assessment import FraudAssessment, ReviewStatus async def recalculate_case_total(case_id: UUID, db: AsyncSession) -> float: - """Recalculate and persist the total confirmed fraud amount for a case.""" + """Recalculate and persist the recognized fraud amount for a case. + + The case-level amount shown in case list/workspace represents the current + recognized amount after analysis, so it should include pending/confirmed/ + needs_info items and only exclude explicitly rejected records. + """ result = await db.execute( select(func.coalesce(func.sum(FraudAssessment.assessed_amount), 0)) .where(FraudAssessment.case_id == case_id) - .where(FraudAssessment.review_status == ReviewStatus.confirmed) + .where(FraudAssessment.assessed_amount > 0) + .where(FraudAssessment.review_status != ReviewStatus.rejected) ) total = float(result.scalar() or 0) case = await db.get(Case, case_id) diff --git a/backend/app/services/matching_service.py b/backend/app/services/matching_service.py index 50144b3..044d1ba 100644 --- a/backend/app/services/matching_service.py +++ b/backend/app/services/matching_service.py @@ -15,7 +15,7 @@ from app.models.transaction import TransactionRecord from app.models.transaction_cluster import TransactionCluster from app.repositories.transaction_repo import TransactionRepository from app.rules.dedup_rules import is_duplicate_pair -from app.rules.transit_rules import is_self_transfer +from app.rules.transit_rules import is_self_transfer, is_fee_tolerant_transit_pair async def run_matching(case_id: UUID, self_accounts: list[str], db: AsyncSession) -> None: @@ -70,6 +70,15 @@ async def run_matching(case_id: UUID, self_accounts: list[str], db: AsyncSession if is_self_transfer(tx, self_accounts): tx.is_transit = True + # Rule extension: if an in/out pair occurs within 2 minutes and + # amount difference is within 2% (e.g. fee), mark both as transit. + non_duplicate = [tx for tx in transactions if not tx.is_duplicate] + for i, tx_a in enumerate(non_duplicate): + for tx_b in non_duplicate[i + 1 :]: + if is_fee_tolerant_transit_pair(tx_a, tx_b): + tx_a.is_transit = True + tx_b.is_transit = True + await db.flush() diff --git a/backend/tests/test_rules.py b/backend/tests/test_rules.py index 5aacf59..53a7927 100644 --- a/backend/tests/test_rules.py +++ b/backend/tests/test_rules.py @@ -8,7 +8,7 @@ import pytest from app.models.transaction import Direction from app.models.evidence_image import SourceApp from app.rules.dedup_rules import is_duplicate_pair -from app.rules.transit_rules import is_self_transfer +from app.rules.transit_rules import is_self_transfer, is_fee_tolerant_transit_pair from app.rules.assessment_rules import classify_transaction @@ -79,6 +79,32 @@ class TestTransitRules: tx = _make_tx(counterparty_name="æŽ*åŽ", remark="投资款") assert not is_self_transfer(tx, []) + def test_fee_tolerant_pair_match(self): + out_tx = _make_tx( + direction=Direction.out, + amount=10000, + trade_time=datetime(2026, 3, 8, 10, 0, tzinfo=timezone.utc), + ) + in_tx = _make_tx( + direction=Direction.in_, + amount=9850, # 1.5% diff + trade_time=datetime(2026, 3, 8, 10, 1, 30, tzinfo=timezone.utc), + ) + assert is_fee_tolerant_transit_pair(out_tx, in_tx) + + def test_fee_tolerant_pair_time_window_exceeded(self): + out_tx = _make_tx( + direction=Direction.out, + amount=10000, + trade_time=datetime(2026, 3, 8, 10, 0, tzinfo=timezone.utc), + ) + in_tx = _make_tx( + direction=Direction.in_, + amount=9900, + trade_time=datetime(2026, 3, 8, 10, 3, 1, tzinfo=timezone.utc), + ) + assert not is_fee_tolerant_transit_pair(out_tx, in_tx) + class TestAssessmentRules: def test_transit_classified_as_low(self): diff --git a/docs/competition-book/Makefile b/docs/competition-book/Makefile new file mode 100644 index 0000000..92f2e5b --- /dev/null +++ b/docs/competition-book/Makefile @@ -0,0 +1,9 @@ +LATEX=xelatex +TARGET=main + +all: + $(LATEX) $(TARGET).tex + $(LATEX) $(TARGET).tex + +clean: + rm -f *.aux *.fdb_latexmk *.fls *.log *.out *.toc *.lof *.lot *.xdv *.synctex.gz diff --git a/docs/competition-book/build.sh b/docs/competition-book/build.sh new file mode 100755 index 0000000..50331f6 --- /dev/null +++ b/docs/competition-book/build.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +set -euo pipefail + +xelatex main.tex +xelatex main.tex diff --git a/docs/competition-book/chapters/01-overview.tex b/docs/competition-book/chapters/01-overview.tex new file mode 100644 index 0000000..86d7109 --- /dev/null +++ b/docs/competition-book/chapters/01-overview.tex @@ -0,0 +1,66 @@ +\chapter{项目背景与建设æ„义} + +\section{建设背景} + +è¿‘å¹´æ¥ï¼Œç”µä¿¡ç½‘络诈骗案件æŒç»­é«˜å‘,å—害人æä¾›çš„ç”µå­æ”¯ä»˜è¯æ®å‘ˆçŽ°å‡ºæ¥æºå¹³å°å¤šã€æˆªå›¾æ•°é‡å¤§ã€é¡µé¢å½¢æ€æ‚ã€å†…容é‡å¤å±•示频ç¹ç­‰ç‰¹å¾ã€‚基层派出所民警在制作å—å®³äººç¬”å½•å’Œæ ¸æŸ¥è¢«éª—é‡‘é¢æ—¶ï¼Œå¾€å¾€éœ€è¦é¢å¯¹å¾®ä¿¡ã€æ”¯ä»˜å®ã€æ‰‹æœºé“¶è¡Œã€æ•°å­—é’±åŒ…ç­‰å¤šç§æ”¯ä»˜æ¸ é“çš„è´¦å•æˆªå›¾ï¼Œäººå·¥é€å¼ æŸ¥çœ‹ã€æ‰‹å·¥ç™»è®°ã€äº¤å‰æ¯”对已æˆä¸ºé«˜é¢‘且高耗时工作。 + +çŽ°æœ‰å¤„ç†æ–¹å¼ä¸»è¦ä¾èµ–个人ç»éªŒï¼Œå­˜åœ¨ä¸‰ä¸ªæ˜Žæ˜¾çŸ­æ¿ï¼šä¸€æ˜¯æˆªå›¾ä¹‹é—´ç¼ºä¹ç»Ÿä¸€ç»“构化表达,难以快速还原完整交易事实;二是åŒä¸€ç¬”资金在ä¸åŒé¡µé¢ã€ä¸åŒAPP中多次出现,容易导致é‡å¤è®¡ç®—或æ¼ç®—;三是本人账户中转ã€é€€æ¬¾è¿”还ã€ä½™é¢å……å€¼ç­‰å¤æ‚情形仅凭å•张截图难以准确认定。上述问题直接影å“è¢«éª—é‡‘é¢æ ¸ç®—准确性ã€ç¬”录质é‡å’Œæ¡ˆä»¶ææ–™æ•´ç†æ•ˆçŽ‡ã€‚ + +\section{建设æ„义} + +本项目èšç„¦â€œå—害人资金核查â€è¿™ä¸€åŸºå±‚è­¦åŠ¡æœ€åˆšæ€§ã€æœ€é¢‘ç¹ã€æœ€æ˜“出错的环节,构建é¢å‘案件任务目标的多智能体ååŒè®¤å®šç³»ç»Ÿã€‚项目的建设æ„义主è¦ä½“现在以下三个方é¢ã€‚ + +\subsection{对一线办案的直接支撑} + +系统通过截图自动解æžã€äº¤æ˜“å½’å¹¶ã€èµ„金路径分æžã€è®¤å®šå¤æ ¸ã€ç¬”录辅助和报告导出,形æˆå®Œæ•´å¤„ç†é—­çŽ¯ï¼Œå°†åŽŸæœ¬åˆ†æ•£åœ¨æ°‘è­¦ä¸ªäººç»éªŒä¸­çš„æµç¨‹è§„åˆ™æ²‰æ·€ä¸ºå¯æ‰§è¡Œã€å¯å¤ç”¨çš„æ•°å­—能力,有助于显著é™ä½ŽåŸºç¡€æ€§æ•´ç†å·¥ä½œé‡ã€‚ + +\subsection{å¯¹è¯æ®ç»„织方å¼çš„å‡çº§} + +项目将éžç»“æž„åŒ–æˆªå›¾ææ–™è½¬åŒ–ä¸ºæ¡ˆä»¶çº§ç»“æž„åŒ–èµ„äº§ï¼Œä½¿å›¾ç‰‡è¯æ®ä¸å†åªæ˜¯é™„件,而是能够å‚与去é‡ã€å…³è”ã€è®¤å®šå’ŒæŠ¥å‘Šç”Ÿæˆçš„å¯è®¡ç®—å¯¹è±¡ã€‚ç”±æ­¤å®žçŽ°ä»Žâ€œææ–™å †ç§¯â€åˆ°â€œè¯æ®ç»„织â€çš„转å˜ã€‚ + +\subsection{对警务智能体应用范å¼çš„示范} + +æœ¬é¡¹ç›®ä¸æ˜¯ç®€å•çš„OCRå·¥å…·ï¼Œä¹Ÿä¸æ˜¯å•轮问答助手,而是围绕办案目标æŒç»­è°ƒç”¨è¯†åˆ«ã€è§„åˆ™ã€æŽ¨ç†å’Œå¤æ ¸èƒ½åŠ›çš„ä»»åŠ¡åž‹æ™ºèƒ½ä½“ç³»ç»Ÿï¼Œå…·æœ‰è¾ƒå¼ºçš„ç¤ºèŒƒæ„ä¹‰å’Œå¯æŽ¨å¹¿ä»·å€¼ã€‚ + +\section{项目定ä½} + +本项目定ä½ä¸ºé¢å‘电信网络诈骗案件å—害人资金核查场景的警务专用认定系统,æœåŠ¡äºŽä»¥ä¸‹å…¸åž‹çŽ¯èŠ‚ï¼š + +\begin{itemize} + \item å—害人报案å—ç†åŽçš„è¯æ®åˆæ•´ï¼› + \item 笔录制作å‰çš„交易事实梳ç†ï¼› + \item 被骗金é¢è®¤å®šä¸Žäººå·¥å¤æ ¸ï¼› + \item 笔录内容快速生æˆä¸Žç›´æŽ¥æ’入; + \item 资金æµå‘分æžä¸Žæ¡ˆä»¶æ±‡æŠ¥ï¼› + \item 报告导出与åŽç»­ææ–™å¤ç”¨ã€‚ +\end{itemize} + +\begin{table}[H] + \centering + \caption{项目定ä½ä¸Žè­¦åŠ¡ä»·å€¼å¯¹åº”è¡¨} + \begin{tabularx}{\textwidth}{p{0.19\textwidth}p{0.27\textwidth}Y} + \toprule + 定ä½ç»´åº¦ & 具体对象 & 直接价值 \\ + \midrule + 使用对象 & 基层派出所民警ã€åè¯ˆå²—ä½æ°‘è­¦ & é¢å‘真实办案过程,é™ä½Žé‡å¤æ€§äººå·¥æ•´ç†è´Ÿæ‹… \\ + 核心任务 & 多APPæˆªå›¾è¯æ®è§£æžä¸Žè¢«éª—金é¢è®¤å®š & ç»Ÿä¸€è¯æ®å£å¾„,æé«˜é‡‘颿 ¸ç®—效率与一致性 \\ + è¾“å‡ºå½¢æ€ & 交易明细ã€è®¤å®šç»“æžœã€è·¯å¾„图ã€é—®è¯¢å»ºè®®ã€ç¬”å½•å†…å®¹ã€æŠ¥å‘Š & 既能辅助分æžï¼Œä¹Ÿèƒ½æ”¯æ’‘åŽç»­æ–‡ä¹¦ä¸Žæ±‡æŠ¥ \\ + åº”ç”¨æ–¹å¼ & 人机ååŒå¤æ ¸ & 兼顾效率ã€å¯è§£é‡Šæ€§ä¸Žå®¡æ…Žæ€§ \\ + 推广范围 & ç”µè¯ˆã€æ¶‰ç½‘资金案件ã€ç”µå­æ”¯ä»˜è¯æ®å½’集场景 & 具备跨场景å¤ç”¨ç©ºé—´ \\ + \bottomrule + \end{tabularx} +\end{table} + +\placeholderwidefigure{建议放置“项目总体价值示æ„å›¾â€æˆ–“传统人工处ç†ä¸Žç³»ç»Ÿè¾…助处ç†å¯¹æ¯”æµç¨‹å›¾â€ã€‚æ­£å¼æäº¤æ—¶ï¼Œå¯ç”¨ä¸€é¡µå›¾å±•示民警传统处ç†é“¾è·¯ä¸Žç³»ç»Ÿå¤„ç†é“¾è·¯çš„差异。} + +\section{建设目标} + +项目的总体目标å¯ä»¥æ¦‚æ‹¬ä¸ºâ€œè®©ç¢Žç‰‡åŒ–æˆªå›¾è¯æ®è‡ªåŠ¨è½¬åŒ–ä¸ºå¯è®¤å®šã€å¯å¤æ ¸ã€å¯åŠžæ¡ˆçš„èµ„é‡‘äº‹å®žâ€ã€‚围绕该目标,系统设定以下建设目标: + +\begin{enumerate} + \item 实现对多æºè´¦å•截图的统一识别与字段抽å–ï¼› + \item 实现跨平å°äº¤æ˜“å½’å¹¶ã€é‡å¤äº¤æ˜“识别与本人账户中转识别; + \item 实现é¢å‘办案语境的被骗金é¢åˆ†å±‚认定与ç†ç”±ç”Ÿæˆï¼› + \item å®žçŽ°äººå·¥å¤æ ¸ã€ç¬”录辅助ã€é—®è¯¢æç¤ºå’Œè¯æ®åŒ–报告输出闭环; + \item 为åŽç»­è§„模化推广奠定标准化æµç¨‹å’Œæ•°æ®åŸºç¡€ã€‚ +\end{enumerate} diff --git a/docs/competition-book/chapters/02-demand.tex b/docs/competition-book/chapters/02-demand.tex new file mode 100644 index 0000000..ee45d87 --- /dev/null +++ b/docs/competition-book/chapters/02-demand.tex @@ -0,0 +1,88 @@ +\chapter{场景痛点与需求分æž} + +\section{业务场景还原} + +基层民警在接报电信网络诈骗案件时,å—å®³äººé€šå¸¸ä¼šåŒæ—¶æä¾›å¤šä¸ªAPPå†…çš„è´¦å•æˆªå›¾ï¼ŒåŒ…括支付æˆåŠŸé¡µã€è´¦å•详情页ã€é“¶è¡Œå¡æµæ°´é¡µã€èŠå¤©è½¬è´¦é¡µã€å……值记录页等。ä¸åŒæˆªå›¾ä¹‹é—´æ—¢å­˜åœ¨äº’补信æ¯ï¼Œä¹Ÿå­˜åœ¨å¤§é‡é‡å¤å±•示。民警需è¦åœ¨æœ‰é™æ—¶é—´å†…完æˆä»¥ä¸‹å·¥ä½œï¼š + +\begin{itemize} + \item 判断截图属于哪个APPã€å“ªä¸ªé¡µé¢ç±»åž‹ï¼› + \item æå–金é¢ã€æ—¶é—´ã€å¯¹æ‰‹æ–¹ã€è®¢å•å·ã€è´¦æˆ·å°¾å·ç­‰å…³é”®ä¿¡æ¯ï¼› + \item åŒºåˆ†çœŸå®žå¯¹å¤–æ”¯ä»˜ã€æœ¬äººè´¦æˆ·ä¸­è½¬ã€é€€æ¬¾è¿”还等ä¸åŒç±»åž‹äº¤æ˜“ï¼› + \item 对åŒä¸€ç¬”交易进行归并,防止é‡å¤ç´¯è®¡ï¼› + \item 生æˆå¯ç”¨äºŽç¬”å½•ã€æ±‡æŠ¥å’ŒæŠ¥å‘Šçš„ç»“æžœææ–™ã€‚ +\end{itemize} + +\placeholderwidefigure{建议放置“å—害人æä¾›å¤šAPPæˆªå›¾ææ–™â€çš„æ‹¼å›¾ï¼Œå ä½å›¾å¯ç”±å¾®ä¿¡ã€æ”¯ä»˜å®ã€é“¶è¡ŒAPP截图样例构æˆã€‚æ­£å¼æäº¤æ—¶å¯æ›¿æ¢ä¸ºè„±æ•åŽçš„真实截图。} + +\section{çŽ°æœ‰å¤„ç†æ–¹å¼å­˜åœ¨çš„问题} + +\subsection{é—®é¢˜ä¸€ï¼šæˆªå›¾ææ–™åˆ†æ•£ï¼Œäººå·¥æ•´ç†è€—æ—¶é•¿} + +啿¡ˆå°‘则å余张截图,多则数å乃至上百张。人工é€å¼ é˜…读与登记既耗费时间,也会影å“åŽç»­é—®è¯¢èŠ‚å¥ã€‚ + +\subsection{问题二:åŒä¸€äº¤æ˜“多次展示,é‡å¤è®¡ç®—风险高} + +åŒä¸€ç¬”交易å¯èƒ½åŒæ—¶å‡ºçŽ°åœ¨æ”¯ä»˜æˆåŠŸé¡µã€è´¦å•详情页ã€äº¤æ˜“è®°å½•é¡µå’Œé“¶è¡Œæµæ°´é¡µã€‚ä»…ä»¥äººå·¥æ–¹å¼æŽ’é‡ï¼Œæžæ˜“å› æ—¶é—´ã€é‡‘é¢ã€è®¢å•å·å¯¹ç…§ä¸å……分导致é‡å¤ç´¯è®¡ã€‚ + +\subsection{问题三:中转与对外支付混æ‚,认定难度大} + +å—害人往往会先从银行å¡å‘微信或支付å®å……值,å†é€šè¿‡ä½™é¢è½¬å‡ºï¼›ä¹Ÿå¯èƒ½å…ˆè½¬å…¥å†è½¬å‡ºï¼Œå½¢æˆæœ¬äººè´¦æˆ·å†…部中转。若缺ä¹è·¨é¡µé¢ã€è·¨å¹³å°å…³è”分æžï¼Œä»…é å•张截图难以准确判断是å¦åº”计入被骗金é¢ã€‚ + +\subsection{问题四:结果ä¸å¯å¤ç”¨ï¼ŒåŽç»­ä»éœ€é‡å¤æ•´ç†} + +人工处ç†é€šå¸¸åªèƒ½å½¢æˆé›¶æ•£è®°å½•,缺ä¹ç»“构化交易清å•ã€è¯æ®ç´¢å¼•和认定说明,导致汇报ã€ç§»é€å’Œå¤æ ¸é˜¶æ®µä»éœ€é‡å¤æ•´ç†ã€‚ + +\begin{table}[H] + \centering + \caption{ä¼ ç»Ÿå¤„ç†æ–¹å¼ä¸»è¦é—®é¢˜åˆ†æžè¡¨} + \begin{tabularx}{\textwidth}{p{0.18\textwidth}p{0.23\textwidth}Y} + \toprule + 问题类别 & 具体表现 & 对办案造æˆçš„å½±å“ \\ + \midrule + ææ–™ç¢Žç‰‡åŒ– & æˆªå›¾æ¥æºå¤šã€é¡µåž‹å¤šã€å‘½åæ··ä¹± & 剿œŸæ¢³ç†æ—¶é—´é•¿ï¼Œä¿¡æ¯å®¹æ˜“é—æ¼ \\ + è¯æ®é‡å¤åŒ– & åŒç¬”交易在多页é¢åå¤å‡ºçް & 被骗金é¢é‡å¤è®¡ç®—风险高 \\ + å…³ç³»å¤æ‚化 & 中转ã€é€€æ¬¾ã€å……值ã€å¤–部支付交å‰å‡ºçް & 认定标准ä¸ç»Ÿä¸€ï¼Œä¾èµ–个人ç»éªŒ \\ + 输出éžç»“构化 & 结果åœç•™åœ¨æ‰‹å·¥è®°å½•ä¸Žé›¶æ•£æˆªå›¾å±‚é¢ & åŽç»­å¤æ ¸ã€æ±‡æŠ¥ã€ç§»é€æ— æ³•直接å¤ç”¨ \\ + \bottomrule + \end{tabularx} +\end{table} + +\section{核心需求分æž} + +围绕上述问题,本项目æå‡ºä»¥ä¸‹æ ¸å¿ƒéœ€æ±‚。 + +\subsection{需求一:统一识别与结构化抽å–} + +系统需è¦å¯¹ä¸åŒAPPã€ä¸åŒé¡µé¢çš„æˆªå›¾è¿›è¡Œé¡µé¢åˆ†ç±»å’Œå­—段抽å–,至少识别交易时间ã€é‡‘é¢ã€äº¤æ˜“æ–¹å‘ã€å¯¹æ‰‹æ–¹ã€æœ¬äººè´¦æˆ·å°¾å·ã€è®¢å•å·å’Œå¤‡æ³¨ä¿¡æ¯ã€‚ + +\subsection{需求二:跨平å°å½’并与资金链æ¢å¤} + +系统需è¦èƒ½å¤Ÿå°†å¤šå¹³å°æˆªå›¾ä¸­çš„åŒä¸€ç¬”交易关è”èµ·æ¥ï¼Œè¿›è¡ŒåŽ»é‡å½’并,并进一步识别本人账户内部中转关系,æ¢å¤å¯¹å¤–支付链æ¡ã€‚ + +\subsection{需求三:é¢å‘办案的认定结果输出} + +系统ä¸èƒ½åªè¾“出“识别结果â€ï¼Œè¿˜éœ€è¦ç»“åˆè§„则和上下文给出“是å¦è®¡å…¥è¢«éª—金é¢â€çš„分层认定ã€è®¤å®šç†ç”±å’ŒæŽ’é™¤è¯´æ˜Žï¼Œä»¥ä¾¿æ°‘è­¦å¤æ ¸ã€‚ + +\subsection{需求四:形æˆå¯å¤æ ¸ã€å¯æ±‡æŠ¥ã€å¯å¯¼å‡ºçš„æˆæžœ} + +ç³»ç»Ÿè¾“å‡ºåº”åŒæ—¶å…¼é¡¾åˆ†æžä¸ŽåŠžæ¡ˆæ–‡ä¹¦éœ€è¦ï¼Œå½¢æˆæ¸…å•ã€å›¾è¡¨ã€æ‘˜è¦å’Œè¯æ®ç´¢å¼•,支æŒåŽç»­æŠ¥å‘Šå¯¼å‡ºã€‚ + +\begin{table}[H] + \centering + \caption{系统建设需求分解表} + \begin{tabularx}{\textwidth}{p{0.18\textwidth}p{0.28\textwidth}Y} + \toprule + 需求层级 & å…·ä½“è¦æ±‚ & å¯¹åº”å»ºè®¾æ–¹å‘ \\ + \midrule + 感知层需求 & 多APP截图自动识别ã€å­—段抽å–ã€é¡µåž‹åˆ¤æ–­ & OCR识别与多模æ€è§£æž \\ + å…³è”层需求 & 订å•å·ã€é‡‘é¢ã€æ—¶é—´çª—å£ã€è´¦æˆ·å°¾å·ç»¼åˆå½’å¹¶ & 去é‡åŒ¹é…与跨平å°å…³è” \\ + 推ç†å±‚需求 & 中转识别ã€åˆ†å±‚认定ã€ç†ç”±ç”Ÿæˆã€é—®è¯¢æç¤º & è§„åˆ™å¼•æ“Žä¸Žæ™ºèƒ½æŽ¨ç† \\ + 行动层需求 & 夿 ¸ã€æŠ¥å‘Šã€å›¾è¡¨ã€è¯æ®ç´¢å¼•输出 & 人机ååŒä¸Žæ–‡ä¹¦åŒ–输出 \\ + 管ç†å±‚需求 & 案件化组织ã€ç»“果回写ã€é‡å¤åˆ†æžå¯å¤ç”¨ & æ¡ˆä»¶çº§æ•°æ®æ²‰æ·€ä¸Žé—­çޝæµç¨‹ \\ + \bottomrule + \end{tabularx} +\end{table} + +\section{项目书写作边界说明} + +本项目书以当å‰ç³»ç»Ÿå·²å…·å¤‡çš„åŠŸèƒ½é“¾è·¯ä¸ºä¾æ®ï¼Œèšç„¦â€œæ¡ˆä»¶ç®¡ç†ã€æˆªå›¾è¯†åˆ«ã€äº¤æ˜“å½’å¹¶ã€èµ„金分æžã€è®¤å®šå¤æ ¸ã€æŠ¥å‘Šå¯¼å‡ºâ€å…­ç±»æ ¸å¿ƒèƒ½åŠ›å±•å¼€è¯´æ˜Žã€‚å¯¹åŽç»­å¯æ‹“å±•èƒ½åŠ›ï¼Œå¦‚æ›´å¤æ‚的模型训练ã€è·¨æ¡ˆä»¶æ¯”对或更广泛的警ç§å¤ç”¨ï¼Œå°†ä»…ä½œæ–¹å‘æ€§å±•望,ä¸å°†å…¶å†™ä¸ºæ—¢æˆäº‹å®žã€‚ diff --git a/docs/competition-book/chapters/03-solution.tex b/docs/competition-book/chapters/03-solution.tex new file mode 100644 index 0000000..506e19b --- /dev/null +++ b/docs/competition-book/chapters/03-solution.tex @@ -0,0 +1,89 @@ +\chapter{总体方案与技术路线} + +\section{总体设计原则} + +为确ä¿é¡¹ç›®æ—¢èƒ½è§£å†³å®žæˆ˜é—®é¢˜ï¼Œåˆå…·å¤‡å¯è§£é‡Šã€å¯å¤æ ¸å’Œå¯è½åœ°ç‰¹å¾ï¼Œç³»ç»Ÿæ€»ä½“设计éµå¾ªä»¥ä¸‹åŽŸåˆ™ï¼š + +\begin{enumerate} + \item \textbf{目标导å‘原则}:围绕“认定被骗金é¢å¹¶å½¢æˆè¯æ®åŒ–输出â€è®¾è®¡æµç¨‹ï¼Œè€Œéžåœç•™åœ¨å•点识别。 + \item \textbf{任务分工原则}ï¼šå°†å¤æ‚问题拆分为截图解æžã€äº¤æ˜“å½’å¹¶ã€è·¯å¾„分æžã€é‡‘é¢è®¤å®šã€é—®è¯¢è¾…åŠ©ã€æŠ¥å‘Šè¾“å‡ºç­‰å¤šä¸ªèƒ½åŠ›å•元。 + \item \textbf{规则约æŸåŽŸåˆ™}:在关键认定环节引入明确规则,é¿å…完全黑盒化输出。 + \item \textbf{人机ååŒåŽŸåˆ™}:系统先给出候选结论与ç†ç”±ï¼Œæ°‘è­¦å®Œæˆæœ€ç»ˆå®¡æ ¸ç¡®è®¤ã€‚ + \item \textbf{结果å¤ç”¨åŽŸåˆ™}:所有分æžç»“果以案件为å•元沉淀,支æŒå¤æ ¸ã€å¯¼å‡ºå’Œå†æ¬¡åˆ†æžã€‚ +\end{enumerate} + +\section{总体架构} + +从整体上看,系统采用“å‰ç«¯å·¥ä½œå° + åŽç«¯æœåŠ¡ç¼–æŽ’ + 外部AI能力 + æ•°æ®å­˜å‚¨â€çš„分层架构。å‰ç«¯è´Ÿè´£æ¡ˆä»¶å½•å…¥ã€æˆªå›¾ä¸Šä¼ ã€è¿‡ç¨‹å±•示ã€äººå·¥å¤æ ¸ä¸ŽæŠ¥å‘Šä¸‹è½½ï¼›åŽç«¯è´Ÿè´£ä¸šåŠ¡æµç¨‹ç¼–排ã€è§„åˆ™æ‰§è¡Œã€æ•°æ®æ²»ç†å’ŒæŠ¥å‘Šç”Ÿæˆï¼›å¤–部AI能力负责截图视觉识别和文本推ç†ï¼›æ•°æ®åº“与队列负责æŒä¹…化与异步任务调度。 + +\placeholderwidefigure{建议放置“系统总体架构图â€ã€‚图中应包括:案件管ç†å‰ç«¯ã€æˆªå›¾ä¸Šä¼ ã€OCR识别ã€å­—段解æžã€åŽ»é‡å½’å¹¶ã€ä¸­è½¬è¯†åˆ«ã€èµ„金分æžã€è®¤å®šå¤æ ¸ã€æŠ¥å‘Šå¯¼å‡ºã€æ•°æ®åº“ã€é˜Ÿåˆ—与外部模型æœåŠ¡ã€‚} + +\begin{table}[H] + \centering + \caption{总体架构层次说明表} + \begin{tabularx}{\textwidth}{p{0.16\textwidth}p{0.22\textwidth}Y} + \toprule + 架构层次 & 主è¦ç»„æˆ & 作用说明 \\ + \midrule + 展示层 & 案件页ã€å·¥ä½œå°ã€æˆªå›¾é¡µã€äº¤æ˜“页ã€åˆ†æžé¡µã€å¤æ ¸é¡µã€æŠ¥å‘Šé¡µ & æ‰¿è½½åŠžæ¡ˆè¿‡ç¨‹ä¸­çš„å½•å…¥ã€æŸ¥çœ‹ã€å¤æ ¸ä¸Žå¯¼å‡º \\ + 业务层 & 案件æœåŠ¡ã€å›¾ç‰‡æœåŠ¡ã€åˆ†æžæµæ°´çº¿ã€è®¤å®šæœåŠ¡ã€æŠ¥å‘ŠæœåŠ¡ & å®Œæˆæ¡ˆä»¶çº§å¤„ç†é€»è¾‘编排 \\ + 规则层 & 去é‡è§„则ã€ä¸­è½¬è§„则ã€è®¤å®šè§„则 & 对关键判断建立å¯è§£é‡Šçº¦æŸ \\ + 智能层 & OCR/è§†è§‰æ¨¡åž‹ã€æ–‡æœ¬æŽ¨ç†æ¨¡åž‹ & 负责截图ç†è§£ã€ç†ç”±ä¼˜åŒ–ä¸Žé—®è¯¢å»ºè®®ç”Ÿæˆ \\ + æ•°æ®å±‚ & PostgreSQLã€Redisã€æ–‡ä»¶å­˜å‚¨ & æ”¯æ’‘æ•°æ®æŒä¹…化ã€ä»»åŠ¡é˜Ÿåˆ—ä¸Žæ–‡ä»¶ç®¡ç† \\ + \bottomrule + \end{tabularx} +\end{table} + +\section{多智能体ååŒåˆ†å·¥} + +虽然当å‰ç³»ç»Ÿå·¥ç¨‹å®žçŽ°ä½“çŽ°ä¸ºæ¨¡å—化æœåŠ¡æµæ°´çº¿ï¼Œä½†ä»Žä»»åŠ¡ç»„ç»‡è§†è§’ï¼Œå¯å°†å…¶å½’纳为é¢å‘办案目标的多智能体ååŒä½“系。ä¸åŒæ™ºèƒ½ä½“å„自承担一段清晰èŒè´£ï¼Œå¹¶é€šè¿‡æ¡ˆä»¶ä¸Šä¸‹æ–‡ä¸²è”èµ·æ¥ã€‚ + +\begin{table}[H] + \centering + \caption{多智能体ååŒåˆ†å·¥è¡¨} + \begin{tabularx}{\textwidth}{p{0.19\textwidth}p{0.27\textwidth}Y} + \toprule + 智能体角色 & 主è¦è¾“å…¥ & 主è¦è¾“出 \\ + \midrule + 案件å—ç†æ™ºèƒ½ä½“ & 案件编å·ã€å—害人信æ¯ã€æˆªå›¾ææ–™ & 案件级上下文与处ç†ä»»åŠ¡ \\ + æˆªå›¾è§£æžæ™ºèƒ½ä½“ & 原始截图 & 页é¢ç±»åž‹ã€å…³é”®å­—段ã€å€™é€‰äº¤æ˜“记录 \\ + å½’å¹¶å…³è”æ™ºèƒ½ä½“ & 候选交易记录ã€è®¢å•å·ã€æ—¶é—´ã€é‡‘é¢ç­‰ç‰¹å¾ & 去é‡åŽçš„统一交易视图 \\ + èµ„é‡‘åˆ†æžæ™ºèƒ½ä½“ & 去é‡äº¤æ˜“ã€è´¦æˆ·å…³ç³» & 资金æµå›¾ã€æ—¶é—´è½´ã€æ”¶æ¬¾æ–¹èšåˆç»“æžœ \\ + 金é¢è®¤å®šæ™ºèƒ½ä½“ & 有效交易ã€è§„则结果ã€ä¸Šä¸‹æ–‡çº¿ç´¢ & 认定金é¢ã€ç½®ä¿¡ç­‰çº§ã€è®¤å®šç†ç”± \\ + 问询辅助智能体 & 待夿 ¸è®°å½•ã€è®¤å®šæ‘˜è¦ & 笔录追问建议 \\ + è¯æ®è¾“出智能体 & 案件摘è¦ã€äº¤æ˜“清å•ã€å›¾è¡¨æ•°æ® & Excel/PDF ç­‰å¯¼å‡ºææ–™ \\ + äººå·¥å¤æ ¸ä»£ç† & 系统输出结果 & 最终确认结果与审计痕迹 \\ + \bottomrule + \end{tabularx} +\end{table} + +\section{技术路线} + +系统采å–“视觉识别 + 规则校验 + æ™ºèƒ½æŽ¨ç† + äººå·¥å¤æ ¸â€çš„æ··åˆå¼æŠ€æœ¯è·¯çº¿ï¼Œå…¶æ ¸å¿ƒä¸æ˜¯è®©å•一模型直接给出最终结果,而是让å„类能力按办案æµç¨‹åˆ†å·¥å作。 + +\begin{enumerate} + \item é€šè¿‡è§†è§‰è¯†åˆ«èƒ½åŠ›å®Œæˆæˆªå›¾é¡µåž‹åˆ¤æ–­å’Œå…³é”®å­—段抽å–ï¼› + \item 通过解æžé€»è¾‘将抽å–结果转æ¢ä¸ºç»Ÿä¸€äº¤æ˜“记录; + \item 通过规则引擎完æˆåŽ»é‡åˆ¤æ–­å’Œä¸­è½¬è¯†åˆ«ï¼› + \item 通过认定逻辑对交易进行高ã€ä¸­ã€ä½Žç½®ä¿¡åˆ†å±‚ï¼› + \item 通过文本推ç†èƒ½åŠ›ä¼˜åŒ–ç†ç”±è¡¨è¿°å¹¶ç”Ÿæˆé—®è¯¢å»ºè®®ï¼› + \item é€šè¿‡äººå·¥å¤æ ¸ç¡®è®¤æœ€ç»ˆç»“果并导出报告。 +\end{enumerate} + +\placeholderwidefigure{建议放置“技术路线æµç¨‹å›¾â€ï¼Œå±•示从截图输入到报告输出的完整链路。} + +\section{æµç¨‹é—­çޝ} + +系统围绕案件形æˆå¦‚下闭环æµç¨‹ï¼š + +\begin{enumerate} + \item 民警创建案件并批é‡ä¸Šä¼ æˆªå›¾ï¼› + \item 系统å‘èµ·OCR识别,完æˆå­—段抽å–ï¼› + \item 系统将候选记录进行归并与去é‡ï¼› + \item 系统识别本人账户中转并构建资金æµå›¾ï¼› + \item 系统形æˆè¢«éª—金é¢è®¤å®šæ¸…å•与问询建议; + \item æ°‘è­¦åœ¨å¤æ ¸é¡µé¢ç¡®è®¤ã€æŽ’除或补充; + \item 系统导出结构化报告,形æˆå¯å¤ç”¨è¯æ®åº•稿。 +\end{enumerate} + +\note{æ­£å¼æäº¤æ—¶ï¼Œå»ºè®®å°†æœ¬ç« æž¶æž„å›¾ä¸Žæµç¨‹å›¾åˆ¶ä½œæˆé«˜ä¿¡æ¯å¯†åº¦çš„一页整图,评审å¯åœ¨æžçŸ­æ—¶é—´å†…把æ¡é¡¹ç›®å…¨è²Œã€‚} diff --git a/docs/competition-book/chapters/04-mechanism.tex b/docs/competition-book/chapters/04-mechanism.tex new file mode 100644 index 0000000..345c02a --- /dev/null +++ b/docs/competition-book/chapters/04-mechanism.tex @@ -0,0 +1,140 @@ +\chapter{核心能力与关键机制} + +\section{多APP截图识别与字段抽å–} + +系统首先é¢å‘å¾®ä¿¡ã€æ”¯ä»˜å®ã€é“¶è¡ŒAPPã€æ•°å­—钱包等ä¸åŒæ¥æºæˆªå›¾è¿›è¡Œé¡µé¢è¯†åˆ«ä¸Žå­—段抽å–,é‡ç‚¹èŽ·å–交易时间ã€é‡‘é¢ã€æ”¶ä»˜æ¬¾æ–¹å‘ã€å¯¹æ‰‹æ–¹åç§°ã€æœ¬äººè´¦æˆ·å°¾å·ã€è®¢å•å·ã€å¤‡æ³¨ç­‰ç»“构化è¦ç´ ã€‚该过程的目的ä¸åªæ˜¯â€œæŠŠå›¾ä¸Šçš„字识别出æ¥â€ï¼Œè€Œæ˜¯ä¸ºåŽç»­è·¨å¹³å°å…³è”和金é¢è®¤å®šæä¾›ç»Ÿä¸€æ•°æ®åº•座。 + +\begin{table}[H] + \centering + \caption{截图识别关键字段表} + \begin{tabularx}{\textwidth}{p{0.2\textwidth}p{0.22\textwidth}Y} + \toprule + 字段åç§° & å…¸åž‹æ¥æºä½ç½® & 主è¦ç”¨é€” \\ + \midrule + 交易时间 & è´¦å•è¯¦æƒ…ã€æµæ°´é¡µã€æ”¯ä»˜ç»“果页 & 交易排åºã€æ—¶é—´çª—å½’å¹¶ã€è·¯å¾„æ¢å¤ \\ + äº¤æ˜“é‡‘é¢ & 支付结果页ã€äº¤æ˜“明细页 & 金é¢è®¤å®šä¸Žæ±‡æ€»ç»Ÿè®¡ \\ + äº¤æ˜“æ–¹å‘ & 转出ã€è½¬å…¥ã€æ”¶å…¥ã€æ”¯å‡ºç­‰æ ‡è¯† & 区分被骗支付ã€ä¸­è½¬ä¸Žè¿”还 \\ + å¯¹æ‰‹æ–¹ä¿¡æ¯ & 收款方ã€å•†æˆ·åã€è´¦æˆ·å & 收款方èšåˆä¸Žé£Žé™©è¯†åˆ« \\ + 本人账户标识 & 银行尾å·ã€æ”¯ä»˜è´¦æˆ·æ ‡è¯† & 中转识别与账户关系æ¢å¤ \\ + 订å•å·/商户å•å· & 详情页ã€é€šçŸ¥é¡µ & é‡å¤å±•ç¤ºè¯†åˆ«ä¸Žè¯æ®å…³è” \\ + å¤‡æ³¨ä¿¡æ¯ & 交易说明ã€é™„言ã€å•†å“å & 风险关键è¯è¯†åˆ«ä¸Žè®¤å®šè¾…助 \\ + \bottomrule + \end{tabularx} +\end{table} + +\placeholderwidefigure{建议放置“多APP截图识别示æ„图â€ï¼ŒæŒ‰â€œåŽŸå§‹æˆªå›¾ - 抽å–字段 - 结构化结果â€ä¸‰æ å±•示。} + +\section{关键è¯å›žæº¯é©±åŠ¨çš„è‡ªæˆ‘å®Œå–„æœºåˆ¶} + +传统OCRæµç¨‹å¾€å¾€åœ¨ç¬¬ä¸€æ¬¡é¡µé¢åˆ†ç±»åŽå³å›ºå®šç»“果,但在真实办案场景中,截图模糊ã€è£åˆ‡ä¸å®Œæ•´ã€å¹³å°UI相似等情况都å¯èƒ½å¯¼è‡´åˆå§‹è¯†åˆ«è¯¯å·®ã€‚æœ¬é¡¹ç›®å¼•å…¥â€œè¯æ®è¯†åˆ«åŽå…³é”®è¯å›žæº¯â€çš„优化机制,å³åœ¨å®Œæˆä¸€è½®äº¤æ˜“字段抽å–和部分认定åŽï¼Œåˆ©ç”¨é«˜ç½®ä¿¡è¯æ®é‡æ–°å›žçœ‹å‰åºé¡µé¢ç±»åž‹åˆ¤æ–­ï¼Œå¯¹å¯èƒ½è¯¯åˆ¤çš„æˆªå›¾è¿›è¡ŒäºŒæ¬¡æ ¡æ­£ã€‚ + +该机制的基本æ€è·¯å¦‚下: + +\begin{enumerate} + \item 首次识别时完æˆé¡µé¢åˆ†ç±»ä¸Žå­—段抽å–ï¼› + \item 在归并ã€è®¤å®šè¿‡ç¨‹ä¸­æ”¶é›†é«˜ç½®ä¿¡å­—段和高价值关键è¯ï¼› + \item 将“支付æˆåŠŸâ€â€œè´¦å•详情â€â€œè®¢å•å·â€â€œé€€æ¬¾â€â€œå……值â€â€œé“¶è¡Œå¡â€ç­‰å…³é”®è¯å›žæº¯åˆ°åŽŸå§‹æˆªå›¾åˆ†ç±»åˆ¤æ–­ä¸­ï¼› + \item è‹¥åŽéªŒä¿¡æ¯ä¸ŽåŽŸå§‹é¡µåž‹ä¸ä¸€è‡´ï¼Œåˆ™è§¦å‘页é¢ç±»åž‹å†éªŒè¯ï¼› + \item 将修正åŽçš„ç»“æžœé‡æ–°å‚与åŽç»­å½’并和认定。 +\end{enumerate} + +\begin{table}[H] + \centering + \caption{关键è¯å›žæº¯ä¼˜åŒ–机制说明表} + \begin{tabularx}{\textwidth}{p{0.18\textwidth}p{0.25\textwidth}Y} + \toprule + 回溯维度 & å…¸åž‹ä¿¡å· & 优化作用 \\ + \midrule + è¡Œä¸ºå…³é”®è¯ & è½¬è´¦ã€æ”¯ä»˜ã€æ”¶æ¬¾ã€å……值ã€é€€æ¬¾ & 修正交易性质判断 \\ + 页é¢ç»“æž„è¯ & è´¦å•详情ã€äº¤æ˜“è®°å½•ã€æ”¯ä»˜æˆåŠŸã€åˆ°è´¦é€šçŸ¥ & 修正页é¢ç±»åž‹è¯†åˆ« \\ + è¯æ®å­—æ®µè¯ & 订å•å·ã€å•†æˆ·å•å·ã€æ”¶æ¬¾æ–¹ã€å°¾å· & 增强截图与交易的绑定关系 \\ + è®¤å®šç»“æžœä¿¡å· & å¯¹å¤–æ”¯ä»˜è¯æ®ã€ä¸­è½¬å‡­è¯ã€å¾…夿 ¸è®°å½• & 用åŽéªŒé«˜ç½®ä¿¡ç»“æžœåå‘约æŸå‰åºè¯†åˆ« \\ + \bottomrule + \end{tabularx} +\end{table} + +这一机制体现了项目的自我完善特å¾ï¼šç³»ç»Ÿä¸æ˜¯ä¸€æ¬¡è¯†åˆ«åŽé™æ€è¾“出,而是在任务执行过程中利用中间结果æŒç»­ä¿®æ­£å‰åºåˆ¤æ–­ï¼Œä½¿è´¦å•类型识别更贴近真实办案需求。 + +\section{跨平å°äº¤æ˜“归并与去é‡} + +åŒä¸€ç¬”交易å¯èƒ½åœ¨å¤šä¸ªAPP和多个页é¢ä¸­åå¤å‡ºçŽ°ã€‚ç³»ç»Ÿå›´ç»•è®¢å•å·ã€é‡‘é¢ã€æ—¶é—´çª—å£ã€å¯¹æ‰‹æ–¹åç§°ã€è´¦æˆ·å°¾å·ç­‰çº¿ç´¢è¿›è¡Œç»¼åˆå½’并,在ä¿è¯å¬å›žçŽ‡çš„åŒæ—¶é™ä½Žé‡å¤ç´¯è®¡é£Žé™©ã€‚ + +\begin{table}[H] + \centering + \caption{交易归并与去é‡è§„则表} + \begin{tabularx}{\textwidth}{p{0.18\textwidth}p{0.28\textwidth}Y} + \toprule + 规则维度 & åˆ¤æ–­ä¾æ® & 目的 \\ + \midrule + 标识一致性 & 订å•å·ã€å•†æˆ·å•å·ä¸€è‡´ & 直接识别åŒä¸€äº¤æ˜“é‡å¤å±•示 \\ + 金é¢ä¸€è‡´æ€§ & 金é¢å®Œå…¨ä¸€è‡´æˆ–å¤„äºŽå¯æŽ¥å—误差范围 & 辅助无订å•å·åœºæ™¯ä¸‹çš„归并判断 \\ + æ—¶é—´çª—å£ & 交易时间接近 & 缩å°å€™é€‰åŒ¹é…范围,æå‡å‡†ç¡®çއ \\ + 对手方相似性 & 收款方å称或账å·é«˜åº¦ç›¸ä¼¼ & 识别跨平å°å±•示的åŒä¸€å¯¹æ‰‹æ–¹ \\ + è´¦æˆ·ç‰¹å¾ & 本人账户尾å·ã€æ”¯ä»˜æ¸ é“一致 & æå‡åŽ»é‡ä¸Žä¸­è½¬è¯†åˆ«ç²¾åº¦ \\ + \bottomrule + \end{tabularx} +\end{table} + +\placeholderwidefigure{建议放置“交易归并å‰åŽå¯¹æ¯”图â€ï¼Œå±•示åŒä¸€ç¬”转账在多个截图中é‡å¤å‡ºçŽ°ï¼Œç³»ç»Ÿå½’å¹¶åŽåªä¿ç•™ä¸€æ¡æœ‰æ•ˆè®°å½•。} + +\section{本人账户中转识别} + +本人账户中转识别是本项目区别于普通账å•OCR工具的关键设计之一。系统通过对手方信æ¯ã€å¤‡æ³¨å…³é”®è¯ã€æ”¯ä»˜å¹³å°ç‰¹å¾åŠäº¤æ˜“æ–¹å‘判断,识别å—害人账户之间的内部æµè½¬è¡Œä¸ºï¼Œé¿å…将内部资金æ¬ç§»è¯¯è®¡ä¸ºè¢«éª—金é¢ã€‚ + +\begin{table}[H] + \centering + \caption{本人账户中转识别逻辑表} + \begin{tabularx}{\textwidth}{p{0.17\textwidth}p{0.25\textwidth}Y} + \toprule + 判断规则 & å…¸åž‹ç‰¹å¾ & å¤„ç†æ–¹å¼ \\ + \midrule + 本人关键è¯å‘½ä¸­ & 本人ã€è‡ªå·±ã€ä½™é¢ã€å……å€¼ã€æçŽ°ç­‰å­—æ · & 标记为中转候选 \\ + å¹³å°é—´å†…部æµè½¬ & 银行å¡è½¬å…¥å¾®ä¿¡ã€æ”¯ä»˜å®å……值等 & 识别为本人账户内部转移 \\ + å·²çŸ¥è´¦æˆ·åŒ¹é… & ä¸Žå·²çŸ¥æœ¬äººè´¦æˆ·æ ‡è¯†ç›¸åŒ¹é… & ä¸ç›´æŽ¥è®¡å…¥è¢«éª—é‡‘é¢ \\ + æ–¹å‘辅助判断 & 转出åŽç´§æŽ¥è½¬å…¥åŒç±»è´¦æˆ· & 作为路径æ¢å¤çš„é‡è¦çº¿ç´¢ \\ + \bottomrule + \end{tabularx} +\end{table} + +\placeholderwidefigure{建议放置“本人账户中转示æ„图â€ï¼Œå±•示“银行å¡â†’支付账户→外部收款方â€çš„资金路径,并标记哪一段属于中转ã€å“ªä¸€æ®µå±žäºŽå®žé™…对外支付。} + +\section{被骗金é¢åˆ†å±‚认定} + +系统ä¸ç›´æŽ¥ç»™å‡ºä¸å¯è´¨ç–‘的“唯一金é¢ç»“论â€ï¼Œè€Œæ˜¯å°†äº¤æ˜“分为高ã€ä¸­ã€ä½Žç½®ä¿¡ä¸‰ç±»ï¼Œä»¥é€‚应警务场景对审慎性和å¯å¤æ ¸æ€§çš„è¦æ±‚。 + +\begin{table}[H] + \centering + \caption{被骗金é¢åˆ†å±‚认定表} + \begin{tabularx}{\textwidth}{p{0.16\textwidth}p{0.22\textwidth}Y} + \toprule + 置信等级 & 典型æ¡ä»¶ & 处ç†å»ºè®® \\ + \midrule + 高置信 & å¯¹å¤–æ”¯ä»˜æ˜Žç¡®ã€æ— é‡å¤ã€è¯æ®é“¾å®Œæ•´ & å¯ä¼˜å…ˆè®¡å…¥è¢«éª—é‡‘é¢ \\ + 中置信 & è¯æ®ä¸å®Œæ•´æˆ–背景信æ¯ä¸è¶³ & æç¤ºæ°‘警补充问询åŽç¡®è®¤ \\ + 低置信 & ç–‘ä¼¼é‡å¤ã€é€€æ¬¾ã€ä¸­è½¬æˆ–è¯æ®ä¸è¶³ & æš‚ä¸è®¡å…¥ï¼Œå¾…åŽç»­æ ¸å®ž \\ + \bottomrule + \end{tabularx} +\end{table} + +ç³»ç»ŸåŒæ—¶ä¸ºæ¯ç¬”交易输出认定ç†ç”±å’ŒæŽ’除说明,使结果具备å¯è§£é‡Šæ€§ã€å¯æ±‡æŠ¥æ€§å’Œå¯å¤æ ¸æ€§ã€‚ + +\section{笔录辅助生æˆã€é—®è¯¢å»ºè®®ä¸Žè¯æ®åŒ–输出} + +在识别和认定基础上,系统进一步根æ®å¾…夿 ¸äº¤æ˜“ã€ä¸­ç½®ä¿¡è®°å½•和案件交易摘è¦ç”Ÿæˆç¬”å½•è¾…åŠ©å†…å®¹ã€‚è¯¥åŠŸèƒ½åµŒå…¥è®¤å®šå¤æ ¸é¡µï¼Œåœ¨æ°‘警完æˆé€ç¬”确认或排除åŽï¼Œå¯è‡ªåŠ¨æ±‡æ€»å…³é”®ä¿¡æ¯ï¼Œç”Ÿæˆé€‚åˆç›´æŽ¥æ’å…¥å—害人笔录的结构化æè¿°ï¼Œå¦‚转账时间ã€é‡‘é¢ã€æ”¯ä»˜æ¸ é“ã€æ”¶æ¬¾å¯¹è±¡ã€è¯±å¯¼èƒŒæ™¯å’Œéœ€è¿›ä¸€æ­¥æ ¸å®žçš„问题点,从而å‡å°‘é‡å¤è¾“入和整ç†è´Ÿæ‹…。 + +除笔录内容外,系统还会根æ®å¾…夿 ¸äº¤æ˜“生æˆç¬”录辅助问询建议,如是å¦è¿˜æœ‰å…¶ä»–支付平å°ã€æ˜¯å¦å­˜åœ¨é€€æ¬¾è¿”è¿˜ã€æ˜¯å¦æœ‰æœªæä¾›æˆªå›¾çš„记录等。最终输出包括交易明细ã€è®¤å®šç»“æžœã€ç¬”录内容ã€èµ„金æµå›¾ã€æ—¶é—´è½´ã€æ”¶æ¬¾æ–¹èšåˆå’Œå¯¼å‡ºæŠ¥å‘Šï¼Œä»Žè€Œå®žçŽ°ä»Žæˆªå›¾ææ–™åˆ°åŠžæ¡ˆç»“æžœçš„é—­çŽ¯è½¬æ¢ã€‚ + +\begin{table}[H] + \centering + \caption{è®¤å®šå¤æ ¸é¡µç¬”录功能说明表} + \begin{tabularx}{\textwidth}{p{0.19\textwidth}p{0.24\textwidth}Y} + \toprule + 功能环节 & 主è¦å†…容 & 实战价值 \\ + \midrule + 内容汇总 & 自动汇总已确认交易的时间ã€é‡‘é¢ã€æ¸ é“和对象 & å‡å°‘æ°‘è­¦é‡å¤æ‘˜å½•工作 \\ + 语å¥ç”Ÿæˆ & å½¢æˆé€‚åˆç¬”录使用的规范化æè¿°æ–‡æœ¬ & æå‡ç¬”录书写效率和一致性 \\ + 直接æ’å…¥ & å¯ç›´æŽ¥å¤åˆ¶æˆ–æ’入到笔录文本中 & ç¼©çŸ­ä»Žå¤æ ¸åˆ°æˆæ–‡çš„æ—¶é—´ \\ + 问题æç¤º & 标识ä»éœ€è¡¥é—®æˆ–æ ¸å®žçš„äº¤æ˜“ç‚¹ä½ & è¾…åŠ©å®Œå–„è¯æ®é“¾ä¸Žè¯¢é—®é‡ç‚¹ \\ + \bottomrule + \end{tabularx} +\end{table} diff --git a/docs/competition-book/chapters/05-implementation.tex b/docs/competition-book/chapters/05-implementation.tex new file mode 100644 index 0000000..81d550e --- /dev/null +++ b/docs/competition-book/chapters/05-implementation.tex @@ -0,0 +1,117 @@ +\chapter{系统实现与界é¢å±•示} + +\section{系统实现概况} + +当å‰ç³»ç»Ÿå·²ç»å½¢æˆè¾ƒå®Œæ•´çš„å‰åŽç«¯é—­çŽ¯èƒ½åŠ›ã€‚å‰ç«¯é‡‡ç”¨ React 18ã€TypeScriptã€Ant Design 与 ECharts 构建案件管ç†å’Œå¯è§†åŒ–界é¢ï¼›åŽç«¯é‡‡ç”¨ FastAPIã€SQLAlchemyã€PostgreSQL å’Œ Redis 组织业务æœåŠ¡ä¸Žå¼‚æ­¥ä»»åŠ¡ï¼›å¤–éƒ¨AIæŽ¥å£æ‰¿æ‹…截图视觉识别ã€ç†ç”±ç”Ÿæˆå’Œç¬”录辅助文本生æˆç­‰ä»»åŠ¡ã€‚ + +\begin{table}[H] + \centering + \caption{系统技术实现表} + \begin{tabularx}{\textwidth}{p{0.18\textwidth}p{0.24\textwidth}Y} + \toprule + æŠ€æœ¯å±‚é¢ & 选型情况 & 作用说明 \\ + \midrule + å‰ç«¯å±•示 & React 18 + TypeScript + Ant Design + ECharts & 实现工作å°ã€å›¾è¡¨åˆ†æžã€å¤æ ¸ä¸ŽæŠ¥å‘Šå¯¼å‡ºäº¤äº’ \\ + åŽç«¯æœåŠ¡ & FastAPI + SQLAlchemy & æä¾›æ¡ˆä»¶ã€æˆªå›¾ã€åˆ†æžã€è®¤å®šã€æŠ¥å‘Šç­‰API能力 \\ + æ•°æ®å­˜å‚¨ & PostgreSQL & ä¿å­˜æ¡ˆä»¶ã€äº¤æ˜“ã€è®¤å®šã€æŠ¥å‘Šç­‰æ ¸å¿ƒæ•°æ® \\ + 任务调度 & Celery + Redis & 支撑OCR和分æžä»»åŠ¡å¼‚æ­¥æ‰§è¡Œ \\ + 智能能力 & 视觉模型接å£ã€æ–‡æœ¬æ¨¡åž‹æŽ¥å£ & 支撑截图识别ã€ç†ç”±ä¼˜åŒ–å’Œé—®è¯¢ç”Ÿæˆ \\ + \bottomrule + \end{tabularx} +\end{table} + +\section{å‰ç«¯åŠŸèƒ½é¡µé¢} + +系统å‰ç«¯å›´ç»•办案æµç¨‹è®¾è®¡äº†æ¡ˆä»¶åˆ—表ã€å·¥ä½œå°ã€æˆªå›¾é¡µã€äº¤æ˜“页ã€åˆ†æžé¡µã€å¤æ ¸é¡µå’ŒæŠ¥å‘Šé¡µç­‰æ ¸å¿ƒé¡µé¢ï¼Œèƒ½å¤Ÿè¦†ç›–ä»Žè¯æ®ä¸Šä¼ åˆ°ç»“æžœå¯¼å‡ºçš„å®Œæ•´é“¾è·¯ã€‚å…¶ä¸­ï¼Œè®¤å®šå¤æ ¸é¡µæ–°å¢žç¬”录功能,å¯åœ¨æ°‘警完æˆå¤æ ¸ç¡®è®¤åŽè‡ªåŠ¨ç”Ÿæˆå¯ç›´æŽ¥æ’入笔录的内容摘è¦ã€‚ + +\begin{table}[H] + \centering + \caption{å‰ç«¯æ ¸å¿ƒé¡µé¢è¯´æ˜Žè¡¨} + \begin{tabularx}{\textwidth}{p{0.2\textwidth}p{0.23\textwidth}Y} + \toprule + 页é¢åç§° & 主è¦åŠŸèƒ½ & 办案价值 \\ + \midrule + 案件列表页 & åˆ›å»ºã€æŸ¥çœ‹å’Œç®¡ç†æ¡ˆä»¶ & 统一案件入å£ï¼Œå½¢æˆæ¡ˆä»¶çº§ç»„织 \\ + 工作å°é¡µ & ä¸Šä¼ æˆªå›¾ã€æŸ¥çœ‹å¤„ç†è¿›åº¦ã€å¿«é€Ÿå‘èµ·OCRå’Œåˆ†æž & 串è”完整工作æµç¨‹ \\ + 截图页 & 查看截图ã€è¯†åˆ«çжæ€ä¸Žæå–结果 & ä¾¿äºŽè¯æ®é€å¼ æ ¸éªŒ \\ + 交易页 & 查看æå–交易ã€åŽ»é‡çжæ€ã€ä¸­è½¬æ ‡è®° & 便于排查é‡å¤ä¸Žå¼‚常记录 \\ + 分æžé¡µ & 资金æµå›¾ã€æ—¶é—´è½´ã€æ”¶æ¬¾æ–¹èšåˆ & å¿«é€ŸæŠŠæ¡æ¡ˆä»¶æ•´ä½“资金结构 \\ + 夿 ¸é¡µ & 审核认定结果ã€ç¡®è®¤æˆ–排除记录ã€ç”Ÿæˆç¬”录内容 & è½å®žäººæœºååŒé—­çޝ并æå‡ç¬”录效率 \\ + 报告页 & 生æˆå’Œä¸‹è½½Excel/PDF报告 & 支撑汇报ã€å½’档和å¤ç”¨ \\ + \bottomrule + \end{tabularx} +\end{table} + +\placeholderwidefigure{建议放置“工作å°ç•Œé¢æˆªå›¾â€ï¼Œé‡ç‚¹ä½“现上传截图ã€OCR状æ€ã€äº¤æ˜“æ•°é‡ã€å¾…夿 ¸æ•°é‡ç­‰å…³é”®æŒ‡æ ‡ã€‚} + +\placeholderwidefigure{建议放置“分æžé¡µç•Œé¢æˆªå›¾â€ï¼Œçªå‡ºèµ„金æµè½¬å…³ç³»å›¾ã€äº¤æ˜“时间轴和收款方èšåˆä¸‰ä¸ªåŒºåŸŸã€‚} + +\placeholderwidefigure{å»ºè®®æ”¾ç½®â€œè®¤å®šå¤æ ¸é¡µç•Œé¢æˆªå›¾â€ï¼Œçªå‡ºé€ç¬”夿 ¸åŒºåŸŸã€ç¬”录内容生æˆåŒºåŸŸå’Œå¯ç›´æŽ¥æ’入笔录的功能入å£ã€‚} + +\placeholderwidefigure{å»ºè®®æ”¾ç½®â€œæŠ¥å‘Šé¡µç•Œé¢æˆªå›¾â€ï¼Œå±•示导出格å¼é€‰æ‹©ã€æŠ¥å‘Šå†…容选择ã€åŽ†å²æŠ¥å‘Šåˆ—è¡¨ç­‰åŒºåŸŸã€‚} + +\section{åŽç«¯æŽ¥å£ä¸ŽæœåŠ¡å®žçŽ°} + +åŽç«¯æŒ‰æ¡ˆä»¶ç®¡ç†ã€æˆªå›¾ç®¡ç†ã€åˆ†æžä»»åŠ¡ã€äº¤æ˜“管ç†ã€è®¤å®šå¤æ ¸ã€ç¬”å½•è¾…åŠ©ã€æŠ¥å‘Šå¯¼å‡ºç­‰èƒ½åŠ›æ‹†åˆ†æŽ¥å£ï¼ŒæŽ¥å£ç»„织结构与办案æµç¨‹é«˜åº¦å¯¹åº”,便于å‰åŽç«¯ååŒå’ŒåŽç»­ç³»ç»Ÿé›†æˆã€‚ + +\begin{table}[H] + \centering + \caption{åŽç«¯ä¸»è¦æŽ¥å£è¡¨} + \begin{tabularx}{\textwidth}{p{0.32\textwidth}p{0.12\textwidth}Y} + \toprule + 接å£è·¯å¾„ & 方法 & 功能说明 \\ + \midrule + /api/v1/cases & GET/POST & 案件列表查询与案件创建 \\ + /api/v1/cases/\{id\} & GET/PATCH & 案件详情查询与更新 \\ + /api/v1/cases/\{id\}/images & GET/POST & 案件截图列表与批é‡ä¸Šä¼  \\ + /api/v1/images/\{id\} & GET & 截图详情åŠè¯†åˆ«ç»“果查看 \\ + /api/v1/cases/\{id\}/analyze & POST & è§¦å‘æ¡ˆä»¶åˆ†æžä»»åŠ¡ \\ + /api/v1/cases/\{id\}/transactions & GET & 交易列表查看 \\ + /api/v1/cases/\{id\}/flows & GET & 资金æµå›¾æ•°æ®èŽ·å– \\ + /api/v1/cases/\{id\}/assessments & GET & è®¤å®šç»“æžœåˆ—è¡¨èŽ·å– \\ + /api/v1/assessments/\{id\}/review & POST & äººå·¥å¤æ ¸æäº¤ \\ + /api/v1/cases/\{id\}/inquiry-suggestions & GET & 获å–笔录问询建议 \\ + /api/v1/cases/\{id\}/reports & GET/POST & 报告列表获å–ä¸Žç”Ÿæˆ \\ + /api/v1/reports/\{id\}/download & GET & 下载生æˆåŽçš„æŠ¥å‘Šæ–‡ä»¶ \\ + \bottomrule + \end{tabularx} +\end{table} + +\section{处ç†é“¾è·¯å®žçް} + +系统分æžé“¾è·¯é‡‡ç”¨æŒ‰æ¡ˆä»¶æ‰§è¡Œçš„åŒæ­¥æˆ–å¼‚æ­¥æµæ°´çº¿æ¨¡å¼ã€‚典型处ç†é¡ºåºä¸ºï¼šå…ˆå®Œæˆäº¤æ˜“匹é…与去é‡ï¼Œå†è¿›è¡Œé‡‘é¢è®¤å®šï¼Œæœ€åŽå›žå†™æ¡ˆä»¶æ€»é¢å¹¶è¿›å…¥å¾…夿 ¸çжæ€ã€‚该设计兼顾了逻辑清晰性和工程å¯è½åœ°æ€§ã€‚ + +\begin{table}[H] + \centering + \caption{案件分æžé“¾è·¯å®žçŽ°è¡¨} + \begin{tabularx}{\textwidth}{p{0.16\textwidth}p{0.22\textwidth}Y} + \toprule + 处ç†é˜¶æ®µ & 主è¦åŠ¨ä½œ & 结果输出 \\ + \midrule + 阶段一 & è¯»å–æ¡ˆä»¶ä¸Žæˆªå›¾ä¸Šä¸‹æ–‡ & åˆå§‹åŒ–分æžä»»åŠ¡ \\ + 阶段二 & 执行交易匹é…ã€åŽ»é‡ä¸Žä¸­è½¬è¯†åˆ« & å½¢æˆæœ‰æ•ˆäº¤æ˜“é›†åˆ \\ + 阶段三 & 对有效交易执行金é¢è®¤å®šä¸Žç†ç”±ç”Ÿæˆ & å½¢æˆè®¤å®šç»“æžœæ¸…å• \\ + 阶段四 & 回写案件总é¢å¹¶åˆ‡æ¢æ¡ˆä»¶çŠ¶æ€ & è¿›å…¥äººå·¥å¤æ ¸é˜¶æ®µ \\ + 阶段五 & 生æˆç¬”录内容ã€é—®è¯¢å»ºè®®ä¸Žå¯¼å‡ºæŠ¥å‘Š & å½¢æˆå¯åŠžæ¡ˆè¾“å‡ºææ–™ \\ + \bottomrule + \end{tabularx} +\end{table} + +\section{部署与演示方å¼} + +é¡¹ç›®æ”¯æŒæœ¬åœ°å¼€å‘部署和基础设施一键å¯åŠ¨ï¼Œä¾¿äºŽå®Œæˆæ¯”赛演示。当å‰è®¾è®¡åŒæ—¶æ”¯æŒåœ¨åŽç«¯ä¸å¯ç”¨æ—¶ä»¥å‰ç«¯å†…置数æ®è¿›è¡Œæ¼”示,能够ä¿è¯å±•示过程的稳定性与连续性。 + +\begin{table}[H] + \centering + \caption{部署与演示方å¼è¡¨} + \begin{tabularx}{\textwidth}{p{0.18\textwidth}p{0.22\textwidth}Y} + \toprule + 场景 & ä¸»è¦æ–¹å¼ & 适用说明 \\ + \midrule + 本地è”è°ƒ & å‰ç«¯ + åŽç«¯ + PostgreSQL + Redis & 适åˆå®Œæ•´æ¼”示业务闭环 \\ + 纯å‰ç«¯æ¼”示 & å‰ç«¯ä½¿ç”¨å†…ç½®Mockæ•°æ® & 适åˆç½‘络环境å—陿—¶çš„稳定展示 \\ + AI接å£é…ç½® & OCR与LLM接å£å¯åˆ†åˆ«é…ç½® & é€‚åˆæŒ‰éœ€æŽ¥å…¥ä¸åŒæ¨¡åž‹èƒ½åŠ› \\ + 扩展部署 & å¯è¿›ä¸€æ­¥è¿ç§»è‡³ä¸“网或本地化环境 & 适åˆè­¦åŠ¡åœºæ™¯å®‰å…¨è¦æ±‚ \\ + \bottomrule + \end{tabularx} +\end{table} diff --git a/docs/competition-book/chapters/06-innovation.tex b/docs/competition-book/chapters/06-innovation.tex new file mode 100644 index 0000000..01505e9 --- /dev/null +++ b/docs/competition-book/chapters/06-innovation.tex @@ -0,0 +1,72 @@ +\chapter{创新点与方案优势} + +\section{创新点æç‚¼} + +本项目的创新ä¸åœ¨äºŽå•çº¯å¼•å…¥å¤§æ¨¡åž‹ï¼Œè€Œåœ¨äºŽå°†å¤šæºæˆªå›¾è¯æ®å¤„ç†ã€è§„则认定和人机ååŒå¤æ ¸æ•´åˆä¸ºé¢å‘办案任务的智能体系统。结åˆå½“å‰å®žçŽ°å’Œè­¦åŠ¡åœºæ™¯éœ€æ±‚ï¼Œå¯å½’纳出以下创新点。 + +\subsection{场景创新} + +项目èšç„¦ç”µä¿¡ç½‘络诈骗案件å—害人资金核查这一基层高频ã€åˆšéœ€ã€é•¿æœŸä¾èµ–人工ç»éªŒçš„环节,直接é¢å‘民警真实工作负载,问题选择具有很强的实战导å‘。 + +\subsection{方法创新} + +项目采用“多智能体ååŒ + è§„åˆ™çº¦æŸ + äººå·¥å¤æ ¸â€çš„æ··åˆèŒƒå¼ï¼Œé¿å…了纯规则方å¼è¿‡äºŽåƒµåŒ–ã€çº¯å¤§æ¨¡åž‹æ–¹å¼éš¾ä»¥è§£é‡Šçš„é—®é¢˜ï¼Œä½¿ç³»ç»Ÿæ—¢å…·çµæ´»æ€§ï¼Œåˆå…·å¯æŽ§æ€§ã€‚ + +\subsection{机制创新} + +é¡¹ç›®å¼•å…¥è¯æ®è¯†åˆ«åŽçš„关键è¯å›žæº¯ä¼˜åŒ–机制,能够利用åŽç»­é«˜ç½®ä¿¡è¯†åˆ«ç»“æžœåå‘修正账å•页é¢ç±»åž‹åˆ¤æ–­ï¼Œä½“现了智能体在任务执行过程中的自我校正和自我完善能力。 + +\subsection{输出创新} + +项目最终输出的ä¸åªæ˜¯è¯†åˆ«ç»“果,而是交易清å•ã€è®¤å®šç»“æžœã€è·¯å¾„图ã€é—®è¯¢å»ºè®®å’Œå¯¼å‡ºæŠ¥å‘Šç­‰å¤šå±‚æˆæžœï¼Œå½¢æˆâ€œè¯†åˆ«å³æ²»ç†ã€åˆ†æžå³æˆæâ€çš„è¯æ®åŒ–输出模å¼ã€‚ + +\begin{table}[H] + \centering + \caption{项目创新点汇总表} + \begin{tabularx}{\textwidth}{p{0.18\textwidth}p{0.23\textwidth}Y} + \toprule + 创新类别 & 创新内容 & ä½“çŽ°æ–¹å¼ \\ + \midrule + 场景创新 & èšç„¦åŸºå±‚资金核查刚需场景 & 解决民警实际高频痛点 \\ + 方法创新 & 智能体ã€è§„åˆ™å’Œäººå·¥å¤æ ¸èžåˆ & å…¼é¡¾çµæ´»æ€§ã€å¯æŽ§æ€§ä¸Žè§£é‡Šæ€§ \\ + 机制创新 & 关键è¯å›žæº¯é©±åŠ¨çš„è‡ªæˆ‘å®Œå–„é—­çŽ¯ & 优化页é¢ç±»åž‹è¯†åˆ«å‡†ç¡®çއ \\ + 输出创新 & ä»Žæˆªå›¾åˆ°æŠ¥å‘Šçš„è¯æ®åŒ–输出 & æ”¯æ’‘å¤æ ¸ã€æ±‡æŠ¥ä¸ŽåŽç»­å¤ç”¨ \\ + \bottomrule + \end{tabularx} +\end{table} + +\section{与传统方å¼å¯¹æ¯”优势} + +\begin{table}[H] + \centering + \caption{ä¸Žä¼ ç»Ÿäººå·¥å¤„ç†æ–¹å¼å¯¹æ¯”表} + \begin{tabularx}{\textwidth}{p{0.2\textwidth}p{0.23\textwidth}Y} + \toprule + 对比维度 & ä¼ ç»Ÿäººå·¥æ–¹å¼ & æœ¬é¡¹ç›®æ–¹å¼ \\ + \midrule + ææ–™å¤„ç† & é€å¼ é˜…è¯»ã€æ‰‹å·¥ç™»è®° & 批é‡ä¸Šä¼ ã€è‡ªåŠ¨è¯†åˆ«ã€ç»Ÿä¸€ç»“构化 \\ + é‡å¤æŽ§åˆ¶ & é äººå·¥æ¯”对金é¢ä¸Žæ—¶é—´ & 订å•å·ã€é‡‘é¢ã€æ—¶é—´çª—等多特å¾å½’å¹¶ \\ + 中转识别 & ä¾èµ–个人ç»éªŒåˆ¤æ–­ & 规则化识别与路径分æžç»“åˆ \\ + 金é¢è®¤å®š & 结论易å—个体ç»éªŒå½±å“ & 分层认定并æä¾›ç†ç”±è¯´æ˜Ž \\ + ç»“æžœå¤æ ¸ & äºŒæ¬¡æ•´ç†æˆæœ¬é«˜ & 夿 ¸é¡µé¢ç›´æŽ¥ç¡®è®¤ä¸Žä¿®æ­£ \\ + 输出能力 & 多为零散记录与截图附件 & å½¢æˆå›¾ã€è¡¨ã€æ–‡ä¸€ä½“çš„è¯æ®åŒ–报告 \\ + \bottomrule + \end{tabularx} +\end{table} + +\section{与å•点OCR工具对比优势} + +与å•点OCR工具相比,本项目的关键差异在于目标层级ä¸åŒã€‚å•点OCR关注“从图片读出文字â€ï¼Œè€Œæœ¬é¡¹ç›®å…³æ³¨â€œå›´ç»•案件任务还原交易事实并形æˆå¯å¤æ ¸ç»“论â€ã€‚因此,它在以下方é¢å…·æœ‰æ˜Žæ˜¾ä¼˜åŠ¿ï¼š + +\begin{itemize} + \item 从页é¢è¯†åˆ«å‡çº§åˆ°æ¡ˆä»¶çº§è¯æ®å…³è”ï¼› + \item 从文字抽å–å‡çº§åˆ°äº¤æ˜“归并与路径æ¢å¤ï¼› + \item ä»Žå•æ¬¡è¯†åˆ«å‡çº§åˆ°å¯å›žæº¯ã€å¯ä¿®æ­£çš„闭环处ç†ï¼› + \item 从结果输出å‡çº§åˆ°åŠžæ¡ˆææ–™ç”Ÿæˆã€‚ +\end{itemize} + +\placeholderwidefigure{建议放置“传统人工处ç†ã€æ™®é€šOCRå·¥å…·ã€æœ¬é¡¹ç›®ç³»ç»Ÿâ€ä¸‰è€…对比示æ„图,适åˆä½œä¸ºç­”辩中最直观的一页。} + +\section{方案优势总结} + +ç»¼åˆæ¥çœ‹ï¼Œæœ¬é¡¹ç›®çš„æ ¸å¿ƒä¼˜åŠ¿å¯æ¦‚括为四点:第一,问题切å£å°è€Œåˆšéœ€å¼ºï¼Œå®¹æ˜“åœ¨æ¯”èµ›ä¸­å½¢æˆæ˜Žç¡®ä»·å€¼åˆ¤æ–­ï¼›ç¬¬äºŒï¼ŒæŠ€æœ¯è·¯å¾„ç¨³å¦¥ï¼Œå…¼é¡¾æ™ºèƒ½æ€§ä¸Žå¯æŽ§æ€§ï¼›ç¬¬ä¸‰ï¼Œè¾“å‡ºç»“æžœå¯è§£é‡Šã€å¯å¤æ ¸ã€å¯è¿½æº¯ï¼›ç¬¬å››ï¼Œå…·å¤‡å‘更多涉网资金案件场景推广的现实基础。 diff --git a/docs/competition-book/chapters/07-application.tex b/docs/competition-book/chapters/07-application.tex new file mode 100644 index 0000000..6c45cfd --- /dev/null +++ b/docs/competition-book/chapters/07-application.tex @@ -0,0 +1,77 @@ +\chapter{åº”ç”¨æˆæ•ˆä¸ŽæŽ¨å¹¿å‰æ™¯} + +\section{åº”ç”¨æˆæ•ˆè¯´æ˜Ž} + +本项目é¢å‘真实办案æµç¨‹è®¾è®¡ï¼Œå…¶ä»·å€¼ä¸åªä½“现在“能识别截图â€ï¼Œæ›´ä½“çŽ°åœ¨â€œèƒ½æŠŠæˆªå›¾æ•´ç†æˆå¯è®¤å®šçš„æ¡ˆä»¶ç»“æžœâ€ã€‚结åˆå½“å‰ç³»ç»Ÿèƒ½åŠ›ï¼Œé¡¹ç›®çš„åº”ç”¨æˆæ•ˆå¯ä»Žæ•ˆçއã€è´¨é‡å’Œç®¡ç†ä¸‰ä¸ªç»´åº¦è¿›è¡Œè¯„估。 + +\subsection{效率æå‡} + +在传统模å¼ä¸‹ï¼Œæ°‘警需è¦å®Œæˆæˆªå›¾æ•´ç†ã€é‡å¤æŽ’查ã€é‡‘颿 ¸ç®—ã€ç¬”录补问ã€ç¬”å½•æˆæ–‡å’Œç»“果汇总等多项é‡å¤åŠ³åŠ¨ã€‚ç³»ç»Ÿä¸Šçº¿åŽï¼Œè¿™äº›å·¥ä½œç”±äººå·¥å…¨æµç¨‹ä¸²è¡Œå¤„ç†ï¼Œè½¬å˜ä¸ºâ€œç³»ç»Ÿå…ˆå¤„ç†ã€æ°‘è­¦å†å¤æ ¸â€çš„æ–¹å¼ï¼Œå°¤å…¶æ˜¯è®¤å®šå¤æ ¸é¡µæ–°å¢žçš„笔录功能,å¯å°†å·²ç¡®è®¤äº¤æ˜“自动汇总为å¯ç›´æŽ¥æ’å…¥ç¬”å½•çš„å†…å®¹ï¼Œé¢„è®¡å¯æ˜¾è‘—æå‡æ¡ˆä»¶åˆæ•´ã€é‡‘颿 ¸ç®—和笔录制作效率。 + +\subsection{è´¨é‡æå‡} + +系统通过统一字段抽å–ã€è·¨å¹³å°å½’å¹¶ã€ä¸­è½¬è¯†åˆ«å’Œåˆ†å±‚认定,能够é™ä½Žé‡å¤è®¡ç®—ã€æ¼ç®—和误算风险,å‡å°‘ä¸åŒæ°‘警之间因个人ç»éªŒå·®å¼‚带æ¥çš„认定å£å¾„ä¸ä¸€è‡´é—®é¢˜ã€‚ + +\subsection{å¤ç”¨æå‡} + +系统输出结构化交易清å•ã€è¯æ®ç´¢å¼•ã€è·¯å¾„图ã€ç¬”录内容和导出报告åŽï¼ŒåŽç»­æ±‡æŠ¥ã€ç§»é€ã€ç¬”录制作和归档环节å¯ç›´æŽ¥å¤ç”¨å¤„ç†ç»“果,å‡å°‘é‡å¤åŠ³åŠ¨ã€‚ + +\begin{table}[H] + \centering + \caption{åº”ç”¨æˆæ•ˆç¤ºä¾‹è¡¨ï¼ˆæ­£å¼æäº¤æ—¶æ›¿æ¢ä¸ºå®žæµ‹æ•°æ®ï¼‰} + \begin{tabularx}{\textwidth}{p{0.26\textwidth}p{0.2\textwidth}p{0.2\textwidth}Y} + \toprule + 指标项 & ä¼ ç»Ÿæ–¹å¼ & ç³»ç»Ÿè¾…åŠ©æ–¹å¼ & 备注说明 \\ + \midrule + 啿¡ˆæˆªå›¾æ•´ç†æ—¶é•¿ & ã€ç¤ºä¾‹ï¼š90分钟】 & ã€ç¤ºä¾‹ï¼š25分钟】 & 以典型案件为样本测算 \\ + è¢«éª—é‡‘é¢æ ¸ç®—æ—¶é•¿ & ã€ç¤ºä¾‹ï¼š60分钟】 & ã€ç¤ºä¾‹ï¼š15分钟】 & 嫿ޒé‡å’Œä¸­è½¬è¯†åˆ« \\ + é‡å¤è®¡ç®—å‘生率 & ã€ç¤ºä¾‹ï¼šè¾ƒé«˜ã€‘ & ã€ç¤ºä¾‹ï¼šæ˜¾è‘—下é™ã€‘ & å¯ç”¨æŠ½æ ·å¤æ ¸ç»Ÿè®¡ \\ + ç»“æžœå¤æ ¸å‡†å¤‡æ—¶é•¿ & ã€ç¤ºä¾‹ï¼š30分钟】 & ã€ç¤ºä¾‹ï¼š10分钟】 & ä¾èµ–结构化清å•与ç†ç”±è¾“出 \\ + ç¬”å½•æˆæ–‡æ—¶é•¿ & ã€ç¤ºä¾‹ï¼š45分钟】 & ã€ç¤ºä¾‹ï¼š12分钟】 & ä¾èµ–夿 ¸é¡µç¬”录功能直接生æˆå†…容 \\ + æŠ¥å‘Šæ•´ç†æ—¶é•¿ & ã€ç¤ºä¾‹ï¼š40分钟】 & ã€ç¤ºä¾‹ï¼š5分钟】 & 由系统导出结果替代人工汇总 \\ + \bottomrule + \end{tabularx} +\end{table} + +\section{答辩展示建议} + +ä¸ºäº†å¢žå¼ºæ¯”èµ›å±•ç¤ºæ•ˆæžœï¼Œå»ºè®®ç­”è¾©çŽ¯èŠ‚å›´ç»•â€œé—®é¢˜åˆ‡å…¥ã€æµç¨‹æ¼”示ã€äº®ç‚¹æç‚¼ã€æˆæ•ˆè¯´æ˜Žâ€å››æ­¥å±•开。 + +\begin{enumerate} + \item å…ˆç”¨ä¸€é¡µè®²æ¸…åŸºå±‚æ°‘è­¦åœ¨å¤§é‡æˆªå›¾æ•´ç†ä¸­çš„痛点; + \item 冿¼”示完整工作闭环:上传截图ã€OCR识别ã€äº¤æ˜“å½’å¹¶ã€èµ„金分æžã€è®¤å®šå¤æ ¸ã€ç¬”录生æˆã€æŠ¥å‘Šå¯¼å‡ºï¼› + \item 接ç€çªå‡ºå››ä¸ªäº®ç‚¹ï¼šè·¨å¹³å°åŽ»é‡ã€ä¸­è½¬è¯†åˆ«ã€å…³é”®è¯å›žæº¯è‡ªæˆ‘完善ã€ç¬”录内容直接æ’入; + \item 最åŽç”¨å›¾è¡¨è¯´æ˜Žæ•ˆçއæå‡å’ŒæŽ¨å¹¿ä»·å€¼ã€‚ +\end{enumerate} + +\placeholderwidefigure{å»ºè®®æ”¾ç½®â€œç­”è¾©æ¼”ç¤ºé“¾è·¯å›¾â€æˆ–“演示截图拼图â€ï¼Œä½œä¸ºçŽ°åœºå±•ç¤ºçš„æ ¸å¿ƒå¤§å›¾ã€‚} + +\section{æŽ¨å¹¿å‰æ™¯} + +æœ¬é¡¹ç›®çš„å¤„ç†æ¡†æž¶å¹¶ä¸é™äºŽç”µè¯ˆå—害人资金核查,还å¯åœ¨ä»¥ä¸‹åœºæ™¯ä¸­å¤åˆ¶æŽ¨å¹¿ï¼š + +\begin{itemize} + \item 帮助信æ¯ç½‘络犯罪活动案件中的资金梳ç†ï¼› + \item éžæ³•集资ã€ç½‘络赌åšç­‰æ¶‰ç½‘æ¡ˆä»¶çš„ç”µå­æ”¯ä»˜è¯æ®åˆ†æžï¼› + \item è¡Œæ”¿æ¡ˆä»¶ä¸­å¤šæºæ”¯ä»˜å‡­è¯çš„æ•´ç†ä¸Žæ ¸éªŒï¼› + \item 其他需è¦ä»Žå¤šæˆªå›¾ææ–™ä¸­æ¢å¤èµ„金事实的场景。 +\end{itemize} + +\begin{table}[H] + \centering + \caption{项目推广价值分æžè¡¨} + \begin{tabularx}{\textwidth}{p{0.19\textwidth}p{0.25\textwidth}Y} + \toprule + 推广维度 & 具体表现 & 预期价值 \\ + \midrule + 场景è¿ç§» & å¯è¿ç§»è‡³å…¶ä»–涉网资金案件 & æé«˜ç³»ç»Ÿå¤ç”¨çŽ‡å’ŒæŠ•èµ„äº§å‡ºæ¯” \\ + 能力å¤ç”¨ & OCRã€å½’å¹¶ã€è®¤å®šã€å¯¼å‡ºé“¾è·¯å¯å¤ç”¨ & é™ä½ŽäºŒæ¬¡å¼€å‘æˆæœ¬ \\ + æ•°æ®æ²‰æ·€ & å½¢æˆç»“构化案件数æ®ä¸Žè§„则样本 & 支撑æŒç»­ä¼˜åŒ–与模型迭代 \\ + 组织推广 & æ˜“äºŽå½¢æˆæ ‡å‡†æµç¨‹ä¸ŽåŸ¹è®­ææ–™ & 便于基层快速å¤åˆ¶è½åœ° \\ + \bottomrule + \end{tabularx} +\end{table} + +\section{安全与åˆè§„考虑} + +警务智能体项目必须兼顾效果与åˆè§„ã€‚æœ¬é¡¹ç›®åœ¨è®¾è®¡ä¸­åšæŒä»¥ä¸‹åŽŸåˆ™ï¼šåªé¢å‘授æƒåŠžæ¡ˆåœºæ™¯ä½¿ç”¨ï¼›æ¡ˆä»¶æ•°æ®æŒ‰æœ€å°å¿…è¦åŽŸåˆ™é‡‡é›†ä¸Žå¤„ç†ï¼›æ™ºèƒ½ä½“输出仅作为辅助æ„è§ï¼Œæœ€ç»ˆè®¤å®šç”±æ°‘è­¦ä¾æ³•审核;关键过程ä¿ç•™ç»“æžœå¿«ç…§å’Œå¤æ ¸ç—•迹;部署方å¼å¯è¿›ä¸€æ­¥å‘本地化或专网化环境扩展。 diff --git a/docs/competition-book/chapters/08-conclusion.tex b/docs/competition-book/chapters/08-conclusion.tex new file mode 100644 index 0000000..97b4653 --- /dev/null +++ b/docs/competition-book/chapters/08-conclusion.tex @@ -0,0 +1,16 @@ +\chapter{结论} + +本项目围绕电信网络诈骗案件å—å®³äººèµ„é‡‘æ ¸æŸ¥è¿™ä¸€åŸºå±‚é«˜é¢‘è­¦åŠ¡åœºæ™¯ï¼Œæž„å»ºäº†ä¸€å¥—ä»Žæˆªå›¾è¯æ®è¾“入到认定结果输出的多智能体ååŒç³»ç»Ÿã€‚系统通过多APP截图自动识别ã€è·¨å¹³å°äº¤æ˜“å½’å¹¶ã€æœ¬äººè´¦æˆ·ä¸­è½¬è¯†åˆ«ã€èµ„金路径分æžã€è¢«éª—金é¢åˆ†å±‚认定ã€äººå·¥å¤æ ¸ä¸ŽæŠ¥å‘Šå¯¼å‡ºï¼Œå½¢æˆäº†å®Œæ•´çš„办案辅助闭环。 + +ä¸Žä¼ ç»Ÿäººå·¥å¤„ç†æ–¹å¼ç›¸æ¯”,本项目的核心价值在于三点:其一,将分散ã€é‡å¤ã€é›¶ç¢Žçš„æˆªå›¾ææ–™è½¬åŒ–ä¸ºç»Ÿä¸€ç»“æž„åŒ–è¯æ®ï¼›å…¶äºŒï¼Œå°†ä¾èµ–个体ç»éªŒçš„æŽ’é‡ä¸Žè®¤å®šè¿‡ç¨‹æ²‰æ·€ä¸ºå¯è§£é‡Šã€å¯å¤æ ¸çš„è§„åˆ™åŒ–èƒ½åŠ›ï¼›å…¶ä¸‰ï¼Œå°†æœ€ç»ˆç»“æžœç›´æŽ¥è½¬åŒ–ä¸ºå¯æ±‡æŠ¥ã€å¯å¯¼å‡ºã€å¯å¤ç”¨çš„åŠžæ¡ˆææ–™ã€‚å°¤å…¶æ˜¯â€œè¯æ®è¯†åˆ«åŽå…³é”®è¯å›žæº¯â€çš„自我完善机制,使系统具备在任务执行过程中æŒç»­ä¿®æ­£å‰åºåˆ¤æ–­çš„èƒ½åŠ›ï¼Œæ›´ç¬¦åˆæ™ºèƒ½ä½“系统的å‘展方å‘。 + +从项目建设现状看,系统已ç»å…·å¤‡è¾ƒæ¸…晰的功能边界ã€å®Œæ•´çš„业务链路和较强的展示性,适åˆä½œä¸ºå…¨å›½â€œæ™ºæ…§+警务â€AI智能体大赛的递交项目。从åŽç»­å‘展看,项目ä»å¯åœ¨çœŸå®žæ ·æœ¬ç§¯ç´¯ã€è§„则精细化ã€ä¸“网部署ã€å®‰å…¨å®¡è®¡å’Œè·¨æ¡ˆä»¶ç ”åˆ¤ç­‰æ–¹é¢æŒç»­æ·±åŒ–,进一步æå‡å®žæˆ˜æ”¯æ’‘能力和推广价值。 + +\section{åŽç»­å®Œå–„建议} + +\begin{enumerate} + \item åœ¨æ­£å¼æäº¤å‰è¡¥å……脱æ•åŽçš„真实截图ã€ç•Œé¢æˆªå›¾å’Œå¯¼å‡ºæŠ¥å‘Šæ ·é¡µï¼› + \item ç”¨çœŸå®žæ¡ˆä»¶æ ·æœ¬æ›¿æ¢æ–‡ä¸­ç¤ºä¾‹æ€§æˆæ•ˆæ•°æ®ï¼Œå¢žå¼ºè¯´æœåŠ›ï¼› + \item 补充本地化部署ã€å®‰å…¨æŽ§åˆ¶å’Œæ—¥å¿—审计细节,æå‡é¡¹ç›®å®Œæ•´æ€§ï¼› + \item 准备一段完整演示视频,与项目书形æˆäº’相å°è¯çš„å±•ç¤ºææ–™ã€‚ +\end{enumerate} diff --git a/docs/competition-book/chapters/09-appendix.tex b/docs/competition-book/chapters/09-appendix.tex new file mode 100644 index 0000000..4d7c600 --- /dev/null +++ b/docs/competition-book/chapters/09-appendix.tex @@ -0,0 +1,41 @@ +\chapter{附录} + +\section{建议替æ¢çš„图片清å•} + +\begin{longtable}{p{0.09\textwidth}p{0.22\textwidth}p{0.23\textwidth}p{0.28\textwidth}} + \toprule + åºå· & 图片åç§° & å»ºè®®æ¥æº & 替æ¢è¯´æ˜Ž \\ + \midrule + 图1 & 系统总体架构图 & 自绘架构图 & å±•ç¤ºç³»ç»Ÿåˆ†å±‚ã€æ¨¡å—å…³ç³»ä¸Žæ•°æ®æµ \\ + 图2 & 多APP截图样例图 & 脱æ•åŽçš„真实截图 & å»ºè®®åŒæ—¶å±•ç¤ºå¾®ä¿¡ã€æ”¯ä»˜å®ã€é“¶è¡ŒAPPä¸‰ç±»é¡µé¢ \\ + 图3 & 工作å°ç•Œé¢å›¾ & 系统å‰ç«¯é¡µé¢æˆªå›¾ & çªå‡ºä¸Šä¼ ã€OCR进度ã€äº¤æ˜“æ•°é‡ã€å¾…夿 ¸æ•°é‡ \\ + 图4 & 交易归并对比图 & 自绘示æ„å›¾æˆ–é¡µé¢æˆªå›¾ & 展示归并å‰åŽè®°å½•æ•°é‡å˜åŒ– \\ + 图5 & 中转识别示æ„图 & 自绘路径图 & 展示内部中转与对外支付的边界 \\ + 图6 & 资金æµè½¬å…³ç³»å›¾ & 分æžé¡µæˆªå›¾ & å±•ç¤ºæœ¬äººè´¦æˆ·ã€æ¶‰è¯ˆè´¦æˆ·ã€ä¸­è½¬è´¦æˆ·èŠ‚ç‚¹å…³ç³» \\ + 图7 & 交易时间轴图 & 分æžé¡µæˆªå›¾ & å±•ç¤ºæ¡ˆä»¶å…³é”®äº¤æ˜“æ—¶åº \\ + 图8 & è®¤å®šå¤æ ¸ç•Œé¢å›¾ & 夿 ¸é¡µæˆªå›¾ & 展示高ã€ä¸­ã€ä½Žç½®ä¿¡å’Œäººå·¥å¤æ ¸åŠ¨ä½œ \\ + 图9 & 报告导出样页图 & PDF/Excel导出样页 & å±•ç¤ºæœ€ç»ˆåŠžæ¡ˆè¾“å‡ºæˆæžœ \\ + \bottomrule +\end{longtable} + +\section{建议替æ¢çš„æ•°æ®é¡¹} + +\begin{table}[H] + \centering + \caption{æ­£å¼æäº¤å‰å»ºè®®è¡¥å……的数æ®é¡¹} + \begin{tabularx}{\textwidth}{p{0.22\textwidth}p{0.28\textwidth}Y} + \toprule + æ•°æ®ç±»åˆ« & 具体字段 & 用途说明 \\ + \midrule + æ¡ˆä¾‹åŸºæœ¬ä¿¡æ¯ & æˆªå›¾æ€»æ•°ã€æ¶‰åŠAPPæ•°é‡ã€äº¤æ˜“总笔数 & 强化场景真实度 \\ + æ•ˆçŽ‡æ•°æ® & 人工耗时ã€ç³»ç»Ÿè€—æ—¶ã€å¤æ ¸è€—æ—¶ & 用于说明效率æå‡ \\ + è´¨é‡æ•°æ® & é‡å¤è®¡ç®—å‡å°‘æƒ…å†µã€æ¼ç®—纠正情况 & 用于说明准确率æå‡ \\ + è¾“å‡ºæ•°æ® & 报告页数ã€å¯¼å‡ºæ ¼å¼ã€è¯æ®ç´¢å¼•æ•°é‡ & 用于说明办案输出能力 \\ + æŽ¨å¹¿æ•°æ® & 试用人员å馈ã€å¯å¤åˆ¶åœºæ™¯æ•°é‡ & 用于说明推广价值 \\ + \bottomrule + \end{tabularx} +\end{table} + +\section{编译说明} + +本项目书建议使用 \texttt{xelatex} 编译,以便稳定支æŒä¸­æ–‡æŽ’版。若åŽç»­æ–°å¢žçœŸå®žå›¾ç‰‡ï¼Œè¯·ç»Ÿä¸€æ”¾ç½®åœ¨ \texttt{figures/} 目录中,并在替æ¢å ä½å›¾æ—¶é‡‡ç”¨è„±æ•åŽçš„æ­£å¼ææ–™ã€‚ diff --git a/docs/competition-book/main.aux b/docs/competition-book/main.aux new file mode 100644 index 0000000..1f7c72c --- /dev/null +++ b/docs/competition-book/main.aux @@ -0,0 +1,115 @@ +\relax +\providecommand\hyper@newdestlabel[2]{} +\providecommand*\HyPL@Entry[1]{} +\HyPL@Entry{0<>} +\HyPL@Entry{1<>} +\@writefile{toc}{\contentsline {chapter}{摘è¦}{i}{chapter*.1}\protected@file@percent } +\HyPL@Entry{4<>} +\@writefile{toc}{\contentsline {chapter}{\numberline {第一章\hspace {.3em}}项目背景与建设æ„义}{1}{chapter.1}\protected@file@percent } +\@writefile{lof}{\addvspace {10.0pt}} +\@writefile{lot}{\addvspace {10.0pt}} +\@writefile{toc}{\contentsline {section}{\numberline {1.1}建设背景}{1}{section.1.1}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {1.2}建设æ„义}{1}{section.1.2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.2.1}对一线办案的直接支撑}{1}{subsection.1.2.1}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.2.2}å¯¹è¯æ®ç»„织方å¼çš„å‡çº§}{1}{subsection.1.2.2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {1.2.3}对警务智能体应用范å¼çš„示范}{1}{subsection.1.2.3}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {1.3}项目定ä½}{1}{section.1.3}\protected@file@percent } +\@writefile{lot}{\contentsline {table}{\numberline {1.1}{\ignorespaces 项目定ä½ä¸Žè­¦åŠ¡ä»·å€¼å¯¹åº”è¡¨}}{2}{table.caption.3}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {1.4}建设目标}{2}{section.1.4}\protected@file@percent } +\@writefile{toc}{\contentsline {chapter}{\numberline {第二章\hspace {.3em}}场景痛点与需求分æž}{2}{chapter.2}\protected@file@percent } +\@writefile{lof}{\addvspace {10.0pt}} +\@writefile{lot}{\addvspace {10.0pt}} +\@writefile{toc}{\contentsline {section}{\numberline {2.1}业务场景还原}{2}{section.2.1}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {2.2}çŽ°æœ‰å¤„ç†æ–¹å¼å­˜åœ¨çš„问题}{3}{section.2.2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {2.2.1}é—®é¢˜ä¸€ï¼šæˆªå›¾ææ–™åˆ†æ•£ï¼Œäººå·¥æ•´ç†è€—æ—¶é•¿}{3}{subsection.2.2.1}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {2.2.2}问题二:åŒä¸€äº¤æ˜“多次展示,é‡å¤è®¡ç®—风险高}{3}{subsection.2.2.2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {2.2.3}问题三:中转与对外支付混æ‚,认定难度大}{3}{subsection.2.2.3}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {2.2.4}问题四:结果ä¸å¯å¤ç”¨ï¼ŒåŽç»­ä»éœ€é‡å¤æ•´ç†}{3}{subsection.2.2.4}\protected@file@percent } +\@writefile{lot}{\contentsline {table}{\numberline {2.1}{\ignorespaces ä¼ ç»Ÿå¤„ç†æ–¹å¼ä¸»è¦é—®é¢˜åˆ†æžè¡¨}}{3}{table.caption.6}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {2.3}核心需求分æž}{3}{section.2.3}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {2.3.1}需求一:统一识别与结构化抽å–}{3}{subsection.2.3.1}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {2.3.2}需求二:跨平å°å½’并与资金链æ¢å¤}{4}{subsection.2.3.2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {2.3.3}需求三:é¢å‘办案的认定结果输出}{4}{subsection.2.3.3}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {2.3.4}需求四:形æˆå¯å¤æ ¸ã€å¯æ±‡æŠ¥ã€å¯å¯¼å‡ºçš„æˆæžœ}{4}{subsection.2.3.4}\protected@file@percent } +\@writefile{lot}{\contentsline {table}{\numberline {2.2}{\ignorespaces 系统建设需求分解表}}{4}{table.caption.7}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {2.4}项目书写作边界说明}{4}{section.2.4}\protected@file@percent } +\@writefile{toc}{\contentsline {chapter}{\numberline {第三章\hspace {.3em}}总体方案与技术路线}{4}{chapter.3}\protected@file@percent } +\@writefile{lof}{\addvspace {10.0pt}} +\@writefile{lot}{\addvspace {10.0pt}} +\@writefile{toc}{\contentsline {section}{\numberline {3.1}总体设计原则}{4}{section.3.1}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {3.2}总体架构}{4}{section.3.2}\protected@file@percent } +\@writefile{lot}{\contentsline {table}{\numberline {3.1}{\ignorespaces 总体架构层次说明表}}{5}{table.caption.9}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {3.3}多智能体ååŒåˆ†å·¥}{5}{section.3.3}\protected@file@percent } +\@writefile{lot}{\contentsline {table}{\numberline {3.2}{\ignorespaces 多智能体ååŒåˆ†å·¥è¡¨}}{5}{table.caption.10}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {3.4}技术路线}{6}{section.3.4}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {3.5}æµç¨‹é—­çޝ}{6}{section.3.5}\protected@file@percent } +\@writefile{toc}{\contentsline {chapter}{\numberline {第四章\hspace {.3em}}核心能力与关键机制}{6}{chapter.4}\protected@file@percent } +\@writefile{lof}{\addvspace {10.0pt}} +\@writefile{lot}{\addvspace {10.0pt}} +\@writefile{toc}{\contentsline {section}{\numberline {4.1}多APP截图识别与字段抽å–}{6}{section.4.1}\protected@file@percent } +\@writefile{lot}{\contentsline {table}{\numberline {4.1}{\ignorespaces 截图识别关键字段表}}{7}{table.caption.12}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {4.2}关键è¯å›žæº¯é©±åŠ¨çš„è‡ªæˆ‘å®Œå–„æœºåˆ¶}{7}{section.4.2}\protected@file@percent } +\@writefile{lot}{\contentsline {table}{\numberline {4.2}{\ignorespaces 关键è¯å›žæº¯ä¼˜åŒ–机制说明表}}{8}{table.caption.14}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {4.3}跨平å°äº¤æ˜“归并与去é‡}{8}{section.4.3}\protected@file@percent } +\@writefile{lot}{\contentsline {table}{\numberline {4.3}{\ignorespaces 交易归并与去é‡è§„则表}}{8}{table.caption.15}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {4.4}本人账户中转识别}{8}{section.4.4}\protected@file@percent } +\@writefile{lot}{\contentsline {table}{\numberline {4.4}{\ignorespaces 本人账户中转识别逻辑表}}{9}{table.caption.17}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {4.5}被骗金é¢åˆ†å±‚认定}{9}{section.4.5}\protected@file@percent } +\@writefile{lot}{\contentsline {table}{\numberline {4.5}{\ignorespaces 被骗金é¢åˆ†å±‚认定表}}{9}{table.caption.19}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {4.6}笔录辅助生æˆã€é—®è¯¢å»ºè®®ä¸Žè¯æ®åŒ–输出}{9}{section.4.6}\protected@file@percent } +\@writefile{lot}{\contentsline {table}{\numberline {4.6}{\ignorespaces è®¤å®šå¤æ ¸é¡µç¬”录功能说明表}}{10}{table.caption.20}\protected@file@percent } +\@writefile{toc}{\contentsline {chapter}{\numberline {第五章\hspace {.3em}}系统实现与界é¢å±•示}{10}{chapter.5}\protected@file@percent } +\@writefile{lof}{\addvspace {10.0pt}} +\@writefile{lot}{\addvspace {10.0pt}} +\@writefile{toc}{\contentsline {section}{\numberline {5.1}系统实现概况}{10}{section.5.1}\protected@file@percent } +\@writefile{lot}{\contentsline {table}{\numberline {5.1}{\ignorespaces 系统技术实现表}}{10}{table.caption.21}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {5.2}å‰ç«¯åŠŸèƒ½é¡µé¢}{10}{section.5.2}\protected@file@percent } +\@writefile{lot}{\contentsline {table}{\numberline {5.2}{\ignorespaces å‰ç«¯æ ¸å¿ƒé¡µé¢è¯´æ˜Žè¡¨}}{11}{table.caption.22}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {5.3}åŽç«¯æŽ¥å£ä¸ŽæœåŠ¡å®žçŽ°}{12}{section.5.3}\protected@file@percent } +\@writefile{lot}{\contentsline {table}{\numberline {5.3}{\ignorespaces åŽç«¯ä¸»è¦æŽ¥å£è¡¨}}{12}{table.caption.27}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {5.4}处ç†é“¾è·¯å®žçް}{12}{section.5.4}\protected@file@percent } +\@writefile{lot}{\contentsline {table}{\numberline {5.4}{\ignorespaces 案件分æžé“¾è·¯å®žçŽ°è¡¨}}{12}{table.caption.28}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {5.5}部署与演示方å¼}{13}{section.5.5}\protected@file@percent } +\@writefile{lot}{\contentsline {table}{\numberline {5.5}{\ignorespaces 部署与演示方å¼è¡¨}}{13}{table.caption.29}\protected@file@percent } +\@writefile{toc}{\contentsline {chapter}{\numberline {第六章\hspace {.3em}}创新点与方案优势}{13}{chapter.6}\protected@file@percent } +\@writefile{lof}{\addvspace {10.0pt}} +\@writefile{lot}{\addvspace {10.0pt}} +\@writefile{toc}{\contentsline {section}{\numberline {6.1}创新点æç‚¼}{13}{section.6.1}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {6.1.1}场景创新}{13}{subsection.6.1.1}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {6.1.2}方法创新}{13}{subsection.6.1.2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {6.1.3}机制创新}{13}{subsection.6.1.3}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {6.1.4}输出创新}{13}{subsection.6.1.4}\protected@file@percent } +\@writefile{lot}{\contentsline {table}{\numberline {6.1}{\ignorespaces 项目创新点汇总表}}{14}{table.caption.30}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {6.2}与传统方å¼å¯¹æ¯”优势}{14}{section.6.2}\protected@file@percent } +\@writefile{lot}{\contentsline {table}{\numberline {6.2}{\ignorespaces ä¸Žä¼ ç»Ÿäººå·¥å¤„ç†æ–¹å¼å¯¹æ¯”表}}{14}{table.caption.31}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {6.3}与å•点OCR工具对比优势}{14}{section.6.3}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {6.4}方案优势总结}{14}{section.6.4}\protected@file@percent } +\@writefile{toc}{\contentsline {chapter}{\numberline {第七章\hspace {.3em}}åº”ç”¨æˆæ•ˆä¸ŽæŽ¨å¹¿å‰æ™¯}{15}{chapter.7}\protected@file@percent } +\@writefile{lof}{\addvspace {10.0pt}} +\@writefile{lot}{\addvspace {10.0pt}} +\@writefile{toc}{\contentsline {section}{\numberline {7.1}åº”ç”¨æˆæ•ˆè¯´æ˜Ž}{15}{section.7.1}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {7.1.1}效率æå‡}{15}{subsection.7.1.1}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {7.1.2}è´¨é‡æå‡}{15}{subsection.7.1.2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {7.1.3}å¤ç”¨æå‡}{15}{subsection.7.1.3}\protected@file@percent } +\@writefile{lot}{\contentsline {table}{\numberline {7.1}{\ignorespaces åº”ç”¨æˆæ•ˆç¤ºä¾‹è¡¨ï¼ˆæ­£å¼æäº¤æ—¶æ›¿æ¢ä¸ºå®žæµ‹æ•°æ®ï¼‰}}{15}{table.caption.33}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {7.2}答辩展示建议}{15}{section.7.2}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {7.3}æŽ¨å¹¿å‰æ™¯}{16}{section.7.3}\protected@file@percent } +\@writefile{lot}{\contentsline {table}{\numberline {7.2}{\ignorespaces 项目推广价值分æžè¡¨}}{16}{table.caption.35}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {7.4}安全与åˆè§„考虑}{16}{section.7.4}\protected@file@percent } +\@writefile{toc}{\contentsline {chapter}{\numberline {第八章\hspace {.3em}}结论}{16}{chapter.8}\protected@file@percent } +\@writefile{lof}{\addvspace {10.0pt}} +\@writefile{lot}{\addvspace {10.0pt}} +\gdef \LT@i {\LT@entry + {1}{55.27486pt}\LT@entry + {1}{117.78789pt}\LT@entry + {1}{122.59377pt}\LT@entry + {1}{146.6378pt}} +\@writefile{toc}{\contentsline {section}{\numberline {8.1}åŽç»­å®Œå–„建议}{17}{section.8.1}\protected@file@percent } +\@writefile{toc}{\contentsline {chapter}{\numberline {附录 A\hspace {.3em}}附录}{17}{appendix.A}\protected@file@percent } +\@writefile{lof}{\addvspace {10.0pt}} +\@writefile{lot}{\addvspace {10.0pt}} +\@writefile{toc}{\contentsline {section}{\numberline {A.1}建议替æ¢çš„图片清å•}{17}{section.A.1}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {A.2}建议替æ¢çš„æ•°æ®é¡¹}{17}{section.A.2}\protected@file@percent } +\@writefile{lot}{\contentsline {table}{\numberline {A.2}{\ignorespaces æ­£å¼æäº¤å‰å»ºè®®è¡¥å……的数æ®é¡¹}}{17}{table.caption.36}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {A.3}编译说明}{18}{section.A.3}\protected@file@percent } +\gdef \@abspage@last{22} diff --git a/docs/competition-book/main.out b/docs/competition-book/main.out new file mode 100644 index 0000000..fc93bcd --- /dev/null +++ b/docs/competition-book/main.out @@ -0,0 +1,64 @@ +\BOOKMARK [0][-]{chapter*.1}{\376\377\144\130\211\201}{}% 1 +\BOOKMARK [0][-]{chapter.1}{\376\377\230\171\166\356\200\314\146\157\116\016\136\372\213\276\141\017\116\111}{}% 2 +\BOOKMARK [1][-]{section.1.1}{\376\377\136\372\213\276\200\314\146\157}{chapter.1}% 3 +\BOOKMARK [1][-]{section.1.2}{\376\377\136\372\213\276\141\017\116\111}{chapter.1}% 4 +\BOOKMARK [2][-]{subsection.1.2.1}{\376\377\133\371\116\000\176\277\122\236\150\110\166\204\166\364\143\245\145\057\144\221}{section.1.2}% 5 +\BOOKMARK [2][-]{subsection.1.2.2}{\376\377\133\371\213\301\143\156\176\304\176\307\145\271\137\017\166\204\123\107\176\247}{section.1.2}% 6 +\BOOKMARK [2][-]{subsection.1.2.3}{\376\377\133\371\213\146\122\241\146\172\200\375\117\123\136\224\165\050\203\003\137\017\166\204\171\072\203\003}{section.1.2}% 7 +\BOOKMARK [1][-]{section.1.3}{\376\377\230\171\166\356\133\232\117\115}{chapter.1}% 8 +\BOOKMARK [1][-]{section.1.4}{\376\377\136\372\213\276\166\356\150\007}{chapter.1}% 9 +\BOOKMARK [0][-]{chapter.2}{\376\377\127\072\146\157\165\333\160\271\116\016\227\000\154\102\122\006\147\220}{}% 10 +\BOOKMARK [1][-]{section.2.1}{\376\377\116\032\122\241\127\072\146\157\217\330\123\237}{chapter.2}% 11 +\BOOKMARK [1][-]{section.2.2}{\376\377\163\260\147\011\131\004\164\006\145\271\137\017\133\130\127\050\166\204\225\356\230\230}{chapter.2}% 12 +\BOOKMARK [2][-]{subsection.2.2.1}{\376\377\225\356\230\230\116\000\377\032\142\052\126\376\147\120\145\231\122\006\145\143\377\014\116\272\135\345\145\164\164\006\200\027\145\366\225\177}{section.2.2}% 13 +\BOOKMARK [2][-]{subsection.2.2.2}{\376\377\225\356\230\230\116\214\377\032\124\014\116\000\116\244\146\023\131\032\153\041\134\125\171\072\377\014\221\315\131\015\213\241\173\227\230\316\226\151\232\330}{section.2.2}% 14 +\BOOKMARK [2][-]{subsection.2.2.3}{\376\377\225\356\230\230\116\011\377\032\116\055\217\154\116\016\133\371\131\026\145\057\116\330\155\367\147\102\377\014\213\244\133\232\226\276\136\246\131\047}{section.2.2}% 15 +\BOOKMARK [2][-]{subsection.2.2.4}{\376\377\225\356\230\230\126\333\377\032\176\323\147\234\116\015\123\357\131\015\165\050\377\014\124\016\176\355\116\315\227\000\221\315\131\015\145\164\164\006}{section.2.2}% 16 +\BOOKMARK [1][-]{section.2.3}{\376\377\150\070\137\303\227\000\154\102\122\006\147\220}{chapter.2}% 17 +\BOOKMARK [2][-]{subsection.2.3.1}{\376\377\227\000\154\102\116\000\377\032\176\337\116\000\213\306\122\053\116\016\176\323\147\204\123\026\142\275\123\326}{section.2.3}% 18 +\BOOKMARK [2][-]{subsection.2.3.2}{\376\377\227\000\154\102\116\214\377\032\215\350\136\163\123\360\137\122\136\166\116\016\215\104\221\321\224\376\140\142\131\015}{section.2.3}% 19 +\BOOKMARK [2][-]{subsection.2.3.3}{\376\377\227\000\154\102\116\011\377\032\227\142\124\021\122\236\150\110\166\204\213\244\133\232\176\323\147\234\217\223\121\372}{section.2.3}% 20 +\BOOKMARK [2][-]{subsection.2.3.4}{\376\377\227\000\154\102\126\333\377\032\137\142\142\020\123\357\131\015\150\070\060\001\123\357\154\107\142\245\060\001\123\357\133\374\121\372\166\204\142\020\147\234}{section.2.3}% 21 +\BOOKMARK [1][-]{section.2.4}{\376\377\230\171\166\356\116\146\121\231\117\134\217\271\165\114\213\364\146\016}{chapter.2}% 22 +\BOOKMARK [0][-]{chapter.3}{\376\377\140\073\117\123\145\271\150\110\116\016\142\200\147\057\215\357\176\277}{}% 23 +\BOOKMARK [1][-]{section.3.1}{\376\377\140\073\117\123\213\276\213\241\123\237\122\031}{chapter.3}% 24 +\BOOKMARK [1][-]{section.3.2}{\376\377\140\073\117\123\147\266\147\204}{chapter.3}% 25 +\BOOKMARK [1][-]{section.3.3}{\376\377\131\032\146\172\200\375\117\123\123\117\124\014\122\006\135\345}{chapter.3}% 26 +\BOOKMARK [1][-]{section.3.4}{\376\377\142\200\147\057\215\357\176\277}{chapter.3}% 27 +\BOOKMARK [1][-]{section.3.5}{\376\377\155\101\172\013\225\355\163\257}{chapter.3}% 28 +\BOOKMARK [0][-]{chapter.4}{\376\377\150\070\137\303\200\375\122\233\116\016\121\163\225\056\147\072\122\066}{}% 29 +\BOOKMARK [1][-]{section.4.1}{\376\377\131\032\000A\000P\000P\142\052\126\376\213\306\122\053\116\016\133\127\153\265\142\275\123\326}{chapter.4}% 30 +\BOOKMARK [1][-]{section.4.2}{\376\377\121\163\225\056\213\315\126\336\156\257\232\161\122\250\166\204\201\352\142\021\133\214\125\204\147\072\122\066}{chapter.4}% 31 +\BOOKMARK [1][-]{section.4.3}{\376\377\215\350\136\163\123\360\116\244\146\023\137\122\136\166\116\016\123\273\221\315}{chapter.4}% 32 +\BOOKMARK [1][-]{section.4.4}{\376\377\147\054\116\272\215\046\142\067\116\055\217\154\213\306\122\053}{chapter.4}% 33 +\BOOKMARK [1][-]{section.4.5}{\376\377\210\253\232\227\221\321\230\235\122\006\134\102\213\244\133\232}{chapter.4}% 34 +\BOOKMARK [1][-]{section.4.6}{\376\377\173\024\137\125\217\205\122\251\165\037\142\020\060\001\225\356\213\342\136\372\213\256\116\016\213\301\143\156\123\026\217\223\121\372}{chapter.4}% 35 +\BOOKMARK [0][-]{chapter.5}{\376\377\174\373\176\337\133\236\163\260\116\016\165\114\227\142\134\125\171\072}{}% 36 +\BOOKMARK [1][-]{section.5.1}{\376\377\174\373\176\337\133\236\163\260\151\202\121\265}{chapter.5}% 37 +\BOOKMARK [1][-]{section.5.2}{\376\377\122\115\172\357\122\237\200\375\230\165\227\142}{chapter.5}% 38 +\BOOKMARK [1][-]{section.5.3}{\376\377\124\016\172\357\143\245\123\343\116\016\147\015\122\241\133\236\163\260}{chapter.5}% 39 +\BOOKMARK [1][-]{section.5.4}{\376\377\131\004\164\006\224\376\215\357\133\236\163\260}{chapter.5}% 40 +\BOOKMARK [1][-]{section.5.5}{\376\377\220\350\177\162\116\016\157\024\171\072\145\271\137\017}{chapter.5}% 41 +\BOOKMARK [0][-]{chapter.6}{\376\377\122\033\145\260\160\271\116\016\145\271\150\110\117\030\122\277}{}% 42 +\BOOKMARK [1][-]{section.6.1}{\376\377\122\033\145\260\160\271\143\320\160\274}{chapter.6}% 43 +\BOOKMARK [2][-]{subsection.6.1.1}{\376\377\127\072\146\157\122\033\145\260}{section.6.1}% 44 +\BOOKMARK [2][-]{subsection.6.1.2}{\376\377\145\271\154\325\122\033\145\260}{section.6.1}% 45 +\BOOKMARK [2][-]{subsection.6.1.3}{\376\377\147\072\122\066\122\033\145\260}{section.6.1}% 46 +\BOOKMARK [2][-]{subsection.6.1.4}{\376\377\217\223\121\372\122\033\145\260}{section.6.1}% 47 +\BOOKMARK [1][-]{section.6.2}{\376\377\116\016\117\040\176\337\145\271\137\017\133\371\153\324\117\030\122\277}{chapter.6}% 48 +\BOOKMARK [1][-]{section.6.3}{\376\377\116\016\123\125\160\271\000O\000C\000R\135\345\121\167\133\371\153\324\117\030\122\277}{chapter.6}% 49 +\BOOKMARK [1][-]{section.6.4}{\376\377\145\271\150\110\117\030\122\277\140\073\176\323}{chapter.6}% 50 +\BOOKMARK [0][-]{chapter.7}{\376\377\136\224\165\050\142\020\145\110\116\016\143\250\136\177\122\115\146\157}{}% 51 +\BOOKMARK [1][-]{section.7.1}{\376\377\136\224\165\050\142\020\145\110\213\364\146\016}{chapter.7}% 52 +\BOOKMARK [2][-]{subsection.7.1.1}{\376\377\145\110\163\207\143\320\123\107}{section.7.1}% 53 +\BOOKMARK [2][-]{subsection.7.1.2}{\376\377\215\050\221\317\143\320\123\107}{section.7.1}% 54 +\BOOKMARK [2][-]{subsection.7.1.3}{\376\377\131\015\165\050\143\320\123\107}{section.7.1}% 55 +\BOOKMARK [1][-]{section.7.2}{\376\377\173\124\217\251\134\125\171\072\136\372\213\256}{chapter.7}% 56 +\BOOKMARK [1][-]{section.7.3}{\376\377\143\250\136\177\122\115\146\157}{chapter.7}% 57 +\BOOKMARK [1][-]{section.7.4}{\376\377\133\211\121\150\116\016\124\010\211\304\200\003\206\121}{chapter.7}% 58 +\BOOKMARK [0][-]{chapter.8}{\376\377\176\323\213\272}{}% 59 +\BOOKMARK [1][-]{section.8.1}{\376\377\124\016\176\355\133\214\125\204\136\372\213\256}{chapter.8}% 60 +\BOOKMARK [0][-]{appendix.A}{\376\377\226\104\137\125}{}% 61 +\BOOKMARK [1][-]{section.A.1}{\376\377\136\372\213\256\146\377\143\142\166\204\126\376\162\107\156\005\123\125}{appendix.A}% 62 +\BOOKMARK [1][-]{section.A.2}{\376\377\136\372\213\256\146\377\143\142\166\204\145\160\143\156\230\171}{appendix.A}% 63 +\BOOKMARK [1][-]{section.A.3}{\376\377\177\026\213\321\213\364\146\016}{appendix.A}% 64 diff --git a/docs/competition-book/main.pdf b/docs/competition-book/main.pdf new file mode 100644 index 0000000000000000000000000000000000000000..3ad644e9f22d72fc24af83ceda22782b8493a62d GIT binary patch literal 289586 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 z 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
=KU10 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\raggedleft\arraybackslash}p{0.28\textwidth}X} + 项目å称: & 智æžå诈 \\ + 申报å•ä½ï¼š & ã€å¾…填写】 \\ + 项目负责人: & ã€å¾…填写】 \\ + 团队æˆå‘˜ï¼š & ã€å¾…填写】 \\ + å®Œæˆæ—¶é—´ï¼š & \today \\ + \end{tabularx} + + \vfill + {\small æœ¬é¡¹ç›®ä¹¦ä¸ºé€’äº¤ç‰ˆè‰æ¡ˆï¼Œæ–‡ä¸­å¸¦â€œå ä½â€æˆ–“示例â€çš„图表数æ®éœ€åœ¨æ­£å¼æäº¤å‰æ›¿æ¢ä¸ºçœŸå®žææ–™ã€‚} +\end{titlepage} + +\frontmatter + +\chapter*{摘\quad è¦} +\addcontentsline{toc}{chapter}{摘è¦} + +针对电信网络诈骗案件å—害人资金核查过程中截图数é‡å¤§ã€å¹³å°æ¥æºæ‚ã€é‡å¤ç»Ÿè®¡é£Žé™©é«˜ã€äººå·¥æ•´ç†è´Ÿæ‹…é‡ç­‰çªå‡ºé—®é¢˜ï¼Œæœ¬æ–‡æå‡ºå¹¶å®žçŽ°â€œæ™ºæžå诈â€å¤šæ™ºèƒ½ä½“ååŒè®¤å®šç³»ç»Ÿã€‚系统é¢å‘基层派出所民警真实办案场景,以案件为组织å•å…ƒï¼Œå¯¹å¾®ä¿¡ã€æ”¯ä»˜å®ã€é“¶è¡ŒAPPã€æ•°å­—钱包等多æºè´¦å•截图进行自动识别ã€å­—段抽å–ã€è·¨å¹³å°å½’å¹¶ã€èµ„金路径分æžã€è¢«éª—金é¢åˆ†å±‚è®¤å®šä¸Žè¯æ®åŒ–è¾“å‡ºï¼Œå¹¶é€šè¿‡äººå·¥å¤æ ¸æœºåˆ¶ä¿éšœç»“æžœå¯è§£é‡Šã€å¯è¿½æº¯ã€å¯ç¡®è®¤ã€‚ + +本项目采用“视觉识别 + è§„åˆ™çº¦æŸ + æ™ºèƒ½æŽ¨ç† + 人机ååŒâ€çš„æŠ€æœ¯è·¯çº¿ï¼Œé‡ç‚¹è§£å†³ä¸‰ç±»æ ¸å¿ƒéš¾é¢˜ï¼šä¸€æ˜¯ä¸åŒAPP与ä¸åŒé¡µé¢ä¹‹é—´çš„æˆªå›¾è¯æ®ç»Ÿä¸€å»ºæ¨¡ï¼›äºŒæ˜¯åŒä¸€äº¤æ˜“在多截图ã€å¤šå¹³å°ä¸­çš„é‡å¤å±•示识别;三是本人账户中转ã€é€€æ¬¾è¿”还ã€å¾…æ ¸å®žäº¤æ˜“ç­‰å¤æ‚情形下的被骗金é¢è®¤å®šã€‚ç³»ç»Ÿè¿›ä¸€æ­¥å¼•å…¥è¯æ®è¯†åˆ«åŽçš„关键è¯å›žæº¯æœºåˆ¶ï¼Œåˆ©ç”¨åŽç»­é«˜ç½®ä¿¡è¯†åˆ«ç»“æžœå呿 ¡æ­£è´¦å•页é¢ç±»åž‹åˆ¤æ–­ï¼Œå½¢æˆå…·å¤‡è‡ªæˆ‘完善特å¾çš„è½»é‡çº§ä¼˜åŒ–闭环。 + +ä»Žç³»ç»Ÿå®žçŽ°çœ‹ï¼Œé¡¹ç›®å·²å½¢æˆæ¡ˆä»¶ç®¡ç†ã€æˆªå›¾ä¸Šä¼ ã€OCR识别ã€äº¤æ˜“å½’å¹¶ã€èµ„金分æžã€è®¤å®šå¤æ ¸ã€é—®è¯¢å»ºè®®å’ŒæŠ¥å‘Šå¯¼å‡ºç­‰å®Œæ•´åŠžæ¡ˆé“¾è·¯ï¼›ä»Žåº”ç”¨ä»·å€¼çœ‹ï¼Œé¡¹ç›®èƒ½å¤Ÿæ˜¾è‘—æå‡å—害人笔录å‰äº‹å®žæ¢³ç†æ•ˆçއã€é™ä½Žé‡‘é¢è¯¯ç®—与æ¼ç®—风险,并为案件æµè½¬æä¾›å¯å¤ç”¨çš„ç»“æž„åŒ–è¯æ®åº•ç¨¿ã€‚è¯¥ç³»ç»Ÿå…¼å…·å®žæˆ˜ä»·å€¼ã€æŽ¨å¹¿ä»·å€¼å’Œç¤ºèŒƒæ„义,适åˆä½œä¸ºåŸºå±‚警务智能体应用的典型样æ¿ã€‚ + +\vspace{0.6cm} +\noindent\textbf{关键è¯ï¼š}电信网络诈骗;资金核查;多智能体ååŒï¼›æˆªå›¾è¯æ®è§£æžï¼›è¢«éª—金é¢è®¤å®šï¼›äººæœºååŒ + +\tableofcontents +\clearpage + +\mainmatter + +\input{chapters/01-overview} +\input{chapters/02-demand} +\input{chapters/03-solution} +\input{chapters/04-mechanism} +\input{chapters/05-implementation} +\input{chapters/06-innovation} +\input{chapters/07-application} +\input{chapters/08-conclusion} +\appendix +\input{chapters/09-appendix} + +\end{document} diff --git a/docs/competition-book/main.toc b/docs/competition-book/main.toc new file mode 100644 index 0000000..8d47883 --- /dev/null +++ b/docs/competition-book/main.toc @@ -0,0 +1,64 @@ +\contentsline {chapter}{摘è¦}{i}{chapter*.1}% +\contentsline {chapter}{\numberline {第一章\hspace {.3em}}项目背景与建设æ„义}{1}{chapter.1}% +\contentsline {section}{\numberline {1.1}建设背景}{1}{section.1.1}% +\contentsline {section}{\numberline {1.2}建设æ„义}{1}{section.1.2}% +\contentsline {subsection}{\numberline {1.2.1}对一线办案的直接支撑}{1}{subsection.1.2.1}% +\contentsline {subsection}{\numberline {1.2.2}å¯¹è¯æ®ç»„织方å¼çš„å‡çº§}{1}{subsection.1.2.2}% +\contentsline {subsection}{\numberline {1.2.3}对警务智能体应用范å¼çš„示范}{1}{subsection.1.2.3}% +\contentsline {section}{\numberline {1.3}项目定ä½}{1}{section.1.3}% +\contentsline {section}{\numberline {1.4}建设目标}{2}{section.1.4}% +\contentsline {chapter}{\numberline {第二章\hspace {.3em}}场景痛点与需求分æž}{2}{chapter.2}% +\contentsline {section}{\numberline {2.1}业务场景还原}{2}{section.2.1}% +\contentsline {section}{\numberline {2.2}çŽ°æœ‰å¤„ç†æ–¹å¼å­˜åœ¨çš„问题}{3}{section.2.2}% +\contentsline {subsection}{\numberline {2.2.1}é—®é¢˜ä¸€ï¼šæˆªå›¾ææ–™åˆ†æ•£ï¼Œäººå·¥æ•´ç†è€—æ—¶é•¿}{3}{subsection.2.2.1}% +\contentsline {subsection}{\numberline {2.2.2}问题二:åŒä¸€äº¤æ˜“多次展示,é‡å¤è®¡ç®—风险高}{3}{subsection.2.2.2}% +\contentsline {subsection}{\numberline {2.2.3}问题三:中转与对外支付混æ‚,认定难度大}{3}{subsection.2.2.3}% +\contentsline {subsection}{\numberline {2.2.4}问题四:结果ä¸å¯å¤ç”¨ï¼ŒåŽç»­ä»éœ€é‡å¤æ•´ç†}{3}{subsection.2.2.4}% +\contentsline {section}{\numberline {2.3}核心需求分æž}{3}{section.2.3}% +\contentsline {subsection}{\numberline {2.3.1}需求一:统一识别与结构化抽å–}{3}{subsection.2.3.1}% +\contentsline {subsection}{\numberline {2.3.2}需求二:跨平å°å½’并与资金链æ¢å¤}{4}{subsection.2.3.2}% +\contentsline {subsection}{\numberline {2.3.3}需求三:é¢å‘办案的认定结果输出}{4}{subsection.2.3.3}% +\contentsline {subsection}{\numberline {2.3.4}需求四:形æˆå¯å¤æ ¸ã€å¯æ±‡æŠ¥ã€å¯å¯¼å‡ºçš„æˆæžœ}{4}{subsection.2.3.4}% +\contentsline {section}{\numberline {2.4}项目书写作边界说明}{4}{section.2.4}% +\contentsline {chapter}{\numberline {第三章\hspace {.3em}}总体方案与技术路线}{4}{chapter.3}% +\contentsline {section}{\numberline {3.1}总体设计原则}{4}{section.3.1}% +\contentsline {section}{\numberline {3.2}总体架构}{4}{section.3.2}% +\contentsline {section}{\numberline {3.3}多智能体ååŒåˆ†å·¥}{5}{section.3.3}% +\contentsline {section}{\numberline {3.4}技术路线}{6}{section.3.4}% +\contentsline {section}{\numberline {3.5}æµç¨‹é—­çޝ}{6}{section.3.5}% +\contentsline {chapter}{\numberline {第四章\hspace {.3em}}核心能力与关键机制}{6}{chapter.4}% +\contentsline {section}{\numberline {4.1}多APP截图识别与字段抽å–}{6}{section.4.1}% +\contentsline {section}{\numberline {4.2}关键è¯å›žæº¯é©±åŠ¨çš„è‡ªæˆ‘å®Œå–„æœºåˆ¶}{7}{section.4.2}% +\contentsline {section}{\numberline {4.3}跨平å°äº¤æ˜“归并与去é‡}{8}{section.4.3}% +\contentsline {section}{\numberline {4.4}本人账户中转识别}{8}{section.4.4}% +\contentsline {section}{\numberline {4.5}被骗金é¢åˆ†å±‚认定}{9}{section.4.5}% +\contentsline {section}{\numberline {4.6}笔录辅助生æˆã€é—®è¯¢å»ºè®®ä¸Žè¯æ®åŒ–输出}{9}{section.4.6}% +\contentsline {chapter}{\numberline {第五章\hspace {.3em}}系统实现与界é¢å±•示}{10}{chapter.5}% +\contentsline {section}{\numberline {5.1}系统实现概况}{10}{section.5.1}% +\contentsline {section}{\numberline {5.2}å‰ç«¯åŠŸèƒ½é¡µé¢}{10}{section.5.2}% +\contentsline {section}{\numberline {5.3}åŽç«¯æŽ¥å£ä¸ŽæœåŠ¡å®žçŽ°}{12}{section.5.3}% +\contentsline {section}{\numberline {5.4}处ç†é“¾è·¯å®žçް}{12}{section.5.4}% +\contentsline {section}{\numberline {5.5}部署与演示方å¼}{13}{section.5.5}% +\contentsline {chapter}{\numberline {第六章\hspace {.3em}}创新点与方案优势}{13}{chapter.6}% +\contentsline {section}{\numberline {6.1}创新点æç‚¼}{13}{section.6.1}% +\contentsline {subsection}{\numberline {6.1.1}场景创新}{13}{subsection.6.1.1}% +\contentsline {subsection}{\numberline {6.1.2}方法创新}{13}{subsection.6.1.2}% +\contentsline {subsection}{\numberline {6.1.3}机制创新}{13}{subsection.6.1.3}% +\contentsline {subsection}{\numberline {6.1.4}输出创新}{13}{subsection.6.1.4}% +\contentsline {section}{\numberline {6.2}与传统方å¼å¯¹æ¯”优势}{14}{section.6.2}% +\contentsline {section}{\numberline {6.3}与å•点OCR工具对比优势}{14}{section.6.3}% +\contentsline {section}{\numberline {6.4}方案优势总结}{14}{section.6.4}% +\contentsline {chapter}{\numberline {第七章\hspace {.3em}}åº”ç”¨æˆæ•ˆä¸ŽæŽ¨å¹¿å‰æ™¯}{15}{chapter.7}% +\contentsline {section}{\numberline {7.1}åº”ç”¨æˆæ•ˆè¯´æ˜Ž}{15}{section.7.1}% +\contentsline {subsection}{\numberline {7.1.1}效率æå‡}{15}{subsection.7.1.1}% +\contentsline {subsection}{\numberline {7.1.2}è´¨é‡æå‡}{15}{subsection.7.1.2}% +\contentsline {subsection}{\numberline {7.1.3}å¤ç”¨æå‡}{15}{subsection.7.1.3}% +\contentsline {section}{\numberline {7.2}答辩展示建议}{15}{section.7.2}% +\contentsline {section}{\numberline {7.3}æŽ¨å¹¿å‰æ™¯}{16}{section.7.3}% +\contentsline {section}{\numberline {7.4}安全与åˆè§„考虑}{16}{section.7.4}% +\contentsline {chapter}{\numberline {第八章\hspace {.3em}}结论}{16}{chapter.8}% +\contentsline {section}{\numberline {8.1}åŽç»­å®Œå–„建议}{17}{section.8.1}% +\contentsline {chapter}{\numberline {附录 A\hspace {.3em}}附录}{17}{appendix.A}% +\contentsline {section}{\numberline {A.1}建议替æ¢çš„图片清å•}{17}{section.A.1}% +\contentsline {section}{\numberline {A.2}建议替æ¢çš„æ•°æ®é¡¹}{17}{section.A.2}% +\contentsline {section}{\numberline {A.3}编译说明}{18}{section.A.3}% diff --git a/docs/competition-book/preamble.tex b/docs/competition-book/preamble.tex new file mode 100644 index 0000000..31e7191 --- /dev/null +++ b/docs/competition-book/preamble.tex @@ -0,0 +1,86 @@ +\usepackage[a4paper,margin=2.05cm]{geometry} +\usepackage{graphicx} +\usepackage{array} +\usepackage{booktabs} +\usepackage{longtable} +\usepackage{tabularx} +\usepackage{multirow} +\usepackage{float} +\usepackage{enumitem} +\usepackage{hyperref} +\usepackage{xcolor} +\usepackage{fancyhdr} +\usepackage{titlesec} +\usepackage{caption} +\usepackage{setspace} +\usepackage{amsmath} + +\setstretch{1.12} +\setlength{\parskip}{0.15em} +\setlength{\headheight}{15pt} +\setlist[itemize]{leftmargin=2em,itemsep=0.25em,topsep=0.3em} +\setlist[enumerate]{leftmargin=2.2em,itemsep=0.25em,topsep=0.3em} +\raggedbottom + +\hypersetup{ + colorlinks=true, + linkcolor=black, + urlcolor=blue!60!black, + citecolor=black, + pdftitle={智æžå诈项目书}, + pdfauthor={Cursor} +} + +\pagestyle{fancy} +\fancyhf{} +\fancyhead[L]{智æžå诈项目书} +\fancyhead[R]{\leftmark} +\fancyfoot[C]{\thepage} + +\makeatletter +\renewcommand\chapter{% + \par + \thispagestyle{plain}% + \global\@topnum\z@ + \@afterindentfalse + \secdef\@chapter\@schapter} +\makeatother +\titleformat{\chapter}{\normalfont\zihao{3}\bfseries}{第\thechapter ç« }{1em}{} +\titleformat{\section}{\normalfont\zihao{4}\bfseries}{\thesection}{0.8em}{} +\titleformat{\subsection}{\normalfont\bfseries}{\thesubsection}{0.8em}{} +\titlespacing*{\chapter}{0pt}{0.5em}{0.8em} +\titlespacing*{\section}{0pt}{0.8em}{0.5em} +\titlespacing*{\subsection}{0pt}{0.6em}{0.4em} + +\captionsetup{ + font=small, + labelfont=bf +} + +\newcolumntype{Y}{>{\raggedright\arraybackslash}X} + +\newcommand{\placeholderfigure}[2][0.13\textheight]{ + \begin{center} + \setlength{\fboxsep}{0pt} + \fbox{ + \parbox[c][#1][c]{0.9\textwidth}{ + \centering + \vspace*{0.2em} + {\bfseries 图片å ä½}\\[0.5em] + #2 + } + } + \end{center} +} + +\newcommand{\placeholderwidefigure}[2][0.16\textheight]{ + \begin{figure}[H] + \centering + \placeholderfigure[#1]{#2} + \end{figure} +} + +\newcommand{\note}[1]{ + \vspace{0.3em} + \noindent\textcolor{blue!60!black}{\textbf{说明:}#1} +} diff --git a/docs/competition-plan.md b/docs/competition-plan.md new file mode 100644 index 0000000..d29182e --- /dev/null +++ b/docs/competition-plan.md @@ -0,0 +1,416 @@ +# 全国“智慧+警务â€AI智能体大赛å‚赛方案 + +## 一ã€é¡¹ç›®åç§° + +**智æžå诈:é¢å‘电信网络诈骗案件å—害人资金核查的多智能体ååŒè®¤å®šç³»ç»Ÿ** + +一å¥è¯æ¦‚括: +é¢å‘基层派出所电信网络诈骗案件å–è¯çŽ¯èŠ‚ï¼Œå›´ç»•â€œå¤š APP è´¦å•æˆªå›¾è§£æžã€è·¨å¹³å°äº¤æ˜“å½’å¹¶ã€èµ„金路径分æžã€è¢«éª—金é¢è®¤å®šã€è¯æ®åŒ–è¾“å‡ºâ€æž„建多智能体ååŒç³»ç»Ÿï¼Œæ˜¾è‘—æå‡å—害人笔录制作ã€è¢«éª—èµ„é‡‘æ ¸ç®—å’Œè¯æ®æ•´ç†æ•ˆçŽ‡ä¸Žå‡†ç¡®çŽ‡ã€‚ + +## 二ã€é¡¹ç›®èƒŒæ™¯ä¸Žè­¦åŠ¡ç—›ç‚¹ + +在电信网络诈骗案件办ç†ä¸­ï¼Œå—å®³äººå¾€å¾€åŒæ—¶æä¾›å¾®ä¿¡ã€æ”¯ä»˜å®ã€æ‰‹æœºé“¶è¡Œã€æ•°å­—钱包等多个平å°çš„大釿ˆªå›¾ã€‚åŸºå±‚æ°‘è­¦åœ¨åˆ¶ä½œç¬”å½•å’Œæ ¸æŸ¥è¢«éª—é‡‘é¢æ—¶ï¼Œé€šå¸¸é¢ä¸´ä»¥ä¸‹é—®é¢˜ï¼š + +1. 截图数é‡å¤§ã€æ¥æºæ‚,人工é€å¼ æŸ¥çœ‹è€—时长。 +2. åŒä¸€ç¬”资金å¯èƒ½åœ¨ä¸åŒ APPã€ä¸åŒé¡µé¢ã€ä¸åŒæ—¶é—´æ®µé‡å¤å‡ºçŽ°ï¼Œäººå·¥æžæ˜“é‡å¤è®¡ç®—或æ¼ç®—。 +3. 存在本人账户中转ã€é€€æ¬¾è¿”还ã€é›¶é’±å……值ã€é“¶è¡Œå¡è½¬å…¥è½¬å‡ºç­‰å¤æ‚情形,仅凭å•张截图难以准确认定是å¦å±žäºŽè¢«éª—金é¢ã€‚ +4. å—å®³äººé™ˆè¿°ä¸Žæˆªå›¾è¯æ®ä¹‹é—´å¾€å¾€ç¼ºä¹ç»“构化对应关系,åŽç»­å¤æ ¸ã€æ±‡æŠ¥ã€ç§»é€ã€å®¡æŸ¥èµ·è¯‰éƒ½éœ€è¦é‡å¤æ•´ç†ã€‚ +5. 民警在高强度办案状æ€ä¸‹ï¼Œæœ€ç¼ºçš„䏿˜¯â€œçœ‹å›¾èƒ½åŠ›â€ï¼Œè€Œæ˜¯â€œè‡ªåЍ归集ã€è‡ªåЍ关è”ã€è‡ªåŠ¨è§£é‡Šã€è‡ªåŠ¨è¾“å‡ºâ€çš„æ•´å¥—辅助能力。 + +因此,该场景真正需è¦çš„并䏿˜¯å•点 OCR å·¥å…·ï¼Œä¹Ÿä¸æ˜¯ç®€å•的大模型问答,而是一套能够围绕办案目标æŒç»­æ‰§è¡Œã€è°ƒç”¨å·¥å…·ã€è·¨æ­¥æŽ¨ç†ã€è¾“出å¯å¤æ ¸è¯æ®é“¾çš„警务智能体系统。 + +## 三ã€ä»Žä¸“家评审角度看,本项目为什么是真正的“AI 智能体†+ +评审专家通常ä¸ä¼šåªçœ‹â€œæ˜¯å¦ç”¨äº†å¤§æ¨¡åž‹â€ï¼Œè€Œä¼šé‡ç‚¹çœ‹é¡¹ç›®æ˜¯å¦å…·å¤‡æ™ºèƒ½ä½“çš„æ ¸å¿ƒå±žæ€§ã€‚æœ¬é¡¹ç›®åœ¨æœ¬è´¨ä¸Šç¬¦åˆæ™ºèƒ½ä½“的关键特å¾ï¼š + +### 1. 目标驱动,而éžå•步问答 + +æœ¬é¡¹ç›®çš„ä»»åŠ¡ç›®æ ‡ä¸æ˜¯â€œè¯†åˆ«ä¸€å¼ å›¾ç‰‡æ˜¯ä»€ä¹ˆâ€ï¼Œè€Œæ˜¯å›´ç»•一个明确警务目标æŒç»­æŽ¨è¿›ï¼š + +`ä»Žå¤šæºæˆªå›¾ä¸­ï¼Œè¿˜åŽŸäº¤æ˜“äº‹å®žï¼Œè¯†åˆ«æœ‰æ•ˆè¯æ®ï¼Œè®¤å®šè¢«éª—金é¢ï¼Œå¹¶ç”ŸæˆåŠžæ¡ˆå¯ç”¨ç»“果。` + +ç³»ç»Ÿä¼šå›´ç»•è¯¥ç›®æ ‡è‡ªåŠ¨å®Œæˆæˆªå›¾ç†è§£ã€å­—段抽å–ã€åŽ»é‡å½’å¹¶ã€è·¯å¾„分æžã€è®¤å®šåˆ†å±‚ã€äººå·¥å¤æ ¸æç¤ºã€æ–‡ä¹¦è¾“å‡ºç­‰è¿žç»­åŠ¨ä½œï¼Œä½“çŽ°å‡ºå®Œæ•´çš„ç›®æ ‡å¯¼å‘æ‰§è¡Œèƒ½åŠ›ã€‚ + +### 2. å…·å¤‡æ„ŸçŸ¥ã€æŽ¨ç†ã€è¡ŒåŠ¨é—­çŽ¯ + +智能体的核心ä¸åªæ˜¯â€œçœ‹è§â€ï¼Œæ›´æ˜¯â€œç†è§£åŽé‡‡å–行动â€ã€‚本项目形æˆäº†æ¸…晰闭环: + +- 感知:识别ä¸åŒ APP 截图页é¢ç±»åž‹ã€é‡‘é¢ã€æ—¶é—´ã€å¯¹æ‰‹æ–¹ã€è®¢å•å·ã€è´¦æˆ·å°¾å·ç­‰è¦ç´ ã€‚ +- 推ç†ï¼šåˆ¤æ–­äº¤æ˜“之间是å¦é‡å¤ã€æ˜¯å¦å±žäºŽæœ¬äººè´¦æˆ·ä¸­è½¬ã€æ˜¯å¦åº”计入被骗金é¢ã€è®¤å®šç½®ä¿¡åº¦å¦‚何。 +- 行动:自动归并交易ã€ç”Ÿæˆèµ„金æµå›¾ã€ç»™å‡ºè®¤å®šç†ç”±ã€æç¤ºéœ€è¡¥å……询问的问题ã€è¾“å‡ºè¯æ®åŒ–报告。 + +### 3. 具备多智能体ååŒï¼Œè€Œéžå•æ¨¡åž‹ç¡¬åš + +å•个大模型擅长通用ç†è§£ï¼Œä½†è­¦åŠ¡å®žæˆ˜éœ€è¦åˆ†å·¥ã€çº¦æŸå’Œå¯æŽ§æ€§ã€‚本项目将任务拆分为多个能力å•å…ƒååŒå®Œæˆï¼Œé¿å…“一次æç¤ºè¯åŒ…打天下â€å¯¼è‡´çš„ä¸ç¨³å®šä¸Žä¸å¯è§£é‡Šã€‚ + +### 4. 具备工具调用与外部系统å作能力 + +项目并éžåœç•™åœ¨å¯¹è¯å±‚,而是实际调用 OCRã€å¤šæ¨¡æ€è¯†åˆ«ã€è§„åˆ™å¼•æ“Žã€æ•°æ®åº“ã€æ¡ˆä»¶ç®¡ç†ã€æŠ¥å‘Šå¯¼å‡ºç­‰å·¥å…·ä¸Žç³»ç»Ÿï¼Œå®žçŽ°å¯¹åŠžæ¡ˆæµç¨‹çš„真实嵌入。 + +### 5. 具备记忆与上下文æŒç»­åˆ©ç”¨èƒ½åŠ› + +系统以“案件â€ä¸ºç»„织å•元,将截图ã€äº¤æ˜“记录ã€è®¤å®šç»“æžœã€äººå·¥å¤æ ¸çжæ€ã€æŠ¥å‘Šå¿«ç…§ç­‰ç»Ÿä¸€æ²‰æ·€ï¼Œæ”¯æŒå¤šè½®è¡¥å……ææ–™åŽçš„冿¬¡åˆ†æžä¸Žç»“æžœæ›´æ–°ï¼Œè¿™ç§æŒç»­ä¸Šä¸‹æ–‡è®°å¿†æ­£æ˜¯æ™ºèƒ½ä½“区别于一次性脚本的é‡è¦ç‰¹å¾ã€‚ + +### 6. 具备基于结果å馈的自我完善能力 + +智能体ä¸ä»…能完æˆè¯†åˆ«å’Œè®¤å®šï¼Œè¿˜èƒ½åŸºäºŽåŽç»­è¯æ®ç†è§£ç»“æžœåå‘修正å‰åºåˆ¤æ–­ã€‚ä¾‹å¦‚ï¼Œåœ¨å®Œæˆæˆªå›¾è¯æ®è¯†åˆ«åŽï¼Œç³»ç»Ÿä¼šå¯¹äº¤æ˜“页é¢ä¸­å‡ºçŽ°çš„é«˜ä»·å€¼å…³é”®è¯è¿›è¡Œå›žæº¯åˆ†æžï¼Œå¦‚“收付款â€â€œè½¬è´¦æˆåŠŸâ€â€œè´¦å•详情â€â€œå•†æˆ·å•å·â€â€œé€€æ¬¾â€â€œå……值â€â€œé›¶é’±â€â€œé“¶è¡Œå¡â€ç­‰ï¼Œå†ç»“åˆæœ€ç»ˆè¯†åˆ«å‡ºçš„交易类型ã€å­—段结构和认定结果,对账å•页é¢ç±»åž‹åˆ¤æ–­è¿›è¡ŒäºŒæ¬¡æ ¡æ­£ã€‚ + +è¿™ç§â€œå…ˆè¯†åˆ«ã€å†éªŒè¯ã€å†å›žæº¯ä¼˜åŒ–â€çš„æœºåˆ¶ï¼Œæœ¬è´¨ä¸Šæ˜¯ä¸€ç§è½»é‡çº§è‡ªæˆ‘完善闭环。它使系统ä¸å†åœç•™äºŽå•次 OCR 输出,而是能够利用åŽç»­è¯æ®ç†è§£ç»“æžœæŒç»­æå‡å‰ç«¯è´¦å•类型识别准确率,尤其适用于截图质é‡ä¸é«˜ã€é¡µé¢è£åˆ‡ä¸å®Œæ•´ã€ä¸åŒå¹³å° UI 相似导致的误判场景。 + +### 7. 具备人机ååŒä¸Žå®‰å…¨å…œåº•机制 + +警务场景ä¸èƒ½æŽ¥å—“黑盒自动决定â€ã€‚æœ¬é¡¹ç›®ä¸æ˜¯æ›¿ä»£æ°‘警,而是通过高ã€ä¸­ã€ä½Žç½®ä¿¡åˆ†å±‚ä¸Žäººå·¥å¤æ ¸æœºåˆ¶ï¼Œå®žçŽ°â€œæœºå™¨å…ˆå½’é›†åˆ¤æ–­ï¼Œæ°‘è­¦å†ç¡®è®¤æŠŠå…³â€çš„ååŒæ¨¡å¼ï¼Œå…¼é¡¾æ•ˆçŽ‡ä¸Žæ³•å¾‹é£Žé™©æŽ§åˆ¶ã€‚ + +## å››ã€é¡¹ç›®å®šä½ + +本项目的定ä½ä¸æ˜¯é€šç”¨åŠžå…¬åŠ©æ‰‹ï¼Œä¸æ˜¯æ³›é‡‘èžé£ŽæŽ§å·¥å…·ï¼Œä¹Ÿä¸æ˜¯ç®€å• OCR å¹³å°ï¼Œè€Œæ˜¯ï¼š + +**é¢å‘电信网络诈骗案件å—害人资金核查场景的警务专用认定型智能体。** + +它直接æœåŠ¡äºŽåŸºå±‚æœ€åˆšæ€§çš„å‡ ä¸ªçŽ¯èŠ‚ï¼š + +- å—害人笔录制作å‰çš„äº‹å®žæ¢³ç† +- è¢«éª—é‡‘é¢æ ¸ç®—ä¸Žå¤æ ¸ +- äº¤æ˜“è·¯å¾„åˆ†æž +- è¯æ®æ•´ç†ä¸ŽæŠ¥å‘Šè¾“出 +- åŽç»­æµè½¬ä¸­çš„结果å¤ç”¨ + +è¿™ç§å®šä½å†³å®šäº†é¡¹ç›®æœ€é‡è¦çš„评价维度应当是: + +- 是å¦çœŸæ­£è§£å†³å®žæˆ˜é—®é¢˜ +- æ˜¯å¦æ˜¾è‘—é™ä½Žäººå·¥è´Ÿæ‹… +- 是å¦å¯å¤æ ¸ã€å¯è¿½æº¯ã€å¯è§£é‡Š +- 是å¦èƒ½åµŒå…¥çŽ°æœ‰åŠžæ¡ˆæµç¨‹ +- 是å¦å…·å¤‡å¤åˆ¶æŽ¨å¹¿ä»·å€¼ + +## äº”ã€æ€»ä½“技术方案 + +### 1. 总体架构æ€è·¯ + +系统采用“多智能体ååŒ + è§„åˆ™å¼•æ“Žçº¦æŸ + äººå·¥å¤æ ¸é—­çޝâ€çš„æ€»ä½“架构。 + +#### 智能体分工设计 + +| 智能体/æ¨¡å— | 主è¦èŒè´£ | 输出结果 | +|------|------|------| +| 案件å—ç†æ™ºèƒ½ä½“ | 接收案件基础信æ¯ã€å—å®³äººé™ˆè¿°ã€æˆªå›¾ææ–™ï¼Œå»ºç«‹æ¡ˆä»¶ä¸Šä¸‹æ–‡ | 案件任务上下文 | +| æˆªå›¾è§£æžæ™ºèƒ½ä½“ | è¯†åˆ«æˆªå›¾æ¥æº APPã€é¡µé¢ç±»åž‹ã€å…³é”®å­—段 | 结构化交易候选记录 | +| 跨平å°å…³è”智能体 | 按订å•å·ã€é‡‘é¢ã€æ—¶é—´çª—å£ã€è´¦æˆ·å°¾å·ç­‰è¿›è¡Œäº¤æ˜“å½’å¹¶ä¸ŽåŽ»é‡ | 统一交易视图 | +| èµ„é‡‘è·¯å¾„åˆ†æžæ™ºèƒ½ä½“ | è¯†åˆ«æœ¬äººè´¦æˆ·ä¸­è½¬ã€æ”¶æ¬¾æ–¹èšåˆã€äº¤æ˜“æ–¹å‘与æµè½¬è·¯å¾„ | 资金æµå›¾ä¸Žè·¯å¾„é“¾æ¡ | +| 金é¢è®¤å®šæ™ºèƒ½ä½“ | 便®è§„则与上下文判断是å¦è®¡å…¥è¢«éª—金é¢ï¼Œç»™å‡ºç½®ä¿¡åº¦ä¸Žç†ç”± | è®¤å®šæ¸…å• | +| 笔录辅助智能体 | 基于ä¸ç¡®å®šé¡¹ä¸Žç¼ºå¤±ç‚¹ï¼Œè‡ªåŠ¨ç”Ÿæˆé—®è¯¢å»ºè®® | è¿½é—®é—®é¢˜æ¸…å• | +| è¯æ®è¾“出智能体 | è¾“å‡ºè¡¨æ ¼ã€æŠ¥å‘Šã€æ–‡ä¹¦åŒ–摘è¦ã€è¯æ®ç´¢å¼• | Excel / PDF / Word 报告 | +| äººå·¥å¤æ ¸ä»£ç† | 对中低置信项进行确认ã€ä¿®æ”¹ã€ç•™ç—• | 最终认定结果 | + +### 2. æ ¸å¿ƒå¤„ç†æµç¨‹ + +1. 民警创建案件,批é‡ä¸Šä¼ å¤šå¹³å°è´¦å•截图。 +2. æˆªå›¾è§£æžæ™ºèƒ½ä½“自动识别截图类型并æå–交易è¦ç´ ã€‚ +3. 跨平å°å…³è”智能体对多截图中的åŒç¬”交易进行去é‡ä¸Žå½’并。 +4. èµ„é‡‘è·¯å¾„åˆ†æžæ™ºèƒ½ä½“识别本人账户中转关系,é¿å…é‡å¤è®¡å…¥è¢«éª—金é¢ã€‚ +5. 金é¢è®¤å®šæ™ºèƒ½ä½“对æ¯ç¬”交易给出“计入/ä¸è®¡å…¥/待夿 ¸â€åˆ¤æ–­ï¼Œå¹¶é™„带认定ç†ç”±ä¸Žç½®ä¿¡ç­‰çº§ã€‚ +6. 笔录辅助智能体自动生æˆé’ˆå¯¹æ€§é—®è¯¢æç¤ºï¼ŒæŒ‡å¯¼æ°‘警补é½è¯æ®é“¾ã€‚ +7. è¯æ®è¾“å‡ºæ™ºèƒ½ä½“è‡ªåŠ¨å½¢æˆæ±‡æ€»æ¸…å•ã€è·¯å¾„图ã€è®¤å®šæŠ¥å‘Šå’Œå®¡è®¡å¿«ç…§ã€‚ +8. 民警完æˆå¤æ ¸ç¡®è®¤åŽï¼Œå½¢æˆå¯ç”¨äºŽåŠžæ¡ˆæµè½¬çš„æœ€ç»ˆç»“果。 + +### 3. 与现有系统能力的对应关系 + +从当å‰é¡¹ç›®å®žçŽ°çœ‹ï¼Œç³»ç»Ÿå·²å…·å¤‡è¾ƒå®Œæ•´çš„è½åœ°é“¾è·¯ï¼ŒåŒ…括: + +- æ¡ˆä»¶ç®¡ç† +- 多 APP 截图上传与识别 +- OCR/å¤šæ¨¡æ€æŠ½å– +- äº¤æ˜“å­—æ®µç»“æž„åŒ–è§£æž +- 交易去é‡ä¸ŽåŒ¹é… +- 资金æµå›¾ç”Ÿæˆ +- 认定ç†ç”±ç”Ÿæˆ +- ç¬”å½•é—®è¯¢å»ºè®®ç”Ÿæˆ +- æŠ¥å‘Šå¯¼å‡ºä¸Žç»“æžœå¤æ ¸ + +è¿™æ„å‘³ç€æœ¬é¡¹ç›®ä¸æ˜¯â€œæ¦‚念方案â€ï¼Œè€Œæ˜¯å·²ç»å½¢æˆå¯æ¼”示ã€å¯è¿è¡Œã€å¯è¿­ä»£çš„实战型原型系统。 + +## å…­ã€å…³é”®èƒ½åŠ›è®¾è®¡ + +### 1. 多 APP 截图自动识别 + +é’ˆå¯¹å¾®ä¿¡ã€æ”¯ä»˜å®ã€æ‰‹æœºé“¶è¡Œã€æ•°å­—钱包等ä¸åŒæ¥æºæˆªå›¾ï¼Œç³»ç»Ÿè‡ªåŠ¨è¯†åˆ«é¡µé¢ç±»åž‹å’Œå…³é”®å­—段,é‡ç‚¹æŠ½å–: + +- 交易时间 +- äº¤æ˜“é‡‘é¢ +- æ”¶ä»˜æ¬¾æ–¹å‘ +- å¯¹æ‰‹æ–¹å§“åæˆ–è´¦å· +- æœ¬äººè´¦æˆ·å°¾å· +- 订å•å· +- å¤‡æ³¨ä¿¡æ¯ +- æˆªå›¾æ¥æºå¹³å° + +其价值ä¸åœ¨äºŽâ€œè¯†åˆ«å­—段本身â€ï¼Œè€Œåœ¨äºŽä¸ºåŽç»­è·¨å¹³å°å…³è”和金é¢è®¤å®šå¥ å®šç»Ÿä¸€æ•°æ®åº•座。 + +### 2. 关键è¯å›žæº¯é©±åŠ¨çš„ OCR 自我优化 + +本项目在截图识别阶段引入了结果å馈å¼ä¼˜åŒ–机制。系统并éžåœ¨ç¬¬ä¸€æ¬¡é¡µé¢åˆ†ç±»åŽå°±å›ºå®šç»“果,而是在完æˆè¯æ®è¯†åˆ«ã€äº¤æ˜“抽å–和部分认定åŽï¼Œå°†å·²è¯†åˆ«å‡ºçš„高置信字段与关键è¯é‡æ–°å›žæº¯åˆ°åŽŸå§‹æˆªå›¾ç±»åž‹åˆ¤æ–­ä¸­ï¼Œå¯¹é¡µé¢ç±»åˆ«è¿›è¡Œå†éªŒè¯å’Œå†ä¿®æ­£ã€‚ + +é‡ç‚¹å›žæº¯çš„ä¿¡æ¯åŒ…括: + +- 交易行为关键è¯ï¼Œå¦‚“转账â€â€œæ”¯ä»˜â€â€œæ”¶æ¬¾â€â€œå……值â€â€œé€€æ¬¾â€ +- 页é¢ç»“构关键è¯ï¼Œå¦‚“账å•详情â€â€œäº¤æ˜“记录â€â€œæ”¯ä»˜æˆåŠŸâ€â€œè½¬è´¦åˆ°è´¦â€ +- è¯æ®å­—段关键è¯ï¼Œå¦‚“订å•å·â€â€œå•†æˆ·å•å·â€â€œå¯¹æ–¹è´¦æˆ·â€â€œæ”¶æ¬¾æ–¹â€â€œå°¾å·â€ +- 认定结果关è”ä¿¡å·ï¼Œå¦‚â€œè¯¥é¡µé¢æœ€ç»ˆè¢«è¯†åˆ«ä¸ºå¯¹å¤–æ”¯ä»˜è¯æ®â€æˆ–â€œè¯¥é¡µé¢æ›´ç¬¦åˆæœ¬äººè´¦æˆ·ä¸­è½¬å‡­è¯â€ + +è¿™ç§æœºåˆ¶çš„优势在于: + +- å¯ä»¥ä¿®æ­£é¦–次 OCR 因截图模糊ã€è£åˆ‡ä¸å…¨ã€æ¨¡æ¿å·®å¼‚造æˆçš„页é¢ç±»åž‹è¯¯è¯†åˆ« +- å¯ä»¥åˆ©ç”¨åŽç»­è¯æ®é“¾ç»“æžœåå‘增强å‰åºè¯†åˆ«å‡†ç¡®çއ +- å¯ä»¥ä½¿ç³»ç»Ÿéšç€æ¡ˆä»¶å¤„ç†ä¸æ–­ç§¯ç´¯â€œé¡µé¢ç±»åž‹ - å…³é”®è¯ - 字段模å¼â€çš„ç»éªŒæ˜ å°„ + +从智能体视角看,这一机制体现了系统的自我完善能力,å³ä¸æ˜¯ä¸€æ¬¡è¯†åˆ«åŽé™æ€è¾“出,而是在任务执行过程中根æ®ä¸­é—´ç»“æžœæŒç»­è°ƒæ•´å‰é¢æ­¥éª¤çš„判断。 + +### 3. 跨平å°äº¤æ˜“å…³è”ä¸ŽåŽ»é‡ + +这是项目区别于普通 OCR 工具的核心能力之一。系统综åˆä»¥ä¸‹ç»´åº¦è¿›è¡ŒåŽ»é‡å’Œå½’并: + +- 订å•å·ä¸€è‡´ +- 金é¢ä¸€è‡´ +- æ—¶é—´çª—å£æŽ¥è¿‘ +- å¯¹æ‰‹æ–¹ç›¸åŒæˆ–高度相似 +- 本人账户尾å·ä¸€è‡´ +- æˆªå›¾æ¥æºä¸Šä¸‹æ–‡ä¸€è‡´ + +该能力å¯ä»¥æœ‰æ•ˆè§£å†³åŒä¸€ç¬”转账在支付æˆåŠŸé¡µã€è´¦å•详情页ã€é“¶è¡Œæµæ°´é¡µä¸­å¤šæ¬¡å‡ºçŽ°çš„é‡å¤ç»Ÿè®¡é—®é¢˜ã€‚ + +### 4. 本人账户中转识别 + +在实战中,å—害人常先从银行å¡å……值到微信零钱或支付å®ä½™é¢ï¼Œå†å¯¹å¤–转账;或者在多个本人账户之间中转。若ä¸è¯†åˆ«ä¸­è½¬å…³ç³»ï¼Œå°±ä¼šå¯¼è‡´è¢«éª—金é¢è¢«é‡å¤ç´¯è®¡ã€‚ + +本项目通过交易方å‘ã€æ—¶é—´å…³ç³»ã€è´¦æˆ·æ ‡è¯†ã€å¹³å°å…³ç³»ç­‰çº¿ç´¢è¯†åˆ«ä¸­è½¬è¡Œä¸ºï¼Œå°†â€œæœ¬äººè´¦æˆ·å†…部æµè½¬â€å’Œâ€œå¯¹å¤–实际被骗支付â€åŒºåˆ†å¼€æ¥ï¼Œè¿™æ˜¯åŠžæ¡ˆä»·å€¼æžé«˜çš„关键设计。 + +### 5. 被骗金é¢è®¤å®šä¸Žåˆ†å±‚置信 + +项目ä¸ç›´æŽ¥è¾“出一个“ç»å¯¹æ­£ç¡®â€çš„金é¢ï¼Œè€Œæ˜¯é‡‡ç”¨æ›´ç¬¦åˆå®žæˆ˜çš„è¯æ®å®¡æŸ¥é€»è¾‘: + +- é«˜ç½®ä¿¡ï¼šè¯æ®é“¾å®Œæ•´ã€å¯¹å¤–支付明确ã€é‡å¤æ€§ä½Žï¼Œå¯ä¼˜å…ˆè®¡å…¥ã€‚ +- ä¸­ç½®ä¿¡ï¼šå­˜åœ¨éƒ¨åˆ†è¯æ®ç¼ºå£æˆ–上下文ä¸å……分,建议民警补充问询åŽç¡®è®¤ã€‚ +- 低置信:疑似é‡å¤ã€é€€æ¬¾ã€å†…éƒ¨è½¬è´¦æˆ–è¯æ®ä¸è¶³ï¼Œæš‚ä¸è®¡å…¥ã€‚ + +è¿™ç§æœºåˆ¶ä½“现了智能体在警务场景中的专业性和审慎性,é¿å…“大模型看起æ¥å¾ˆèªæ˜Žï¼Œä½†ç»“论ä¸é€‚åˆåŠžæ¡ˆâ€çš„问题。 + +### 6. 认定ç†ç”±å¯è§£é‡ŠåŒ– + +æ¯ç¬”认定结果都ä¸åªæ˜¯ä¸€ä¸ªé‡‘颿•°å­—,还附带自然语言ç†ç”±ï¼Œä¾‹å¦‚: + +- 该笔为å—害人账户å‘外部收款方的实际转账,且无é‡å¤è®°å½•,建议计入被骗金é¢ã€‚ +- 该笔与å¦ä¸€æˆªå›¾ä¸­çš„订å•å·ä¸€è‡´ï¼Œç–‘ä¼¼åŒä¸€äº¤æ˜“çš„é‡å¤å±•示,ä¸é‡å¤è®¡å…¥ã€‚ +- 该笔表现为本人银行å¡å‘本人支付账户充值,属于中转资金,ä¸ç›´æŽ¥è®¡å…¥è¢«éª—金é¢ã€‚ + +这使结果具备å¯è§£é‡Šæ€§ã€å¯æ±‡æŠ¥æ€§å’Œå¯å¤æ ¸æ€§ã€‚ + +### 7. 笔录问询辅助 + +项目还能自动æå‡ºä¸‹ä¸€æ­¥é—®è¯¢é‡ç‚¹ï¼Œä¾‹å¦‚: + +- 是å¦è¿˜å­˜åœ¨æœªæä¾›æˆªå›¾çš„æ”¯ä»˜å¹³å°æˆ–银行账户? +- æŸå‡ ç¬”中置信交易的具体æ“作背景是什么? +- 是å¦å­˜åœ¨éƒ¨åˆ†è¿”还ã€é€€æ¬¾æˆ–追回? +- 是å¦è¿˜æœ‰ ATMã€æŸœå°æˆ–他人代转等转账方å¼ï¼Ÿ + +è¿™æ„味ç€ç³»ç»Ÿä¸ä»…帮助“算钱â€ï¼Œè¿˜å¸®åŠ©â€œè¡¥è¯æ®ã€è¡¥äº‹å®žã€è¡¥ç¬”录â€ã€‚ + +### 8. è¯æ®åŒ–输出 + +é¡¹ç›®æœ€ç»ˆè¾“å‡ºçš„ä¸æ˜¯ä¸€ä¸ªèŠå¤©ç­”案,而是一套办案å¯ç”¨æˆæžœï¼š + +- ç»“æž„åŒ–äº¤æ˜“æ¸…å• +- 被骗金é¢è®¤å®šæ˜Žç»† +- 资金æµè½¬å…³ç³»å›¾ +- è¯æ®ç´¢å¼• +- æ–‡ä¹¦åŒ–æ‘˜è¦ +- å®¡è®¡å¿«ç…§ä¸Žäººå·¥å¤æ ¸ç—•迹 + +è¿™éžå¸¸å¥‘åˆè­¦åŠ¡å·¥ä½œâ€œé‡ç»“æžœã€æ›´é‡ä¾æ®â€çš„å®žé™…è¦æ±‚。 + +## 七ã€é¡¹ç›®äº®ç‚¹æç‚¼ + +如果从比赛评审展示角度æç‚¼ï¼Œæœ¬é¡¹ç›®è‡³å°‘有以下亮点: + +### 亮点一:选题éžå¸¸â€œåŸºå±‚â€ã€éžå¸¸â€œåˆšéœ€â€ + +项目èšç„¦æ´¾å‡ºæ‰€æ°‘警最常è§ã€æœ€è€—æ—¶ã€æœ€å®¹æ˜“出错的诈骗资金核查环节,问题真实ã€é¢‘次高ã€ç—›ç‚¹å¼ºï¼Œå…·æœ‰æžå¼ºçš„实战导å‘。 + +### äº®ç‚¹äºŒï¼šä¸æ˜¯åšèŠå¤©æœºå™¨äººï¼Œè€Œæ˜¯åšâ€œåŠžæ¡ˆä»»åŠ¡åž‹æ™ºèƒ½ä½“â€ + +项目以案件处ç†ç›®æ ‡ä¸ºä¸­å¿ƒï¼Œå…·å¤‡ä»»åŠ¡åˆ†è§£ã€ååŒæ‰§è¡Œã€å·¥å…·è°ƒç”¨ã€ç»“果回写ã€äººå·¥å¤æ ¸ç­‰èƒ½åŠ›ï¼Œç¬¦åˆ AI 智能体的å‘展方å‘。 + +### 亮点三:把“看图识别â€å‡çº§ä¸ºâ€œè¯æ®æŽ¨ç†â€ + +真正难点ä¸åœ¨ OCR,而在于跨平å°å…³è”ã€è·¯å¾„还原ã€é‡å¤å‰”除ã€é‡‘é¢è®¤å®šã€‚本项目抓ä½äº†æ¯”赛中更容易打动专家的深层价值。 + +### 亮点四:结果å¯è§£é‡Šã€å¯è¿½æº¯ã€å¯å¤æ ¸ + +评审专家尤其关注警务 AI çš„å¯é æ€§ä¸Žé£Žé™©æŽ§åˆ¶ã€‚本项目通过置信分层ã€ç†ç”±è¯´æ˜Žã€äººå·¥å¤æ ¸ã€å®¡è®¡ç•™ç—•ç­‰è®¾è®¡ï¼Œä½¿ç³»ç»Ÿè¾“å‡ºå…·å¤‡è¯æ®å±žæ€§ï¼Œè€Œéžé»‘盒结论。 + +### 亮点五:能直接嵌入现有办案æµç¨‹ + +ä»Žæ¡ˆä»¶åˆ›å»ºã€æˆªå›¾ä¸Šä¼ ã€åˆ†æžã€å¤æ ¸åˆ°æŠ¥å‘Šå¯¼å‡ºï¼Œé“¾è·¯å®Œæ•´ï¼Œä¾¿äºŽåœ¨åŸºå±‚å•ä½ä»¥â€œå°åˆ‡å£ã€å¿«è½åœ°â€çš„æ–¹å¼æŽ¨å¹¿ã€‚ + +### 亮点六:具备å¤åˆ¶æŽ¨å¹¿ç©ºé—´ + +该框架ä¸ä»…适用于电诈å—å®³äººèµ„é‡‘æ ¸æŸ¥ï¼Œè¿˜å¯æ‰©å±•至: + +- 帮助信æ¯ç½‘ç»œçŠ¯ç½ªæ´»åŠ¨æ¡ˆä»¶èµ„é‡‘æ¢³ç† +- éžæ³•集资ã€ç½‘络赌åšç­‰æ¶‰ç½‘èµ„é‡‘åˆ†æž +- è¡Œæ”¿æ¡ˆä»¶ä¸­çš„ç”µå­æ”¯ä»˜è¯æ®æ•´ç† +- å…¶ä»–å¤šæºæˆªå›¾è¯æ®å½’集场景 + +## å…«ã€é¡¹ç›®åˆ›æ–°ç‚¹ + +从赛事评审å好的“创新性â€ç»´åº¦çœ‹ï¼Œå»ºè®®é‡ç‚¹çªå‡ºä»¥ä¸‹åˆ›æ–°ï¼š + +### 1. 场景创新 + +å°† AI 智能体深度应用于电诈案件å—害人资金认定这一高频ã€åˆšéœ€ã€é•¿æœŸä¾èµ–人工ç»éªŒçš„基层警务场景,具有鲜明的行业创新价值。 + +### 2. 方法创新 + +采用“多智能体ååŒ + è§„åˆ™å¼•æ“Žçº¦æŸ + äººå·¥å¤æ ¸å…œåº•â€çš„æ··åˆå¼èŒƒå¼ï¼Œä¸èµ°çº¯è§„则僵化路线,也ä¸èµ°çº¯å¤§æ¨¡åž‹é»‘ç›’è·¯çº¿ï¼Œå…¼é¡¾çµæ´»æ€§ä¸Žå¯æŽ§æ€§ã€‚ + +è¿›ä¸€æ­¥å¼•å…¥â€œè¯æ®è¯†åˆ«åŽå…³é”®è¯å›žæº¯â€çš„结果å馈机制,让系统能够利用åŽç»­é«˜ç½®ä¿¡è¯æ®åå‘修正账å•页é¢ç±»åž‹è¯†åˆ«ï¼Œä½“现出智能体在任务执行过程中的自我校正与自我完善能力。 + +### 3. æ•°æ®ç»„织创新 + +å°†éžç»“æž„åŒ–æˆªå›¾è¯æ®è½¬åŒ–为å¯è®¡ç®—ã€å¯å…³è”ã€å¯è§£é‡Šã€å¯å¤ç”¨çš„æ¡ˆä»¶çº§ç»“æž„åŒ–èµ„äº§ï¼Œå®žçŽ°ä»Žâ€œå›¾ç‰‡ææ–™â€åˆ°â€œè¯æ®æ•°æ®â€çš„è·ƒè¿ã€‚ + +### 4. 认定逻辑创新 + +把办案中的“被骗金é¢è®¤å®šâ€æ‹†è§£ä¸ºå¤šå› ç´ ç»¼åˆåˆ¤æ–­è¿‡ç¨‹ï¼Œä»¥ç½®ä¿¡åˆ†å±‚和认定ç†ç”±è¡¨è¾¾è¯æ®å……åˆ†åº¦ï¼Œè´´è¿‘çœŸå®žå¸æ³•审查æ€ç»´ã€‚ + +### 5. 输出形æ€åˆ›æ–° + +䏿˜¯æ­¢æ­¥äºŽæ™ºèƒ½è¯†åˆ«ç»“果,而是进一步形æˆå›¾ã€è¡¨ã€æ–‡ã€é—®è¯¢å»ºè®®ã€å®¡è®¡å¿«ç…§ç­‰å¤šç§è¾“出,为办案æµç¨‹æä¾›å®Œæ•´æ”¯æ’‘。 + +## ä¹ã€é¡¹ç›®å®žæˆ˜ä»·å€¼ä¸Žé¢„æœŸæˆæ•ˆ + +å»ºè®®åœ¨æ­£å¼æäº¤ææ–™æ—¶ï¼Œç”¨çœŸå®žæ•°æ®æ›¿æ¢ä¸‹åˆ—å ä½å†…容,以增强说æœåŠ›ã€‚ + +### 1. 效率æå‡ + +- 啿¡ˆæˆªå›¾æ•´ç†æ—¶é—´ç”± **[åŽŸå¹³å‡æ—¶é•¿]** é™ä½Žè‡³ **[çŽ°å¹³å‡æ—¶é•¿]** +- è¢«éª—é‡‘é¢æ ¸ç®—æ—¶é—´ç”± **[åŽŸå¹³å‡æ—¶é•¿]** é™ä½Žè‡³ **[çŽ°å¹³å‡æ—¶é•¿]** +- 笔录å‰äº‹å®žæ¢³ç†æ•ˆçއæå‡ **[X]%** + +### 2. è´¨é‡æå‡ + +- é‡å¤è®¡ç®—问题显著å‡å°‘ +- æ¼ç®—ã€è¯¯ç®—æƒ…å†µæ˜Žæ˜¾ä¸‹é™ +- 交易认定结果的一致性æå‡ +- åŽç»­å¤æ ¸ã€æ±‡æŠ¥ã€ç§»é€çŽ¯èŠ‚çš„ææ–™å¤ç”¨çއæå‡ + +### 3. 办案支撑价值 + +- 为民警快速é”å®šå…³é”®è½¬è´¦é“¾æ¡æä¾›ä¾æ® +- 为问询å—害人æä¾›ç»“构化æç¤º +- 为报案å—ç†ã€æ¡ˆä»¶ç ”åˆ¤ã€æ¡ˆå·æ•´ç†æä¾›ç»Ÿä¸€åº•稿 + +### 4. 管ç†ä»·å€¼ + +- æ²‰æ·€æ¡ˆä»¶çº§ç»“æž„åŒ–èµ„é‡‘æ•°æ® +- å½¢æˆæ ‡å‡†åŒ–ã€å¯å¤ç”¨ã€å¯ç»Ÿè®¡çš„实战能力 +- 为åŽç»­è·¨æ¡ˆä»¶ç ”åˆ¤å’Œæ¨¡åž‹ä¼˜åŒ–ç§¯ç´¯é«˜è´¨é‡æ ·æœ¬ + +## åã€æ¯”赛展示时建议é‡ç‚¹è®²æ¸…的“评审关注点†+ +### 1. 先讲痛点,ä¸è¦å…ˆè®²æŠ€æœ¯ + +建议答辩开场直接从基层民警日常工作切入: + +“å—害人带æ¥å‡ åå¼ ã€ä¸Šç™¾å¼ æ”¯ä»˜æˆªå›¾ï¼Œæ¶‰åŠå¤šä¸ª APP。人工é€å¼ æ ¸å¯¹ä¸ä»…è€—æ—¶ï¼Œè€Œä¸”æžæ˜“é‡ç®—ã€æ¼ç®—,直接影å“笔录质é‡å’Œè¢«éª—金é¢è®¤å®šæ•ˆçŽ‡ã€‚æœ¬é¡¹ç›®å°±æ˜¯å›´ç»•è¿™ä¸€é«˜é¢‘ç—›ç‚¹è®¾è®¡çš„å®žæˆ˜åž‹æ™ºèƒ½ä½“ç³»ç»Ÿã€‚â€ + +### 2. å¼ºè°ƒé¡¹ç›®ä¸æ˜¯æ™®é€š OCR + +建议明确指出: + +“OCR åªèƒ½è§£å†³è¯»å­—问题,ä¸èƒ½è§£å†³è·¨å¹³å°å…³è”ã€æœ¬äººè´¦æˆ·ä¸­è½¬è¯†åˆ«ã€è¢«éª—金é¢è®¤å®šå’Œè¯æ®åŒ–输出问题。本项目的核心创新在于把截图识别å‡çº§ä¸ºæ¡ˆä»¶çº§è¯æ®æŽ¨ç†ã€‚†+ +### 3. å¼ºè°ƒé¡¹ç›®ä¸æ˜¯å•大模型问答 + +建议表达为: + +â€œæœ¬é¡¹ç›®ä¸æ˜¯è®©ä¸€ä¸ªå¤§æ¨¡åž‹ç›´æŽ¥ç»™å‡ºç­”案,而是将任务分解为多个智能体ååŒå¤„ç†ï¼Œå¹¶ç”¨è§„åˆ™ã€æµç¨‹å’Œäººå·¥å¤æ ¸æœºåˆ¶ä¿è¯ç»“æžœå¯æŽ§ã€å¯è§£é‡Šã€å¯ç”¨äºŽåŠžæ¡ˆã€‚â€ + +### 4. 强调å¯è½åœ°ã€å¯æŽ¨å¹¿ + +建议çªå‡ºï¼š + +- 基层å•ä½ç›´æŽ¥å¯ç”¨ +- 与现有办案æµç¨‹è¡”接自然 +- ä¸è¦æ±‚æ”¹å˜æ°‘警工作习惯 +- å¯ä»¥ä»Žå诈场景å‘其他涉案资金核查场景扩展 + +## å一ã€å»ºè®®çš„答辩展示结构 + +### 1. 30 秒项目定义 + +用一å¥è¯è®²æ¸…楚: + +“这是一个é¢å‘电诈案件å—害人资金核查场景的多智能体ååŒç³»ç»Ÿï¼Œèƒ½å¤Ÿè‡ªåŠ¨è§£æžå¤š APP è´¦å•æˆªå›¾ï¼Œå…³è”交易ã€è¯†åˆ«ä¸­è½¬ã€è®¤å®šè¢«éª—金é¢ï¼Œå¹¶è¾“出å¯å¤æ ¸è¯æ®ç»“果。†+ +### 2. 1 分钟问题æè¿° + +å±•ç¤ºåŸºå±‚æ°‘è­¦åœ¨å¤§é‡æˆªå›¾æ•´ç†ã€æ ¸ç®—è¢«éª—é‡‘é¢æ—¶çš„真实工作痛点。 + +### 3. 1 分钟系统æµç¨‹å±•示 + +å»ºè®®æŒ‰ä»¥ä¸‹é¡ºåºæ¼”示: + +截图上传 -> 自动识别 -> 交易归并 -> 资金路径图 -> 认定结果 -> 问询建议 -> 报告导出 + +### 4. 1 分钟亮点与创新 + +é‡ç‚¹è®²ï¼š + +- 多智能体ååŒ +- 跨平å°å…³è”åŽ»é‡ +- 本人账户中转识别 +- ç½®ä¿¡åˆ†å±‚ä¸Žäººå·¥å¤æ ¸ +- è¯æ®åŒ–输出 + +### 5. 1 åˆ†é’Ÿæˆæ•ˆä¸ŽæŽ¨å¹¿ä»·å€¼ + +è¡¥å……å®žæˆ˜ä½¿ç”¨æ•ˆæžœã€æ•ˆçއæå‡ã€å‡†ç¡®çއæå‡ã€å¯å¤åˆ¶æŽ¨å¹¿ç©ºé—´ã€‚ + +## å二ã€å»ºè®®çš„æäº¤æ–‡æ¡ˆæ‘˜è¦ + +以下内容å¯ä½œä¸ºç”³æŠ¥ä¹¦æ‘˜è¦çš„基础版本: + +> 针对电信网络诈骗案件中å—害人多平å°è´¦å•截图数é‡å¤§ã€æ ¸æŸ¥è€—æ—¶é•¿ã€é‡å¤ç»Ÿè®¡å’Œæ¼ç®—风险高等问题,项目构建了é¢å‘基层警务实战的多智能体ååŒè®¤å®šç³»ç»Ÿã€‚系统围绕案件任务目标,自动完æˆå¤š APP 截图识别ã€äº¤æ˜“字段抽å–ã€è·¨å¹³å°å…³è”去é‡ã€æœ¬äººè´¦æˆ·ä¸­è½¬è¯†åˆ«ã€è¢«éª—金é¢åˆ†å±‚认定ã€é—®è¯¢å»ºè®®ç”Ÿæˆå’Œè¯æ®åŒ–报告输出,形æˆâ€œæ„ŸçŸ¥-推ç†-行动-夿 ¸â€é—­çŽ¯ã€‚é¡¹ç›®çªå‡ºå¯è§£é‡Šã€å¯è¿½æº¯ã€å¯å¤æ ¸ã€å¯è½åœ°ï¼Œèƒ½å¤Ÿæ˜¾è‘—æå‡å—害人笔录制作和被骗资金核算效率,é™ä½Žäººå·¥è¯¯å·®ï¼Œå…·æœ‰è¾ƒå¼ºçš„å®žæˆ˜åº”ç”¨ä»·å€¼å’ŒæŽ¨å¹¿å‰æ™¯ã€‚ + +## å三ã€é¡¹ç›®è½åœ°ä¸Žåˆè§„性说明 + +è­¦åŠ¡æ™ºèƒ½ä½“è¦æƒ³èŽ·å¾—ä¸“å®¶è®¤å¯ï¼Œå¿…é¡»æå‰å›žåº”安全与åˆè§„é—®é¢˜ã€‚å»ºè®®åœ¨ææ–™ä¸­æ˜Žç¡®å†™æ˜Žï¼š + +1. 系统仅é¢å‘授æƒåŠžæ¡ˆåœºæ™¯ä½¿ç”¨ï¼Œä¸é¢å‘社会公众开放。 +2. æ¡ˆä»¶æ•°æ®æŒ‰æœ€å°å¿…è¦åŽŸåˆ™é‡‡é›†ä¸Žå¤„ç†ã€‚ +3. æ”¯æŒæœ¬åœ°åŒ–部署或专网部署,é¿å…æ•æ„Ÿæ•°æ®å¤–æµé£Žé™©ã€‚ +4. 智能体输出仅作为办案辅助æ„è§ï¼Œæœ€ç»ˆè®¤å®šç”±æ°‘è­¦ä¾æ³•审核确认。 +5. 关键分æžè¿‡ç¨‹ä¿ç•™æ—¥å¿—ã€å¿«ç…§å’Œäººå·¥å¤æ ¸è®°å½•,便于责任追溯。 + +## åå››ã€ä¸“家评审最容易被打动的总结表达 + +如果è¦ç”¨ä¸€æ®µè¯æ¦‚括项目竞争力,建议使用如下表述: + +> 本项目的价值,ä¸åœ¨äºŽè®© AI “看懂一张截图â€ï¼Œè€Œåœ¨äºŽè®© AI 真正å‚与到基层å诈案件最ç¹çã€æœ€å®¹æ˜“å‡ºé”™ã€æœ€éœ€è¦ç»éªŒåˆ¤æ–­çš„资金核查环节中。它把分散ã€é›¶ç¢Žã€é‡å¤çš„æˆªå›¾è¯æ®ï¼Œè½¬åŒ–为å¯å…³è”ã€å¯è§£é‡Šã€å¯å¤æ ¸çš„æ¡ˆä»¶ç»“论,既解决了一线民警的现实痛点,也体现了 AI 智能体从通用能力走å‘警务实战能力的典型路径。 + +## å五ã€åŽç»­å»ºè®®è¡¥å……çš„ææ–™ + +为了让å‚èµ›ææ–™æ›´æœ‰ç«žäº‰åŠ›ï¼Œå»ºè®®ä½ åŽç»­å†è¡¥å……以下内容: + +1. 真实案例一例:截图数é‡ã€æ¶‰åŠ APP æ•°é‡ã€äººå·¥è€—æ—¶ã€ç³»ç»Ÿè€—æ—¶ã€æœ€ç»ˆè®¤å®šé‡‘é¢ã€‚ +2. 对比数æ®ä¸€ç»„:人工处ç†ä¸Žç³»ç»Ÿè¾…助处ç†çš„æ•ˆçŽ‡å’Œå·®é”™çŽ‡å¯¹æ¯”ã€‚ +3. 演示视频一段:完整展示从上传截图到报告输出的闭环。 +4. ç•Œé¢æˆªå›¾è‹¥å¹²ï¼šæ¡ˆä»¶é¡µã€æˆªå›¾é¡µã€äº¤æ˜“页ã€åˆ†æžé¡µã€å¤æ ¸é¡µã€æŠ¥å‘Šé¡µã€‚ +5. 部署说明一份:本地/ä¸“ç½‘éƒ¨ç½²ã€æƒé™æŽ§åˆ¶ã€æ•°æ®ç•™ç—•ã€å®‰å…¨ç­–略。 + +--- + +## 附:一å¥è¯å‚èµ›å£å· + +**è®©ç¢Žç‰‡åŒ–æˆªå›¾è¯æ®ï¼Œè‡ªåŠ¨å˜æˆå¯è®¤å®šã€å¯å¤æ ¸ã€å¯åŠžæ¡ˆçš„èµ„é‡‘äº‹å®žã€‚** diff --git a/docs/project-book/.gitignore b/docs/project-book/.gitignore deleted file mode 100644 index bed03bc..0000000 --- a/docs/project-book/.gitignore +++ /dev/null @@ -1,11 +0,0 @@ -# LaTeX 编译产物 -build/ -*.aux -*.log -*.toc -*.out -*.bbl -*.blg -*.synctex.gz -*.fls -*.fdb_latexmk diff --git a/docs/project-book/Makefile b/docs/project-book/Makefile deleted file mode 100644 index e39e9c4..0000000 --- a/docs/project-book/Makefile +++ /dev/null @@ -1,19 +0,0 @@ -# 智æžå诈 项目书 - LaTeX 编译 -# 使用: make 或 make pdf - -MAIN = main -LATEX = xelatex -BUILD_DIR = build - -.PHONY: pdf clean - -pdf: $(MAIN).tex - @mkdir -p $(BUILD_DIR) - $(LATEX) -output-directory=$(BUILD_DIR) -interaction=nonstopmode $(MAIN).tex - $(LATEX) -output-directory=$(BUILD_DIR) -interaction=nonstopmode $(MAIN).tex - @cp $(BUILD_DIR)/$(MAIN).pdf . 2>/dev/null || true - @echo "PDF 已生æˆ: $(BUILD_DIR)/$(MAIN).pdf" - -clean: - rm -rf $(BUILD_DIR) - rm -f *.aux *.log *.toc *.out *.bbl *.blg *.synctex.gz diff --git a/docs/project-book/build.sh b/docs/project-book/build.sh deleted file mode 100644 index 937f7a2..0000000 --- a/docs/project-book/build.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/usr/bin/env bash -# 智æžå诈 项目书 - 一键编译脚本 -# 使用: bash build.sh - -set -e -cd "$(dirname "$0")" - -MAIN=main -BUILD_DIR=build - -mkdir -p "$BUILD_DIR" -xelatex -output-directory="$BUILD_DIR" -interaction=nonstopmode "$MAIN.tex" || true -xelatex -output-directory="$BUILD_DIR" -interaction=nonstopmode "$MAIN.tex" - -if [ -f "$BUILD_DIR/$MAIN.pdf" ]; then - cp "$BUILD_DIR/$MAIN.pdf" . - echo "PDF 已生æˆ: $BUILD_DIR/$MAIN.pdf" -else - echo "编译å¯èƒ½æœ‰é—®é¢˜ï¼Œè¯·æ£€æŸ¥ $BUILD_DIR 目录下的 .log 文件" - exit 1 -fi diff --git a/docs/project-book/chapters/.gitkeep b/docs/project-book/chapters/.gitkeep deleted file mode 100644 index 8b13789..0000000 --- a/docs/project-book/chapters/.gitkeep +++ /dev/null @@ -1 +0,0 @@ - diff --git a/docs/project-book/chapters/01-introduction.tex b/docs/project-book/chapters/01-introduction.tex deleted file mode 100644 index 2dfa491..0000000 --- a/docs/project-book/chapters/01-introduction.tex +++ /dev/null @@ -1,30 +0,0 @@ -% ============================================================ -% 第一章 引言 -% 对应评审维度:需求与场景适é…ã€åº”用价值 -% ============================================================ - -\chapter{引言} - -\section{目标用户与典型场景概述} - -本项目é¢å‘基层派出所ã€å诈中心åŠåˆ‘侦部门的办案民警。在电信网络诈骗案件办ç†ä¸­ï¼Œæ°‘警需è¦å—ç†å—害人报案ã€åˆ¶ä½œç¬”å½•ã€æ ¸æŸ¥èµ„金æµå‘并认定被骗金é¢ã€‚å—害人通常会æä¾›å¤§é‡æ¥è‡ªå¾®ä¿¡ã€æ”¯ä»˜å®ã€é“¶è¡Œå¡ã€çŸ­ä¿¡é€šçŸ¥ç­‰ä¸åŒæ¥æºçš„è´¦å•æˆªå›¾ï¼Œæ°‘警需é€å¼ æŸ¥çœ‹ã€ç™»è®°ã€æ±‡æ€»ã€æŽ’é‡ã€è®¡ç®—。这一环节是典型的高频ã€è€—æ—¶ã€æ˜“错场景,也是本系统的核心目标用户与典型使用场景。第三章将详细展开目标用户画åƒä¸Žå…¸åž‹ä½¿ç”¨åœºæ™¯ã€‚ - -\section{项目背景} - -电信网络诈骗案件æŒç»­é«˜å‘,基层民警在å—害人报案å—ç†ã€èµ„金核查ã€ç¬”录制作过程中,é¢ä¸´å¤§é‡æ¥è‡ªä¸åŒAPPçš„è´¦å•æˆªå›¾ã€‚现有工作模å¼ä¸»è¦ä¾èµ–人工é€å¼ æŸ¥çœ‹ã€ç™»è®°ã€æ±‡æ€»ã€æŽ’é‡ã€è®¡ç®—,存在效率低ã€é‡å¤ç»Ÿè®¡ã€è®¤å®šä¸ç»Ÿä¸€ã€è¯æ®æ•´ç†è´Ÿæ‹…é‡ç­‰é—®é¢˜ã€‚ - -为破解该痛点,本项目é¢å‘å—害人资金核查实战,研å‘多智能体ååŒçš„æˆªå›¾è¯æ®è§£æžä¸Žè¢«éª—金é¢è®¤å®šç³»ç»Ÿï¼Œå®žçŽ°å¤šæºæˆªå›¾è‡ªåŠ¨è¯†åˆ«ã€è·¨å¹³å°å…³è”ã€èµ„金路径分æžã€è®¤å®šå¤æ ¸å’Œæ–‡ä¹¦åŒ–输出,æœåŠ¡ç”µè¯ˆæ¡ˆä»¶å¿«é€Ÿã€è§„范ã€å¯è¿½æº¯åŠžç†ã€‚ - -\section{研究/建设目标} - -本项目的建设目标å‡ç»ƒä¸ºä¸‰é¡¹ï¼š - -\begin{enumerate}[label=(\arabic*)] - \item \textbf{自动化}ï¼šè®©æˆªå›¾è¯æ®ä»Žäººå·¥æ•´ç†è½¬å‘è‡ªåŠ¨è¯†åˆ«å’Œç»“æž„åŒ–å¤„ç† - \item \textbf{规范化}:让被骗金é¢è®¤å®šä»Žç»éªŒåˆ¤æ–­è½¬å‘规则化ã€å¯è§£é‡ŠåŒ–输出 - \item \textbf{实战化}:让分æžç»“果直接æœåŠ¡ç¬”å½•åˆ¶ä½œã€èµ„é‡‘æ ¸æŸ¥å’Œæ¡ˆä»¶ææ–™ç”Ÿæˆ -\end{enumerate} - -\section{文档结构说明} - -本项目的结构安排如下:第二章介ç»èƒŒæ™¯ä¸ŽçŽ°çŠ¶ï¼›ç¬¬ä¸‰ç« è¿›è¡Œéœ€æ±‚åˆ†æžï¼›ç¬¬å››ç« æè¿°ç³»ç»Ÿæž¶æž„设计;第五章é˜è¿°å…³é”®å®žçŽ°ï¼›ç¬¬å…­ç« æ€»ç»“åˆ›æ–°ç‚¹ä¸Žç‰¹è‰²ï¼›ç¬¬ä¸ƒç« è®¨è®ºåº”ç”¨æˆæ•ˆä¸Žè¯„估;第八章为总结与展望。附录æä¾›APIç«¯ç‚¹ã€æ•°æ®åº“模型ã€å›¾æ¸…å•ã€åˆé€‰å½•å±è¯´æ˜ŽåŠç­”辩常è§é—®é¢˜ä¸Žå»ºè®®å›žç­”。 diff --git a/docs/project-book/chapters/02-background.tex b/docs/project-book/chapters/02-background.tex deleted file mode 100644 index dbff2ab..0000000 --- a/docs/project-book/chapters/02-background.tex +++ /dev/null @@ -1,52 +0,0 @@ -% ============================================================ -% 第二章 背景与现状 -% 对应评审维度:需求与场景适é…ã€åº”用价值 -% ============================================================ - -\chapter{背景与现状} - -\section{电信诈骗å—害人资金核查业务æµç¨‹} - -典型的电信诈骗案件资金核查æµç¨‹å¯æ¦‚æ‹¬ä¸ºï¼šå—æ¡ˆ $\to$ 笔录制作 $\to$ 核账 $\to$ 认定 $\to$ 报å·ã€‚å—害人在报案时通常æä¾›å¾®ä¿¡ã€æ”¯ä»˜å®ã€é“¶è¡Œå¡ã€çŸ­ä¿¡é€šçŸ¥ç­‰æˆªå›¾ä½œä¸ºè½¬è´¦å‡­è¯ã€‚民警需è¦å°†è¿™äº›é›¶æ•£è¯æ®æ•´ç†ä¸ºå¯è¿½æº¯ã€å¯è®¤å®šçš„èµ„é‡‘æµæ°´ï¼Œå¹¶å›žç­”执法层é¢çš„关键问题:哪些钱å¯ä»¥è®¤å®šä¸ºè¢«éª—金é¢ï¼Œç†ç”±æ˜¯ä»€ä¹ˆï¼Œè¯æ®åœ¨å“ªé‡Œã€‚ - -\section{传统人工模å¼çš„瓶颈} - -传统人工核账模å¼ä¸‹ï¼Œæ°‘è­¦é€å¼ æŸ¥çœ‹æˆªå›¾ã€æ‰‹åŠ¨ç™»è®°äº¤æ˜“ä¿¡æ¯ã€äººå·¥åˆ¤æ–­é‡å¤ä¸Žä¸­è½¬ã€è®¡ç®—被骗金é¢å¹¶æ’°å†™è®¤å®šç†ç”±ã€‚该模å¼å­˜åœ¨ä»¥ä¸‹ç“¶é¢ˆï¼š - -\begin{itemize}[leftmargin=*] - \item æˆªå›¾æ¥æºæ‚ï¼šå¾®ä¿¡ã€æ”¯ä»˜å®ã€é“¶è¡Œå¡ã€çŸ­ä¿¡ã€æ•°å­—é’±åŒ…æ··æ‚ - \item 截图数é‡å¤§ï¼šä¸€æ¡ˆå‡ å张到上百张截图 - \item é‡å¤ç»Ÿè®¡é£Žé™©é«˜ï¼šåŒä¸€ç¬”交易跨平å°å¤šæ¬¡å‡ºçް - \item ä¸­è½¬æƒ…å½¢å¤æ‚:本人账户过渡ã€å……值æçްã€é€€æ¬¾æ··æ‚ - \item 认定ç†ç”±ä¾èµ–ç»éªŒï¼šæ ‡å‡†ä¸ç»Ÿä¸€ - \item 结果需å夿•´ç†ï¼šè¡¨æ ¼ã€ç¬”å½•ã€æŠ¥å‘Šé‡å¤åŠ³åŠ¨é‡ -\end{itemize} - -% 图 2-1 å ä½ -\placeholderfigure{Fig-traditional-flow.pdf}{传统人工核账æµç¨‹å›¾} - -\section{痛点与影å“对照} - -表\ref{tab:pain-points} 归纳了传统模å¼ä¸‹çš„主è¦ç—›ç‚¹åŠå…¶å½±å“。 - -\begin{table}[H] - \centering - \caption{痛点与影å“对照表} - \label{tab:pain-points} - \begin{tabular}{lll} - \toprule - \textbf{痛点} & \textbf{具体表现} & \textbf{å½±å“} \\ - \midrule - æˆªå›¾æ¥æºæ‚ & å¾®ä¿¡ã€æ”¯ä»˜å®ã€é“¶è¡Œã€çŸ­ä¿¡ç­‰æ··æ‚ & 分类与整ç†è€—æ—¶ \\ - 截图数é‡å¤§ & 一案数å至上百张 & 人工é€å¼ ç™»è®°æžè€—æ—¶é—´ \\ - é‡å¤ç»Ÿè®¡ & åŒç¬”交易跨平å°å¤šæ¬¡å‡ºçް & 易é‡å¤ç´¯è®¡è¢«éª—é‡‘é¢ \\ - ä¸­è½¬å¤æ‚ & 本人账户过渡ã€è‡ªå……ã€é€€æ¬¾ & æ˜“é”™è®¤ã€æ˜“æ¼æŽ’ \\ - 认定ä¸ç»Ÿä¸€ & ä¾èµ–个人ç»éªŒ & å£å¾„ä¸ä¸€è‡´ã€éš¾ä»¥å¤æ ¸ \\ - 文书整ç†é‡ & 表格ã€ç¬”å½•ã€æŠ¥å‘Šå夿•´ç† & é‡å¤åŠ³åŠ¨å¤š \\ - \bottomrule - \end{tabular} -\end{table} - -\section{智慧警务与 AI 智能体å‘展趋势} - -智慧警务建设强调技术赋能基层ã€å‡è´Ÿå¢žæ•ˆã€‚AI 智能体具备目标导å‘ã€çŽ¯å¢ƒæ„ŸçŸ¥ã€è§„划执行ã€å·¥å…·è°ƒç”¨å’Œå馈闭环等特å¾ï¼Œé€‚åˆæ‰¿æ‹…高é‡å¤ã€é«˜è€—æ—¶çš„ä¿¡æ¯æŠ½å–与åˆåˆ¤ä»»åŠ¡ï¼Œè€Œå°†æœ€ç»ˆç¡®è®¤æƒã€è¡¥è¯æƒã€ä¿®æ­£æƒä¿ç•™ç»™æ°‘警。本项目正是在此背景下,将多智能体ååŒæŠ€æœ¯åº”ç”¨äºŽç”µè¯ˆå—害人资金核查这一垂直警务场景。 diff --git a/docs/project-book/chapters/03-demand-analysis.tex b/docs/project-book/chapters/03-demand-analysis.tex deleted file mode 100644 index 28fe130..0000000 --- a/docs/project-book/chapters/03-demand-analysis.tex +++ /dev/null @@ -1,100 +0,0 @@ -% ============================================================ -% 第三章 éœ€æ±‚åˆ†æž -% 对应评审维度:需求与场景适é…ã€æŠ€æœ¯å¯è¡Œæ€§ -% ============================================================ - -\chapter{需求分æž} - -\section{目标用户画åƒ} - -本系统的主è¦ç›®æ ‡ç”¨æˆ·åŒ…括: - -\begin{enumerate}[label=(\arabic*)] - \item \textbf{派出所一线民警}:å—ç†ç”µè¯ˆæŠ¥æ¡ˆï¼Œåˆ¶ä½œç¬”录,完æˆèµ„é‡‘æ ¸æŸ¥åˆæ ¸ - \item \textbf{å诈中心办案人员}:统筹多案资金分æžï¼Œå¤æ ¸è®¤å®šç»“论 - \item \textbf{刑侦/ç»ä¾¦åŠžæ¡ˆäººå‘˜}:涉诈资金链梳ç†ã€å¤šè´¦æˆ·èµ„金归集 -\end{enumerate} - -\section{典型使用场景} - -表\ref{tab:use-scenarios} 以「角色 + 任务 + 痛点 + 本系统介入方å¼ã€çš„å½¢å¼æè¿°å…¸åž‹ä½¿ç”¨åœºæ™¯ã€‚ - -\begin{table}[H] - \centering - \caption{典型使用场景} - \label{tab:use-scenarios} - \begin{tabular}{p{2cm}p{2.5cm}p{2.5cm}p{3cm}} - \toprule - \textbf{角色} & \textbf{任务} & \textbf{痛点} & \textbf{本系统介入} \\ - \midrule - 派出所民警 & å—ç†ç”µè¯ˆæŠ¥æ¡ˆåŽæ ¸è´¦ & 截图多ã€é‡å¤ç»Ÿè®¡ã€è®¤å®šéš¾ & 批é‡ä¸Šä¼ ã€è‡ªåŠ¨åŽ»é‡ã€è®¤å®šåˆåˆ¤ \\ - 派出所民警 & åˆ¶ä½œç¬”å½•å‰æ¢³ç†èµ„金 & 需人工整ç†è¡¨æ ¼ã€é—®è¯¢æ— ä¾æ® & 导出汇总表ã€ç”Ÿæˆé—®è¯¢å»ºè®® \\ - å诈中心 & 夿 ¸å¤šæ¡ˆè®¤å®šç»“论 & å£å¾„ä¸ç»Ÿä¸€ã€è¯æ®é“¾éš¾è¿½æº¯ & 结构化字段ã€è®¤å®šç†ç”±ã€è¯æ®ç´¢å¼• \\ - 刑侦/ç»ä¾¦ & æ¶‰è¯ˆèµ„é‡‘é“¾åˆ†æž & 多账户ã€å¤šå¹³å°æµæ°´æ··æ‚ & 跨平å°å…³è”ã€èµ„金æµå›¾ã€è·¯å¾„åˆ†æž \\ - \bottomrule - \end{tabular} -\end{table} - -% 图 3-1 å ä½ -\placeholderfigure{Fig-user-usecase.pdf}{用户角色与用例示æ„} - -\section{业务需求} - -系统需支æŒä»¥ä¸‹æ ¸å¿ƒä¸šåŠ¡èƒ½åŠ›ï¼š - -\begin{itemize}[leftmargin=*] - \item 案件管ç†ï¼šåˆ›å»ºã€æŸ¥çœ‹ã€æ›´æ–°æ¡ˆä»¶ä¿¡æ¯ - \item 截图上传:批é‡ä¸Šä¼ å¤šAPPè´¦å•æˆªå›¾ - \item 截图解æžï¼šè‡ªåŠ¨è¯†åˆ«APP类型ã€é¡µé¢ç±»åž‹ï¼Œæå–交易字段 - \item 交易归并:去é‡ã€èšç±»ã€è¯†åˆ«æœ¬äººè´¦æˆ·ä¸­è½¬ - \item 资金分æžï¼šèµ„金æµè½¬å…³ç³»å›¾ã€äº¤æ˜“æ—¶é—´è½´ã€æ”¶æ¬¾æ–¹èšåˆ - \item è®¤å®šå¤æ ¸ï¼šé«˜/中/ä½Žç½®ä¿¡åˆ†å±‚ï¼Œäººå·¥å¤æ ¸ç¡®è®¤ï¼Œè‡ªåŠ¨ç”Ÿæˆè®¤å®šç†ç”± - \item 笔录辅助:基于分æžç»“果生æˆç¬”录问询建议 - \item 报告导出:Excel 汇总表ã€PDF 报告ã€Word 文书,å«è¯æ®ç´¢å¼•和审计快照 -\end{itemize} - -\section{功能需求} - -表\ref{tab:func-req} 列出主è¦åŠŸèƒ½éœ€æ±‚ã€‚ - -\begin{table}[H] - \centering - \caption{功能需求列表} - \label{tab:func-req} - \begin{tabular}{cll} - \toprule - \textbf{ç¼–å·} & \textbf{功能} & \textbf{说明} \\ - \midrule - F1 & æ¡ˆä»¶ç®¡ç† & åˆ›å»ºã€æŸ¥çœ‹ã€æ›´æ–°æ¡ˆä»¶ \\ - F2 & 截图上传 & 批é‡ä¸Šä¼ ï¼Œæ”¯æŒå¤šæ ¼å¼ \\ - F3 & 截图分类 & è¯†åˆ«æ¥æºAPPã€é¡µé¢ç±»åž‹ \\ - F4 & äº¤æ˜“æŠ½å– & OCR æå–标准化交易字段 \\ - F5 & äº¤æ˜“åŽ»é‡ & 订å•å·ã€é‡‘é¢+时间窗å£åŽ»é‡ \\ - F6 & 中转识别 & 识别本人账户中转 \\ - F7 & 认定分层 & 高/中/低置信,纳入/排除/待夿 ¸ \\ - F8 & äººå·¥å¤æ ¸ & 确认ã€ä¿®æ­£ã€ç•™ç—• \\ - F9 & 问询建议 & 基于认定结果生æˆç¬”录建议 \\ - F10 & 报告导出 & Excelã€Wordã€PDF \\ - \bottomrule - \end{tabular} -\end{table} - -\section{éžåŠŸèƒ½éœ€æ±‚} - -\begin{table}[H] - \centering - \caption{éžåŠŸèƒ½éœ€æ±‚} - \label{tab:nfr} - \begin{tabular}{lll} - \toprule - \textbf{类别} & \textbf{需求} & \textbf{说明} \\ - \midrule - 性能 & 批é‡å¤„ç† & æ”¯æŒæ•°å张截图并å‘è§£æž \\ - 性能 & å“应时间 & å•å¼ è§£æžåœ¨å¯æŽ¥å—å»¶è¿Ÿå†…å®Œæˆ \\ - 安全 & æ•°æ®éš”离 & 按案件隔离存储 \\ - 安全 & 审计留痕 & 分æžã€å¤æ ¸ã€ä¿®æ”¹è®°å½•å¯è¿½æº¯ \\ - åˆè§„ & 本地部署 & 支æŒä¸“网/本地化部署 \\ - åˆè§„ & å¯è§£é‡Šæ€§ & 认定ç†ç”±ã€æŽ’除便®å¯è¿½æº¯ \\ - \bottomrule - \end{tabular} -\end{table} diff --git a/docs/project-book/chapters/04-architecture.tex b/docs/project-book/chapters/04-architecture.tex deleted file mode 100644 index 221f810..0000000 --- a/docs/project-book/chapters/04-architecture.tex +++ /dev/null @@ -1,93 +0,0 @@ -% ============================================================ -% 第四章 系统架构设计 -% 对应评审维度:技术å¯è¡Œæ€§ã€æŠ€æœ¯æ·±åº¦ã€ä½œå“完整性 -% ============================================================ - -\chapter{系统架构设计} - -\section{总体架构} - -ç³»ç»Ÿé‡‡ç”¨å››å±‚æž¶æž„ï¼šè¯æ®æŽ¥å…¥å±‚ã€æ™ºèƒ½ä½“ååŒå±‚ã€æ¡ˆä»¶æŽ¨ç†å±‚ã€ç»“果输出层。 - -\begin{enumerate}[label=(\arabic*)] - \item \textbf{è¯æ®æŽ¥å…¥å±‚}ï¼šå¾®ä¿¡ã€æ”¯ä»˜å®ã€é“¶è¡Œã€çŸ­ä¿¡ã€æ•°å­—钱包等截图批é‡ä¸Šä¼  - \item \textbf{智能体ååŒå±‚}:编排智能体统一调度å„专业智能体 - \item \textbf{案件推ç†å±‚}:去é‡ã€å…³è”ã€ä¸­è½¬è¯†åˆ«ã€è®¤å®šè¯„分ã€äººå·¥å¤æ ¸ - \item \textbf{结果输出层}:资金æµå›¾ã€äº¤æ˜“明细ã€è®¤å®šç»“论ã€é—®è¯¢å»ºè®®ã€è¯æ®åŒ–报告 -\end{enumerate} - -% 图 4-1 å ä½ -\placeholderfigure{Fig-architecture.pdf}{系统四层架构图} - -\section{多智能体分工} - -系统由以下八个专业智能体ååŒå®Œæˆæ¡ˆä»¶å¤„ç†ï¼š - -\begin{itemize}[leftmargin=*] - \item \textbf{案件编排智能体}ï¼šæŽ¥æ”¶æ¡ˆä»¶ç›®æ ‡ï¼Œè§„åˆ’å¤„ç†æ­¥éª¤ï¼Œè°ƒåº¦å„å­æ™ºèƒ½ä½“ - \item \textbf{截图ç†è§£æ™ºèƒ½ä½“}:识别截图所属APPã€é¡µé¢ç±»åž‹ã€æˆªå›¾æœ‰æ•ˆæ€§ - \item \textbf{äº¤æ˜“æŠ½å–æ™ºèƒ½ä½“}ï¼šå°†è´¦å•æˆªå›¾è§£æžä¸ºæ ‡å‡†åŒ–交易记录 - \item \textbf{跨平å°å…³è”智能体}:识别åŒä¸€äº¤æ˜“在ä¸åŒå¹³å°çš„é‡å¤å‘ˆçް - \item \textbf{èµ„é‡‘è·¯å¾„åˆ†æžæ™ºèƒ½ä½“}:识别本人账户中转ã€åˆ†æµã€æ±‡èš - \item \textbf{被骗金é¢è®¤å®šæ™ºèƒ½ä½“}:纳入/排除/待夿 ¸åˆ¤å®šï¼Œç”Ÿæˆè®¤å®šç†ç”± - \item \textbf{文书与笔录辅助智能体}:输出认定说明ã€é—®è¯¢å»ºè®®ã€è¯æ®åŒ–报告 - \item \textbf{äººå·¥å¤æ ¸ååŒæ™ºèƒ½ä½“}:将低置信与争议记录æäº¤æ°‘警确认 -\end{itemize} - -% 图 4-2 å ä½ -\placeholderfigure{Fig-agent-collab.pdf}{多智能体å作示æ„图} - -\section{核心业务æµç¨‹} - -核心业务æµç¨‹ä¸ºï¼šä¸Šä¼  $\to$ è§£æž $\to$ åˆ†æž $\to$ 夿 ¸ $\to$ æŠ¥å‘Šã€‚å…·ä½“åŒ…æ‹¬ï¼šæ–°å»ºæ¡ˆä»¶ã€æ‰¹é‡ä¸Šä¼ æˆªå›¾ã€è‡ªåŠ¨è¯†åˆ«æ¥æºä¸Žé¡µé¢ç±»åž‹ã€è‡ªåŠ¨æŠ½å–交易字段ã€è‡ªåŠ¨åŽ»é‡ä¸Žä¸­è½¬è¯†åˆ«ã€ç”Ÿæˆèµ„金路径与被骗金é¢åˆåˆ¤ã€æ°‘è­¦å¯¹ä½Žç½®ä¿¡è®°å½•å¤æ ¸ã€ä¸€é”®å¯¼å‡ºæ±‡æ€»è¡¨ä¸Žé—®è¯¢å»ºè®®ã€‚ - -% 图 4-3 å ä½ -\placeholderfigure{Fig-business-flow.pdf}{核心业务æµç¨‹} - -\section{技术选型} - -表\ref{tab:tech-stack} 列出技术栈。 - -\begin{table}[H] - \centering - \caption{技术栈一览} - \label{tab:tech-stack} - \begin{tabular}{ll} - \toprule - \textbf{层级} & \textbf{技术} \\ - \midrule - å‰ç«¯ & React 18, TypeScript, Ant Design, ECharts, TanStack Query, Zustand \\ - åŽç«¯ & Python, FastAPI, SQLAlchemy 2.x (async), Pydantic v2 \\ - æ•°æ®åº“ & PostgreSQL 16 \\ - 队列 & Celery, Redis 7 \\ - AI 能力 & 云 OCR / 多模æ€å¤§æ¨¡åž‹ API(å¯é…置) \\ - 报告 & openpyxl, python-docx \\ - \bottomrule - \end{tabular} -\end{table} - -\section{设计目标与实现情况对照} - -表\ref{tab:design-vs-impl} 对照设计目标与当å‰å®žçŽ°æƒ…å†µï¼Œä½“çŽ°ä½œå“完整性。 - -\begin{table}[H] - \centering - \caption{设计目标 vs 实现情况} - \label{tab:design-vs-impl} - \begin{tabular}{lp{4cm}p{4cm}} - \toprule - \textbf{功能模å—} & \textbf{设计目标} & \textbf{实现情况} \\ - \midrule - æ¡ˆä»¶ç®¡ç† & åˆ›å»ºã€æŸ¥çœ‹ã€æ›´æ–°æ¡ˆä»¶ & 已实现 \\ - 截图上传 & 批é‡ä¸Šä¼ å¤š APP 截图 & 已实现 \\ - 截图分类 & 识别 APPã€é¡µé¢ç±»åž‹ & 已实现(OCR/多模æ€ï¼‰ \\ - äº¤æ˜“æŠ½å– & 标准化字段æå– & 已实现 \\ - äº¤æ˜“åŽ»é‡ & 订å•å·ã€é‡‘é¢+æ—¶é—´çª—å£ & 已实现 \\ - 中转识别 & 本人账户中转排除 & 已实现 \\ - 认定分层 & 高/中/低置信 & 已实现 \\ - äººå·¥å¤æ ¸ & 确认ã€ä¿®æ­£ã€ç•™ç—• & 已实现 \\ - 问询建议 & ç¬”å½•è¾…åŠ©ç”Ÿæˆ & 已实现 \\ - 报告导出 & Excelã€Wordã€PDF & 已实现 \\ - \bottomrule - \end{tabular} -\end{table} diff --git a/docs/project-book/chapters/05-implementation.tex b/docs/project-book/chapters/05-implementation.tex deleted file mode 100644 index 1f8b0da..0000000 --- a/docs/project-book/chapters/05-implementation.tex +++ /dev/null @@ -1,74 +0,0 @@ -% ============================================================ -% 第五章 关键实现 -% å¯¹åº”è¯„å®¡ç»´åº¦ï¼šæŠ€æœ¯æ·±åº¦ã€æŠ€æœ¯å¯è¡Œæ€§ -% ============================================================ - -\chapter{关键实现} - -\section{截图ç†è§£ä¸Žäº¤æ˜“抽å–} - -系统采用多模æ€å¤§æ¨¡åž‹ API å®Œæˆæˆªå›¾åˆ†ç±»ä¸Žäº¤æ˜“字段抽å–。首先识别截图所属 APPï¼ˆå¾®ä¿¡ã€æ”¯ä»˜å®ã€é“¶è¡Œã€æ•°å­—钱包等)åŠé¡µé¢ç±»åž‹ï¼ˆè´¦å•列表ã€è¯¦æƒ…ã€è½¬è´¦å›žæ‰§ç­‰ï¼‰ï¼Œå†æ ¹æ®é¡µé¢ç±»åž‹è°ƒç”¨ç›¸åº”抽å–策略,输出标准化交易记录。 - -抽å–字段包括:交易时间ã€é‡‘é¢ã€æ”¶æ”¯æ–¹å‘ã€å¯¹æ‰‹æ–¹åç§°/è´¦å·ã€æœ¬æ–¹è´¦æˆ·å°¾å·ã€è®¢å•å·ã€å¤‡æ³¨ã€è¯†åˆ«ç½®ä¿¡åº¦ã€‚输出为结构化数æ®ï¼Œæ”¯æŒå¯è®¡ç®—ã€å¯è¿½æº¯ã€å¯æ¯”对ã€å¯å¤æ ¸ã€‚ - -% 图 5-1 å ä½ -\placeholderfigure{Fig-extract-fields.pdf}{交易抽å–字段与置信度示æ„} - -\section{跨平å°å…³è”与去é‡} - -去é‡é€»è¾‘基于规则引擎实现,主è¦åŒ…括:订å•å·ä¸€è‡´åˆ™åˆ¤å®šä¸ºé‡å¤ï¼›é‡‘é¢ä¸Žæ—¶é—´çª—å£ç›¸è¿‘且对手方一致时å¯èšç±»ã€‚èšç±»åŽä¿ç•™ç½®ä¿¡åº¦æœ€é«˜çš„一æ¡ä¸ºä¸»è®°å½•,其余标记为é‡å¤ã€‚本人账户中转识别通过比对对手方与本方已知账户实现,标记为「中转ã€çš„交易ä¸çº³å…¥è¢«éª—金é¢ç´¯è®¡ã€‚ - -% 图 5-2 å ä½ -\placeholderfigure{Fig-dedup-transit.pdf}{去é‡ä¸Žä¸­è½¬è¯†åˆ«é€»è¾‘示æ„} - -\section{被骗金é¢è®¤å®š} - -认定逻辑结åˆè§„则与 LLM 辅助:规则负责纳入/æŽ’é™¤è¾¹ç•ŒæŽ§åˆ¶ï¼ˆå¦‚æœ¬äººè´¦æˆ·ä¸­è½¬æŽ’é™¤ã€æ”¶å…¥æ–¹å‘排除等);LLM è´Ÿè´£ç”Ÿæˆæ›´è§„范的认定ç†ç”±ä¸Žé—®è¯¢å»ºè®®ã€‚æ¯ç¬”交易输出高/中/ä½Žç½®ä¿¡åˆ†å±‚ï¼Œä½Žç½®ä¿¡è®°å½•è¿›å…¥äººå·¥å¤æ ¸æµç¨‹ã€‚ - -\section{报告生æˆ} - -报告æœåŠ¡æ”¯æŒå¯¼å‡º Excelã€Wordã€PDF ä¸‰ç§æ ¼å¼ï¼Œå†…容å¯åŒ…å«ï¼šè¢«éª—金颿±‡æ€»ã€äº¤æ˜“明细ã€è®¤å®šç†ç”±ä¸ŽæŽ’除说明ã€ç¬”录辅助问询建议。报告ä¿ç•™ç‰ˆæœ¬å¿«ç…§ï¼Œæ”¯æŒè¯æ®ç´¢å¼•与审计追踪。 - -\section{交易结构化字段定义} - -表\ref{tab:tx-fields} 定义交易结构化字段。 - -\begin{table}[H] - \centering - \caption{交易结构化字段定义} - \label{tab:tx-fields} - \begin{tabular}{llp{5cm}} - \toprule - \textbf{字段} & \textbf{类型} & \textbf{说明} \\ - \midrule - trade\_time & datetime & äº¤æ˜“æ—¶é—´ï¼Œæ ¼å¼ YYYY-MM-DD HH:MM:SS \\ - amount & decimal & 金é¢ï¼ˆå…ƒï¼‰ \\ - direction & enum & in / out \\ - counterparty\_name & string & 对手方åç§° \\ - counterparty\_account & string & å¯¹æ‰‹æ–¹è´¦å· \\ - self\_account\_tail\_no & string & æœ¬æ–¹è´¦æˆ·å°¾å· \\ - order\_no & string & 订å•å· \\ - remark & string & 备注 \\ - confidence & float & 识别置信度 0--1 \\ - \bottomrule - \end{tabular} -\end{table} - -\section{认定置信度分层} - -表\ref{tab:confidence} 说明认定置信度分层åŠå¯¹åº”处ç†ç­–略。 - -\begin{table}[H] - \centering - \caption{认定置信度分层说明} - \label{tab:confidence} - \begin{tabular}{llp{4cm}} - \toprule - \textbf{等级} & \textbf{å«ä¹‰} & \textbf{处ç†ç­–ç•¥} \\ - \midrule - 高 & 明确å¯çº³å…¥è¢«éª—é‡‘é¢ & å¯ç›´æŽ¥ç¡®è®¤ \\ - 中 & éœ€ç»“åˆæ¡ˆæƒ…判断 & å»ºè®®äººå·¥å¤æ ¸ \\ - 低 & 建议排除或待核实 & å¿…é¡»äººå·¥å¤æ ¸ \\ - \bottomrule - \end{tabular} -\end{table} diff --git a/docs/project-book/chapters/06-innovation.tex b/docs/project-book/chapters/06-innovation.tex deleted file mode 100644 index c0779b4..0000000 --- a/docs/project-book/chapters/06-innovation.tex +++ /dev/null @@ -1,66 +0,0 @@ -% ============================================================ -% 第六章 创新点与特色 -% 对应评审维度:创新点ã€åˆ›æ–°ç¨‹åº¦ -% ============================================================ - -\chapter{创新点与特色} - -\section{ä¼ ç»Ÿæ¨¡å¼ vs 本方案对照} - -表\ref{tab:traditional-vs-ours} 逿¡å¯¹æ¯”传统模å¼ä¸Žæœ¬æ–¹æ¡ˆï¼Œçªå‡ºåˆ›æ–°ä¸Žçªç ´ã€‚ - -\begin{table}[H] - \centering - \caption{ä¼ ç»Ÿæ¨¡å¼ vs 本方案对照} - \label{tab:traditional-vs-ours} - \begin{tabular}{lp{4cm}p{4cm}} - \toprule - \textbf{维度} & \textbf{传统模å¼} & \textbf{本方案} \\ - \midrule - æˆªå›¾å¤„ç† & 人工é€å¼ æŸ¥çœ‹ã€æ‰‹å†™ç™»è®° & 多智能体自动分类ã€OCR æŠ½å– \\ - é‡å¤è¯†åˆ« & 人工凭记忆比对 & 跨平å°å…³è”ã€è®¢å•å·/金é¢+æ—¶é—´åŽ»é‡ \\ - 中转识别 & ä¾èµ–ç»éªŒã€æ˜“æ¼ & 规则引擎+已知账户比对 \\ - 认定逻辑 & 个人ç»éªŒã€å£å¾„ä¸ä¸€ & 规则化+LLM 辅助,å¯è§£é‡Š \\ - è¾“å‡ºå½¢æ€ & 手工整ç†è¡¨æ ¼ã€ç¬”录 & 一键导出 Excel/Word/PDF,å«è¯æ®ç´¢å¼• \\ - 夿 ¸æœºåˆ¶ & 无系统化留痕 & 高/中/ä½Žç½®ä¿¡åˆ†å±‚ï¼Œäººå·¥å¤æ ¸é—­çޝ \\ - å·¥ä½œæµ & æ°‘è­¦å…¨é‡æ ¸è´¦ & AI åˆåˆ¤ + æ°‘è­¦é‡ç‚¹å¤æ ¸ \\ - \bottomrule - \end{tabular} -\end{table} - -\section{多智能体ååŒåˆ›æ–°} - -将截图ç†è§£ã€äº¤æ˜“抽å–ã€å…³è”分æžã€é‡‘é¢è®¤å®šã€æ–‡ä¹¦ç”Ÿæˆæ‹†åˆ†ä¸ºä¸“业智能体,由编排智能体ååŒè°ƒåº¦ï¼Œå½¢æˆæ¡ˆä»¶ç›®æ ‡é©±åŠ¨çš„é—­çŽ¯å¤„ç†æµç¨‹ã€‚æ¯ä¸ªæ™ºèƒ½ä½“åªè§£å†³ä¸€ç±»ä¸“业问题,输出å¯ç»“构化传递,符åˆè­¦åŠ¡åœºæ™¯å¯ç®¡å¯æŽ§è¦æ±‚。 - -\section{跨平å°èµ„é‡‘è¯æ®å…³è”创新} - -é¢å‘å¾®ä¿¡ã€æ”¯ä»˜å®ã€é“¶è¡Œå¡ã€çŸ­ä¿¡ç­‰å¤šæºæˆªå›¾ï¼Œè¯†åˆ«åŒç¬”交易的跨平å°é‡å¤è¡¨è¾¾ï¼Œå®žçŽ°èµ„é‡‘è¯æ®è‡ªåЍ关è”和去é‡ï¼Œç›´æŽ¥è§£å†³ã€Œé‡å¤ç»Ÿè®¡ã€è¿™ä¸€å®žæˆ˜é«˜é¢‘痛点。 - -\section{被骗金é¢è®¤å®šåˆ›æ–°} - -䏿­¢è¯†åˆ«æµæ°´ï¼Œè€Œæ˜¯å›´ç»•执法需è¦ï¼Œç»“åˆè§„则和上下文对æ¯ç¬”äº¤æ˜“è¿›è¡Œçº³å…¥ã€æŽ’é™¤ã€å¾…夿 ¸åˆ¤æ–­ï¼Œå¹¶ç”Ÿæˆè®¤å®šç†ç”±ä¸ŽæŽ’除便®ã€‚ - -\section{è¯æ®åŒ–输出与人机ååŒ} - -将智能分æžç»“果转化为å¯å¤æ ¸ã€å¯å¯¼å‡ºã€å¯çº³å…¥æ¡ˆå·çš„æŠ¥å‘Šå’Œé—®è¯¢ææ–™ã€‚åŒæ—¶å¼ºè°ƒäººæœºååŒï¼šAI 负责高强度åˆåˆ¤ï¼Œæ°‘è­¦ä¿ç•™æœ€ç»ˆç¡®è®¤æƒï¼Œä½Žç½®ä¿¡ç»“果主动æäº¤äººå·¥å¤æ ¸ã€‚ - -\section{AI 智能体五特å¾ä¸Žæœ¬é¡¹ç›®å¯¹åº”} - -表\ref{tab:agent-features} è¯´æ˜Žæœ¬é¡¹ç›®å¦‚ä½•ç¬¦åˆ AI 智能体的五个核心特å¾ã€‚ - -\begin{table}[H] - \centering - \caption{AI 智能体五特å¾ä¸Žæœ¬é¡¹ç›®å¯¹åº”关系} - \label{tab:agent-features} - \begin{tabular}{ll} - \toprule - \textbf{智能体特å¾} & \textbf{本项目体现} \\ - \midrule - ç›®æ ‡å¯¼å‘ & 以「å—害人被骗金é¢è®¤å®šã€ä¸ºç›®æ ‡ï¼Œéžå•纯识图 \\ - 环境感知 & æ„ŸçŸ¥å¾®ä¿¡ã€æ”¯ä»˜å®ã€é“¶è¡Œã€çŸ­ä¿¡ç­‰å¤šæºæˆªå›¾è¯æ® \\ - 规划执行 & 便¬¡å®Œæˆåˆ†ç±»ã€æŠ½å–ã€åŽ»é‡ã€å…³è”ã€åˆ†æžã€è®¤å®šã€è¾“出 \\ - 工具调用 & 调用 OCRã€å¤šæ¨¡æ€æ¨¡åž‹ã€è§„åˆ™å¼•æ“Žã€æ•°æ®åº“ã€æŠ¥è¡¨å¯¼å‡º \\ - å馈闭环 & ä½Žç½®ä¿¡ç»“æžœè¿›å…¥äººå·¥å¤æ ¸ï¼Œä¿ç•™ä¿®æ­£è®°å½• \\ - \bottomrule - \end{tabular} -\end{table} diff --git a/docs/project-book/chapters/07-evaluation.tex b/docs/project-book/chapters/07-evaluation.tex deleted file mode 100644 index ab405ed..0000000 --- a/docs/project-book/chapters/07-evaluation.tex +++ /dev/null @@ -1,64 +0,0 @@ -% ============================================================ -% 第七章 åº”ç”¨æˆæ•ˆä¸Žè¯„ä¼° -% 对应评审维度:应用价值ã€è­¦åŠ¡/æ•™è‚²é€‚é…æ€§ -% ============================================================ - -\chapter{åº”ç”¨æˆæ•ˆä¸Žè¯„ä¼°} - -\section{应用场景与试点情况} - -系统é¢å‘基层派出所ã€å诈中心åŠåˆ‘侦部门,适用于电信诈骗å—å®³äººèµ„é‡‘æ ¸æŸ¥ã€æ¶‰è¯ˆèµ„金链梳ç†ã€æ¶‰èµŒèµ„é‡‘æµæ°´åˆ†æžã€ç»ä¾¦æ¡ˆä»¶å¤šè´¦æˆ·èµ„金归集等场景。ã€å ä½ï¼šå¦‚有试点,请在此处补充试点å•ä½ã€æ—¶é—´ã€æ¡ˆä»¶æ•°é‡ç­‰ã€‚】 - -\section{æˆæ•ˆæŒ‡æ ‡} - -表\ref{tab:metrics} åˆ—å‡ºå»ºè®®è·Ÿè¸ªçš„æˆæ•ˆæŒ‡æ ‡ï¼Œå®žæµ‹æ•°æ®åˆ—供用户填写。 - -\begin{table}[H] - \centering - \caption{æˆæ•ˆæŒ‡æ ‡} - \label{tab:metrics} - \begin{tabular}{llll} - \toprule - \textbf{指标} & \textbf{说明} & \textbf{预期方å‘} & \textbf{实测数æ®} \\ - \midrule - 啿¡ˆæ ¸æŸ¥æ—¶é—´ & 从上传到出报告 & 压缩 & \placeholdercell \\ - äººå·¥å½•å…¥å·¥ä½œé‡ & 民警手工录入比例 & ä¸‹é™ & \placeholdercell \\ - é‡å¤äº¤æ˜“识别 & 准确率/å¬å›žçއ & æå‡ & \placeholdercell \\ - 本人账户中转识别 & 准确率 & æå‡ & \placeholdercell \\ - 认定一致性 & 多案/多人认定一致性 & æå‡ & \placeholdercell \\ - æŠ¥å‘Šç”Ÿæˆæ—¶é—´ & 从确认到导出 & 缩短 & \placeholdercell \\ - \bottomrule - \end{tabular} -\end{table} - -\textbf{指标å‚考å£å¾„}:传统人工核查需 2--4 å°æ—¶çš„æ¡ˆä»¶ï¼Œç³»ç»Ÿå¯åœ¨æ•°åˆ†é’Ÿå†…完æˆåˆæ­¥ç»“构化和归并分æžï¼›å¤šå¹³å°é‡å¤äº¤æ˜“自动识别åŽï¼Œé‡å¤ç»Ÿè®¡é£Žé™©æ˜Žæ˜¾ä¸‹é™ï¼›æ°‘警由「全é‡é€æ¡æ ¸å¯¹ã€è½¬ä¸ºã€Œèšç„¦äº‰è®®è®°å½•夿 ¸ã€ï¼Œå·¥ä½œé‡å¿ƒæ˜Žæ˜¾ä¼˜åŒ–。 - -% 图 7-1, 7-2, 7-3 å ä½ -\placeholderfigure{Fig-main-ui.png}{ç³»ç»Ÿä¸»ç•Œé¢æˆªå›¾} - -\placeholderfigure{Fig-review-ui.png}{分æž/夿 ¸ç•Œé¢æˆªå›¾} - -\placeholderfigure{Fig-report-sample.png}{报告导出样例截图} - -\section{应用价值与推广路径} - -\textbf{应用价值}:对基层民警å‡è´Ÿå¢žæ•ˆï¼›å¯¹æ¡ˆä»¶åŠžç†æå‡è®¤å®šè§„范性ã€å®Œæ•´æ€§å’Œå¯è§£é‡Šæ€§ï¼›å¯¹æ™ºæ…§è­¦åŠ¡æž„å»ºå¯æŽ¨å¹¿ã€å¯å¤åˆ¶çš„å诈资金核查智能体范å¼ã€‚ - -\textbf{推广路径}:派出所试点 $\to$ å诈中心推广 $\to$ 刑侦/ç»ä¾¦æ‰©å±•。系统æµç¨‹æ ‡å‡†ã€é€šç”¨æ€§å¼ºï¼Œå¯æ ¹æ®ä¸åŒå•ä½éƒ¨ç½²æ¡ä»¶é€‰æ‹©æœ¬åœ°åŒ–或专网化è½åœ°ã€‚ - -\section{警务/æ•™è‚²é€‚é…æ€§} - -\begin{itemize}[leftmargin=*] - \item \textbf{警校特色}ï¼šæ¥æºäºŽåŸºå±‚民警真实办案需求,å¯ç»“åˆå诈课程ã€å®žè®­æ•™å­¦ä½¿ç”¨ - \item \textbf{è½åœ°ä»·å€¼}ï¼šæ”¯æŒæœ¬åœ°åŒ–/专网部署,符åˆå…¬å®‰ä¿¡æ¯å®‰å…¨è¦æ±‚ - \item \textbf{æ•°æ®å®‰å…¨}ï¼šæ¡ˆä»¶æ•°æ®æŒ‰æ¡ˆéš”ç¦»ï¼Œè¯æ®ä¸ŽæŠ¥å‘Šå…¨æµç¨‹ç•™ç—• - \item \textbf{å¯è§£é‡Šå¯ä¿¡}:æ¯ç¬”认定å¯è¿½æº¯è‡³åŽŸå§‹æˆªå›¾ï¼Œäººå·¥æ‹¥æœ‰æœ€ç»ˆç¡®è®¤æƒ -\end{itemize} - -\section{安全åˆè§„与å¯ä¿¡è®¾è®¡} - -\begin{enumerate}[label=(\arabic*)] - \item \textbf{æ•°æ®å®‰å…¨}:按案管ç†ã€éš”ç¦»å­˜å‚¨ï¼›æ”¯æŒæœ¬åœ°/专网部署;模型接å£å¯åˆ‡æ¢ - \item \textbf{æƒé™ä¸Žå®¡è®¡}:区分上传ã€å¤æ ¸ã€å¯¼å‡ºæƒé™ï¼›ä¿ç•™åˆ†æžæ—¶é—´ã€å¤æ ¸äººã€ä¿®æ”¹è®°å½•;报告版本快照 - \item \textbf{å¯ä¿¡ AI}:低置信ä¸ç›´æŽ¥ä¸‹ç»“论;人工最终确认;认定ç†ç”±å¯è§£é‡Šï¼›ç»“æžœå¯è¿½æº¯ -\end{enumerate} diff --git a/docs/project-book/chapters/08-conclusion.tex b/docs/project-book/chapters/08-conclusion.tex deleted file mode 100644 index 4204c52..0000000 --- a/docs/project-book/chapters/08-conclusion.tex +++ /dev/null @@ -1,24 +0,0 @@ -% ============================================================ -% 第八章 总结与展望 -% ============================================================ - -\chapter{总结与展望} - -\section{项目总结} - -本项目èšç„¦ç”µä¿¡ç½‘络诈骗案件å—害人资金核查这一基层高频ã€è€—æ—¶ã€æ˜“错场景,构建多智能体ååŒçš„æˆªå›¾è¯æ®è§£æžä¸Žè¢«éª—金é¢è®¤å®šç³»ç»Ÿã€‚系统围绕案件目标,自动完æˆå¤š APP è´¦å•æˆªå›¾è¯†åˆ«ã€äº¤æ˜“字段抽å–ã€è·¨å¹³å°é‡å¤å…³è”ã€æœ¬äººè´¦æˆ·ä¸­è½¬è¯†åˆ«ã€èµ„金路径分æžã€è¢«éª—金é¢è®¤å®šå’Œè¯æ®åŒ–æŠ¥å‘Šè¾“å‡ºï¼Œå¹¶é€šè¿‡äººå·¥å¤æ ¸æœºåˆ¶ä¿éšœç»“æžœå¯ä¿¡å¯æŽ§ã€‚ - -é¡¹ç›®ä¸æ˜¯å•点 OCR 工具,而是é¢å‘警务实战的垂直智能体系统,能够显著æå‡èµ„金核查效率ã€è§„范认定标准ã€å‡è½»åŸºå±‚è´Ÿæ‹…ï¼Œå…·å¤‡è¾ƒå¼ºçš„å®žæˆ˜ä»·å€¼ã€æŽ¨å¹¿ä»·å€¼å’Œç¤ºèŒƒæ„义。 - -\section{æŽ¨å¹¿å‰æ™¯} - -本项目é¢å‘基层高频警务场景,具有显著的通用性和å¯å¤åˆ¶æ€§ã€‚系统能力ä¸ä»…适用于电信诈骗å—å®³äººèµ„é‡‘æ ¸æŸ¥ï¼Œè¿˜å¯æ‰©å±•应用于涉诈资金链梳ç†ã€æ¶‰èµŒèµ„é‡‘æµæ°´åˆ†æžã€ç»ä¾¦æ¡ˆä»¶å¤šè´¦æˆ·èµ„金归集等场景,具备在派出所ã€å诈中心ã€åˆ‘侦部门等多层级å•ä½æŽ¨å¹¿åº”ç”¨çš„æ½œåŠ›ã€‚ - -\section{åŽç»­è®¡åˆ’} - -\begin{itemize}[leftmargin=*] - \item æŒç»­ä¼˜åŒ– OCR 与抽å–准确率 - \item 扩展更多 APP 与页é¢ç±»åž‹çš„è¯†åˆ«æ”¯æŒ - \item 深化资金路径分æžä¸Žå¯è§†åŒ– - \item 推进试点è½åœ°ä¸Žæ•ˆæžœæ•°æ®é‡‡é›† -\end{itemize} diff --git a/docs/project-book/chapters/appendix-a-api.tex b/docs/project-book/chapters/appendix-a-api.tex deleted file mode 100644 index e535960..0000000 --- a/docs/project-book/chapters/appendix-a-api.tex +++ /dev/null @@ -1,31 +0,0 @@ -% ============================================================ -% 附录 A:API 端点一览 -% ============================================================ - -\chapter{API 端点一览} -\label{app:api} - -\begin{table}[H] - \centering - \caption{ç³»ç»Ÿä¸»è¦ API 端点} - \begin{tabular}{lll} - \toprule - \textbf{端点} & \textbf{方法} & \textbf{功能} \\ - \midrule - /api/v1/cases & GET, POST & 案件列表 / 创建 \\ - /api/v1/cases/\{id\} & GET, PATCH & 案件详情 / æ›´æ–° \\ - /api/v1/cases/\{id\}/images & GET, POST & 截图列表 / 上传 \\ - /api/v1/images/\{id\} & GET & 截图详情 + OCR 结果 \\ - /api/v1/cases/\{id\}/analyze & POST & 触å‘åˆ†æž \\ - /api/v1/cases/\{id\}/transactions & GET & 交易列表 \\ - /api/v1/cases/\{id\}/flows & GET & 资金æµå›¾ \\ - /api/v1/cases/\{id\}/assessments & GET & 认定列表 \\ - /api/v1/assessments/\{id\}/review & POST & æäº¤å¤æ ¸ \\ - /api/v1/cases/\{id\}/inquiry-suggestions & GET & 问询建议 \\ - /api/v1/cases/\{id\}/reports & GET, POST & 报告列表 / ç”Ÿæˆ \\ - /api/v1/reports/\{id\}/download & GET & 下载报告 \\ - \bottomrule - \end{tabular} -\end{table} - -API 文档å¯é€šè¿‡è®¿é—® \texttt{/docs} 获å–äº¤äº’å¼ Swagger 文档。 diff --git a/docs/project-book/chapters/appendix-b-models.tex b/docs/project-book/chapters/appendix-b-models.tex deleted file mode 100644 index 5ff0f04..0000000 --- a/docs/project-book/chapters/appendix-b-models.tex +++ /dev/null @@ -1,23 +0,0 @@ -% ============================================================ -% 附录 B:数æ®åº“/模型简è¦è¯´æ˜Ž -% ============================================================ - -\chapter{æ•°æ®åº“/模型简è¦è¯´æ˜Ž} -\label{app:models} - -\section{æ ¸å¿ƒæ•°æ®æ¨¡åž‹} - -ä¸»è¦æ•°æ®æ¨¡åž‹åŒ…括: - -\begin{itemize}[leftmargin=*] - \item \textbf{Case}ï¼šæ¡ˆä»¶ï¼Œå«æ¡ˆä»¶ç¼–å·ã€çжæ€ã€åˆ›å»ºæ—¶é—´ç­‰ - \item \textbf{EvidenceImage}ï¼šè¯æ®æˆªå›¾ï¼Œå«æ¥æº APPã€é¡µé¢ç±»åž‹ã€å­˜å‚¨è·¯å¾„ã€OCR çŠ¶æ€ - \item \textbf{TransactionRecord}ï¼šäº¤æ˜“è®°å½•ï¼Œå«æ—¶é—´ã€é‡‘é¢ã€æ–¹å‘ã€å¯¹æ‰‹æ–¹ã€è®¢å•å·ã€æ˜¯å¦é‡å¤ã€æ˜¯å¦ä¸­è½¬ç­‰ - \item \textbf{TransactionCluster}:交易èšç±»ï¼Œç”¨äºŽåŽ»é‡åŽçš„ä¸»è®°å½•å…³è” - \item \textbf{FraudAssessment}:被骗金é¢è®¤å®šï¼Œå«ç½®ä¿¡ç­‰çº§ã€è®¤å®šé‡‘é¢ã€ç†ç”±ã€å¤æ ¸çŠ¶æ€ - \item \textbf{ExportReport}:导出报告,å«ç±»åž‹ï¼ˆExcel/Word/PDF)ã€è·¯å¾„ã€ç‰ˆæœ¬ã€å†…容快照 -\end{itemize} - -\section{æ¡ˆä»¶çŠ¶æ€æµè½¬} - -案件状æ€åŒ…括:\texttt{draft}(è‰ç¨¿ï¼‰ã€\texttt{analyzing}(分æžä¸­ï¼‰ã€\texttt{reviewing}ï¼ˆå¤æ ¸ä¸­ï¼‰ã€\texttt{closed}(已关闭)。 diff --git a/docs/project-book/chapters/appendix-c-figures.tex b/docs/project-book/chapters/appendix-c-figures.tex deleted file mode 100644 index 0bedd04..0000000 --- a/docs/project-book/chapters/appendix-c-figures.tex +++ /dev/null @@ -1,36 +0,0 @@ -% ============================================================ -% 附录 C:图清å•与å ä½è¯´æ˜Ž -% 供用户按图补充,对应评审维度:技术å¯è¡Œæ€§ -% ============================================================ - -\chapter{图清å•与å ä½è¯´æ˜Ž} -\label{app:figures} - -以下为正文中需è¦ç”¨æˆ·æä¾›çš„图片清å•ã€‚è¯·æ ¹æ® \texttt{figures/README.md} 中的说明准备相应图片,并替æ¢å ä½æ¡†ã€‚ - -\begin{table}[H] - \centering - \caption{图清å•与å ä½è¯´æ˜Ž} - \begin{tabular}{clp{5cm}} - \toprule - \textbf{图å·} & \textbf{建议文件å} & \textbf{建议内容} \\ - \midrule - 图 2-1 & Fig-traditional-flow.pdf & 传统人工核账æµç¨‹å›¾ \\ - 图 3-1 & Fig-user-usecase.pdf & ç”¨æˆ·è§’è‰²ä¸Žç”¨ä¾‹ç¤ºæ„ \\ - 图 4-1 & Fig-architecture.pdf & 系统四层架构图 \\ - 图 4-2 & Fig-agent-collab.pdf & 多智能体å作示æ„图 \\ - 图 4-3 & Fig-business-flow.pdf & 核心业务æµç¨‹ \\ - 图 5-1 & Fig-extract-fields.pdf & 交易抽å–å­—æ®µä¸Žç½®ä¿¡åº¦ç¤ºæ„ \\ - 图 5-2 & Fig-dedup-transit.pdf & 去é‡ä¸Žä¸­è½¬è¯†åˆ«é€»è¾‘ç¤ºæ„ \\ - 图 7-1 & Fig-main-ui.png & ç³»ç»Ÿä¸»ç•Œé¢æˆªå›¾ \\ - 图 7-2 & Fig-review-ui.png & 分æž/夿 ¸ç•Œé¢æˆªå›¾ \\ - 图 7-3 & Fig-report-sample.png & 报告导出样例截图 \\ - \bottomrule - \end{tabular} -\end{table} - -将图片放入 \texttt{figures/} 目录åŽï¼Œå¯åœ¨å¯¹åº”章节中将 \texttt{\textbackslash placeholderfigure} 替æ¢ä¸ºï¼š - -\begin{lstlisting} -\includegraphics[width=0.9\textwidth]{文件å} -\end{lstlisting} diff --git a/docs/project-book/chapters/appendix-d-video.tex b/docs/project-book/chapters/appendix-d-video.tex deleted file mode 100644 index 5e36ea4..0000000 --- a/docs/project-book/chapters/appendix-d-video.tex +++ /dev/null @@ -1,34 +0,0 @@ -% ============================================================ -% 附录 D:åˆé€‰å½•å±è¯´æ˜Ž -% 对应评审维度:技术å¯è¡Œæ€§ï¼ˆå½•屿•ˆæžœæ¸…晰) -% ============================================================ - -\chapter{åˆé€‰å½•å±è¯´æ˜Ž} -\label{app:video} - -åˆé€‰é˜¶æ®µéœ€æäº¤ç³»ç»Ÿæ¼”示录å±ã€‚建议按以下规范准备,以体现架构åˆç†ã€æ ¸å¿ƒåŠŸèƒ½å¯å®žçްã€å½•屿•ˆæžœæ¸…晰。 - -\section{建议时长} - -总时长建议 3--5 分钟,覆盖「一案跑到底ã€çš„完整闭环。 - -\section{建议æµç¨‹ä¸Žå…³é”®æ—¶é—´ç‚¹} - -\begin{enumerate}[label=(\arabic*)] - \item 新建案件(约 0:00--0:30) - \item 批é‡ä¸Šä¼ å¤š APP 截图(约 0:30--1:00) - \item ç³»ç»Ÿè‡ªåŠ¨è¯†åˆ«æˆªå›¾æ¥æºå’Œé¡µé¢ç±»åž‹ï¼ˆçº¦ 1:00--1:30) - \item 自动抽å–交易字段(约 1:30--2:00) - \item 自动去é‡ä¸Žä¸­è½¬è¯†åˆ«ï¼ˆçº¦ 2:00--2:30) - \item 生æˆèµ„金路径与被骗金é¢åˆåˆ¤ï¼ˆçº¦ 2:30--3:00) - \item å¯¹ä½Žç½®ä¿¡è®°å½•è¿›è¡Œäººå·¥å¤æ ¸ï¼ˆçº¦ 3:00--3:30) - \item ä¸€é”®å¯¼å‡ºè¢«éª—é‡‘é¢æ±‡æ€»å’Œé—®è¯¢å»ºè®®ï¼ˆçº¦ 3:30--4:00) -\end{enumerate} - -\section{录å±è´¨é‡è¦æ±‚} - -\begin{itemize}[leftmargin=*] - \item åˆ†è¾¨çŽ‡æ¸…æ™°ï¼Œç•Œé¢æ–‡å­—å¯è¾¨è®¤ - \item æ“ä½œè¿žè´¯ï¼Œæ— é•¿æ—¶é—´é»‘å±æˆ–å¡é¡¿ - \item 关键步骤有适当åœé¡¿æˆ–标注,便于评审ç†è§£ -\end{itemize} diff --git a/docs/project-book/chapters/appendix-e-qa.tex b/docs/project-book/chapters/appendix-e-qa.tex deleted file mode 100644 index c29c321..0000000 --- a/docs/project-book/chapters/appendix-e-qa.tex +++ /dev/null @@ -1,31 +0,0 @@ -% ============================================================ -% 附录 E:答辩常è§é—®é¢˜ä¸Žå»ºè®®å›žç­” -% 对应评审维度:现场表现 -% ============================================================ - -\chapter{答辩常è§é—®é¢˜ä¸Žå»ºè®®å›žç­”} -\label{app:qa} - -\section{与普通 OCR 的区别} - -\textbf{é—®}:你这个项目和普通 OCR 报销系统有什么区别? - -\textbf{ç­”}:普通 OCR 系统解决的是「识别内容ã€ï¼Œæœ¬é¡¹ç›®è§£å†³çš„æ˜¯ã€Œå›´ç»•案件目标认定被骗金é¢ã€ã€‚系统ä¸ä»…åšæˆªå›¾è¯†åˆ«ï¼Œè¿˜åšè·¨å¹³å°å…³è”ã€æœ¬äººè´¦æˆ·ä¸­è½¬è¯†åˆ«ã€è®¤å®šç†ç”±ç”Ÿæˆã€äººå·¥å¤æ ¸å’Œè¯æ®åŒ–è¾“å‡ºï¼Œæ ¸å¿ƒæ˜¯æ‰§æ³•ä¸šåŠ¡é—­çŽ¯è€Œä¸æ˜¯è¯†åˆ«æœ¬èº«ã€‚ - -\section{为何采用多智能体} - -\textbf{é—®}:为什么è¦åšå¤šæ™ºèƒ½ä½“,ä¸ç›´æŽ¥ç”¨ä¸€ä¸ªå¤§æ¨¡åž‹ï¼Ÿ - -\textbf{ç­”}ï¼šå› ä¸ºæœ¬åœºæ™¯åŒæ—¶åŒ…å«è§†è§‰è¯†åˆ«ã€ç»“构化抽å–ã€äº¤æ˜“å…³è”ã€è§„则推ç†ã€æ–‡ä¹¦ç”Ÿæˆç­‰å¼‚构任务。采用多智能体分工åŽï¼Œæ¯ä¸€æ­¥æ›´ç¨³å®šã€å¯è§£é‡Šã€å¯æ›¿æ¢ï¼Œä¹Ÿæ›´ç¬¦åˆè­¦åŠ¡åœºæ™¯å¯ç®¡å¯æŽ§è¦æ±‚。 - -\section{识别错误的处ç†} - -\textbf{é—®}:如果模型识别错了怎么办? - -\textbf{ç­”}ï¼šç³»ç»Ÿä¼šè¾“å‡ºç½®ä¿¡åº¦ï¼Œå¹¶æŠŠä½Žç½®ä¿¡å’Œäº‰è®®è®°å½•äº¤ç”±æ°‘è­¦å¤æ ¸ï¼›åŒæ—¶ä¿ç•™åŽŸå§‹æˆªå›¾ã€æŠ½å–字段ã€è®¤å®šç†ç”±å’Œä¿®æ­£è®°å½•,确ä¿ç»“è®ºä¸æ˜¯é»‘箱生æˆï¼Œè€Œæ˜¯å¯è¿½æº¯ã€å¯æ ¡æ­£çš„。 - -\section{推广æ¡ä»¶} - -\textbf{é—®}:这个项目是å¦å…·å¤‡æŽ¨å¹¿æ¡ä»¶ï¼Ÿ - -\textbf{ç­”}:该项目é¢å‘基层å诈案件高频场景,æµç¨‹æ ‡å‡†ã€é€šç”¨æ€§å¼ºï¼Œå¹¶å·²å…·å¤‡å‰åŽç«¯åŽŸåž‹ã€æ¡ˆä»¶æµç¨‹ã€å¼‚步分æžã€æŠ¥å‘Šå¯¼å‡ºç­‰åŸºç¡€èƒ½åŠ›ï¼Œå¯æ ¹æ®ä¸åŒå•ä½éƒ¨ç½²æ¡ä»¶é€‰æ‹©æœ¬åœ°åŒ–或专网化è½åœ°ï¼Œå…·å¤‡è¾ƒå¼ºæŽ¨å¹¿ä»·å€¼ã€‚ diff --git a/docs/project-book/figures/README.md b/docs/project-book/figures/README.md deleted file mode 100644 index 54b8332..0000000 --- a/docs/project-book/figures/README.md +++ /dev/null @@ -1,43 +0,0 @@ -# 项目书图片å ä½è¯´æ˜Ž - -请将以下图片放入本目录,并在对应章节中替æ¢å ä½æ¡†ã€‚图片需用户自行æä¾›æˆ–制作。 - -## 图片清å•与评审维度对应 - -| 文件å | å¯¹åº”å›¾å· | 建议内容 | 对应评审维度 | -|--------|----------|----------|--------------| -| Fig-traditional-flow.pdf | 图 2-1 | 传统人工核账æµç¨‹å›¾ | éœ€æ±‚ä¸Žåœºæ™¯é€‚é… | -| Fig-user-usecase.pdf | 图 3-1 | ç”¨æˆ·è§’è‰²ä¸Žç”¨ä¾‹ç¤ºæ„ | éœ€æ±‚ä¸Žåœºæ™¯é€‚é… | -| Fig-architecture.pdf | 图 4-1 | 系统四层架构图 | 技术å¯è¡Œæ€§ã€æŠ€æœ¯æ·±åº¦ | -| Fig-agent-collab.pdf | 图 4-2 | 多智能体å作示æ„图 | 技术å¯è¡Œæ€§ã€åˆ›æ–°ç‚¹ | -| Fig-business-flow.pdf | 图 4-3 | 核心业务æµç¨‹ï¼ˆä¸Šä¼ â†’è§£æžâ†’分æžâ†’夿 ¸â†’报告) | 技术å¯è¡Œæ€§ | -| Fig-extract-fields.pdf | 图 5-1 | 交易抽å–å­—æ®µä¸Žç½®ä¿¡åº¦ç¤ºæ„ | 技术深度 | -| Fig-dedup-transit.pdf | 图 5-2 | 去é‡ä¸Žä¸­è½¬è¯†åˆ«é€»è¾‘ç¤ºæ„ | 技术深度 | -| Fig-main-ui.png | 图 7-1 | ç³»ç»Ÿä¸»ç•Œé¢æˆªå›¾ | 应用价值ã€ä½œå“完整性 | -| Fig-review-ui.png | 图 7-2 | 分æž/夿 ¸ç•Œé¢æˆªå›¾ | 应用价值ã€ä½œå“完整性 | -| Fig-report-sample.png | 图 7-3 | 报告导出样例截图 | 应用价值ã€ä½œå“完整性 | - -## 替æ¢è¯´æ˜Ž - -将图片放入本目录åŽï¼Œåœ¨å¯¹åº”章节的 `.tex` 文件中,将: - -```latex -\placeholderfigure{文件å}{图题} -``` - -替æ¢ä¸ºï¼š - -```latex -\begin{figure}[H] - \centering - \includegraphics[width=0.9\textwidth]{文件å} - \caption{图题} - \label{fig:xxx} -\end{figure} -``` - -注æ„:`\graphicspath` å·²é…置为 `figures/`,直接使用文件åå³å¯ï¼ˆå¦‚ `Fig-main-ui`)。 - -## å¯é€‰å ä½å›¾ - -坿”¾ç½® `placeholder.pdf` 作为统一å ä½å›¾ï¼Œåœ¨å°šæœªå‡†å¤‡å¥½æ­£å¼å›¾ç‰‡æ—¶ä½¿ç”¨ `\includegraphics{figures/placeholder}` 引用。 diff --git a/docs/project-book/main.tex b/docs/project-book/main.tex deleted file mode 100644 index ac2c116..0000000 --- a/docs/project-book/main.tex +++ /dev/null @@ -1,78 +0,0 @@ -% ============================================================ -% 智æžå诈 - 电信网络诈骗案件å—害人资金核查多智能体系统 -% 全国「智慧+警务ã€AI智能体大赛 项目书 -% ============================================================ - -\input{preamble} - -\begin{document} - -% ------------------------------------------------------------ -% å°é¢ -% ------------------------------------------------------------ -\begin{titlepage} - \centering - \vspace*{2cm} - - % å•ä½ logo å ä½ - % ã€å ä½ï¼šè¯·åœ¨æ­¤å¤„æ’å…¥å•ä½ logo,如 \includegraphics[height=2cm]{logo.png}】 - \vspace{2cm} - - {\LARGE\bfseries 智æžå诈}\\[0.5cm] - {\Large 电信网络诈骗案件å—害人资金核查多智能体系统}\\[1cm] - {\large 多APPè´¦å•æˆªå›¾è‡ªåŠ¨è§£æžã€èµ„金路径分æžä¸Žè¢«éª—金é¢è®¤å®šæ™ºèƒ½ä½“}\\[2cm] - - {\large 项目书}\\[2cm] - - \begin{tabular}{ll} - 申报å•ä½ï¼š & ã€å ä½ï¼šè¯·å¡«å†™ã€‘ \\ - 团队æˆå‘˜ï¼š & ã€å ä½ï¼šè¯·å¡«å†™ã€‘ \\ - å®Œæˆæ—¥æœŸï¼š & \today \\ - \end{tabular} - - \vfill - {\small 全国「智慧+警务ã€AI智能体大赛} -\end{titlepage} - -% ------------------------------------------------------------ -% æ‘˜è¦ -% ------------------------------------------------------------ -\chapter*{摘è¦} -\addcontentsline{toc}{chapter}{摘è¦} - -éšç€ç”µä¿¡ç½‘络诈骗案件æŒç»­é«˜å‘,基层民警在å—害人报案å—ç†ã€èµ„金核查ã€ç¬”录制作过程中,需è¦é¢å¯¹å¤§é‡æ¥è‡ªå¾®ä¿¡ã€æ”¯ä»˜å®ã€é“¶è¡Œå¡ã€çŸ­ä¿¡é€šçŸ¥ç­‰ä¸åŒæ¥æºçš„è´¦å•æˆªå›¾ã€‚现有工作模å¼ä¸»è¦ä¾èµ–人工é€å¼ æŸ¥çœ‹ã€ç™»è®°ã€æ±‡æ€»ã€æŽ’é‡ã€è®¡ç®—,存在效率低ã€é‡å¤ç»Ÿè®¡ã€è®¤å®šä¸ç»Ÿä¸€ã€è¯æ®æ•´ç†è´Ÿæ‹…é‡ç­‰é—®é¢˜ã€‚ - -本项目é¢å‘å—害人资金核查实战,研å‘多智能体ååŒçš„æˆªå›¾è¯æ®è§£æžä¸Žè¢«éª—金é¢è®¤å®šç³»ç»Ÿã€‚系统围绕案件目标,自动完æˆå¤šAPPè´¦å•æˆªå›¾è¯†åˆ«ã€äº¤æ˜“字段抽å–ã€è·¨å¹³å°é‡å¤å…³è”ã€æœ¬äººè´¦æˆ·ä¸­è½¬è¯†åˆ«ã€èµ„金路径分æžã€è¢«éª—金é¢è®¤å®šå’Œè¯æ®åŒ–æŠ¥å‘Šè¾“å‡ºï¼Œå¹¶é€šè¿‡äººå·¥å¤æ ¸æœºåˆ¶ä¿éšœç»“æžœå¯ä¿¡å¯æŽ§ã€‚é¡¹ç›®ä¸æ˜¯å•点OCR工具,而是é¢å‘警务实战的垂直智能体系统,能够显著æå‡èµ„金核查效率ã€è§„范认定标准ã€å‡è½»åŸºå±‚è´Ÿæ‹…ï¼Œå…·å¤‡è¾ƒå¼ºçš„å®žæˆ˜ä»·å€¼ã€æŽ¨å¹¿ä»·å€¼å’Œç¤ºèŒƒæ„义。 - -\vspace{0.5cm} -\noindent\textbf{关键è¯ï¼š}多智能体ååŒï¼›ç”µä¿¡è¯ˆéª—;资金核查;被骗金é¢è®¤å®šï¼›è¯æ®åŒ–输出;人机ååŒ - -% ------------------------------------------------------------ -% 目录 -% ------------------------------------------------------------ -\tableofcontents -\clearpage - -% ------------------------------------------------------------ -% 正文章节 -% ------------------------------------------------------------ -\input{chapters/01-introduction} -\input{chapters/02-background} -\input{chapters/03-demand-analysis} -\input{chapters/04-architecture} -\input{chapters/05-implementation} -\input{chapters/06-innovation} -\input{chapters/07-evaluation} -\input{chapters/08-conclusion} - -% ------------------------------------------------------------ -% 附录 -% ------------------------------------------------------------ -\appendix -\input{chapters/appendix-a-api} -\input{chapters/appendix-b-models} -\input{chapters/appendix-c-figures} -\input{chapters/appendix-d-video} -\input{chapters/appendix-e-qa} - -\end{document} diff --git a/docs/project-book/preamble.tex b/docs/project-book/preamble.tex deleted file mode 100644 index 5b2754c..0000000 --- a/docs/project-book/preamble.tex +++ /dev/null @@ -1,80 +0,0 @@ -% ============================================================ -% 智æžå诈 项目书 - LaTeX 导言区 -% ============================================================ - -% 文档类 -\documentclass[12pt,a4paper]{report} - -% 中文支æŒï¼ˆctex 自动检测系统字体) -\usepackage{ctex} - -% ç‰ˆå¼ -\usepackage[top=2.5cm,bottom=2.5cm,left=2.5cm,right=2.5cm,headheight=14pt]{geometry} -\usepackage{fancyhdr} -\pagestyle{fancy} -\fancyhf{} -\fancyhead[C]{\small 智æžå诈:电信网络诈骗案件å—害人资金核查多智能体系统} -\fancyfoot[C]{\thepage} -\renewcommand{\headrulewidth}{0.4pt} - -% 图表 -\usepackage{graphicx} -\usepackage{float} -\usepackage{caption} -\usepackage{subcaption} -\usepackage{booktabs} -\usepackage{multirow} -\usepackage{longtable} -\graphicspath{{./figures/}{../figures/}} - -% 表格与列表 -\usepackage{array} -\usepackage{multicol} -\usepackage{enumitem} - -% 链接与交å‰å¼•用 -\usepackage{hyperref} -\usepackage{color} -\hypersetup{ - colorlinks=true, - linkcolor=blue, - citecolor=blue, - urlcolor=blue, - pdfstartview=FitH, -} - -% 代ç ï¼ˆå¯é€‰ï¼‰ -\usepackage{listings} -\lstset{ - basicstyle=\ttfamily\small, - breaklines=true, - frame=single, - numbers=left, - numberstyle=\tiny, -} - -% æ•°å­¦ -\usepackage{amsmath} -\usepackage{amssymb} - -% æµç¨‹å›¾ï¼ˆå¯é€‰ï¼‰ -\usepackage{tikz} -\usetikzlibrary{shapes.geometric,arrows.meta,positioning,fit} - -% 自定义命令:å ä½å›¾ -\newcommand{\placeholderfigure}[2]{ - \begin{figure}[H] - \centering - \fbox{\parbox{0.85\textwidth}{ - \centering\vspace{3cm} - ã€å ä½ï¼šè¯·åœ¨æ­¤å¤„æ’å…¥ #2】 - \par\vspace{0.5cm} - \small 建议文件å:#1 - \vspace{3cm} - }} - \caption{#2} - \end{figure} -} - -% 自定义命令:表格å ä½ -\newcommand{\placeholdercell}{\multicolumn{1}{c}{(待补充)}} diff --git a/docs/project-book/tables/.gitkeep b/docs/project-book/tables/.gitkeep deleted file mode 100644 index 8b13789..0000000 --- a/docs/project-book/tables/.gitkeep +++ /dev/null @@ -1 +0,0 @@ - diff --git a/docs/全国“智慧+警务â€AI智能体大赛10页PPT大纲与讲稿.md b/docs/全国“智慧+警务â€AI智能体大赛10页PPT大纲与讲稿.md deleted file mode 100644 index e059ad8..0000000 --- a/docs/全国“智慧+警务â€AI智能体大赛10页PPT大纲与讲稿.md +++ /dev/null @@ -1,324 +0,0 @@ -# 全国“智慧+警务â€AI智能体大赛10页PPT大纲与讲稿 - -## 使用说明 - -本文档é¢å‘比赛路演场景设计,默认控制在 **8-10 分钟** å·¦å³ã€‚ -æ¯é¡µå†…容分为三部分: - -- **本页标题**:建议直接作为 PPT 页标题使用 -- **页é¢å±•示è¦ç‚¹**:建议放在 PPT 上的文字内容 -- **讲稿**:建议现场讲解时å£è¿°çš„内容 - -整体讲述逻辑éµå¾ªï¼š - -**实战痛点 -> 方案æå‡º -> 智能体架构 -> 业务闭环 -> 创新亮点 -> å®žæˆ˜æˆæ•ˆ -> 安全å¯ä¿¡ -> 推广价值** - ---- - -## 第1页 项目å°é¢ä¸Žæ ¸å¿ƒå®šä½ - -### 本页标题 - -**智æžå诈:电信网络诈骗案件å—害人资金核查多智能体系统** - -副标题建议: - -**多APPè´¦å•æˆªå›¾è‡ªåŠ¨è§£æžã€èµ„金路径分æžä¸Žè¢«éª—金é¢è®¤å®šæ™ºèƒ½ä½“** - -### 页é¢å±•示è¦ç‚¹ - -- é¢å‘电信网络诈骗案件å—害人资金核查场景 -- èšç„¦å¤šAPP截图自动识别ã€è·¨å¹³å°å…³è”ã€é‡‘é¢è®¤å®šã€è¯æ®åŒ–输出 -- 项目定ä½ï¼šåž‚直警务智能体系统 -- æ ¸å¿ƒä»·å€¼ï¼šæ›´å¿«ã€æ›´å‡†ã€æ›´è§„èŒƒã€æ›´å¯è¿½æº¯ - -### 讲稿 - -å„ä½è¯„委好,我们带æ¥çš„项目是“智æžå诈:电信网络诈骗案件å—害人资金核查多智能体系统â€ã€‚ - -è¿™ä¸ªé¡¹ç›®æ¥æºäºŽåŸºå±‚派出所电诈案件办ç†ä¸­çš„真实痛点。å—害人往往会æä¾›å¤§é‡å¾®ä¿¡ã€æ”¯ä»˜å®ã€é“¶è¡Œå¡ã€çŸ­ä¿¡é€šçŸ¥ç­‰æˆªå›¾ï¼Œæ°‘警需è¦é€å¼ æŸ¥çœ‹ã€é€ç¬”登记ã€å夿 ¸å¯¹ã€äººå·¥è®¡ç®—被骗金é¢ï¼Œä¸ä»…耗时,而且容易出现é‡å¤ç»Ÿè®¡ã€é—æ¼ç»Ÿè®¡å’Œè®¤å®šå£å¾„ä¸ä¸€è‡´çš„问题。 - -我们è¦è§£å†³çš„ï¼Œä¸æ˜¯å•纯的截图识别问题,而是围绕案件办ç†ç›®æ ‡ï¼Œæž„å»ºä¸€ä¸ªèƒ½å¤Ÿè‡ªåŠ¨å®Œæˆæˆªå›¾è¯æ®è§£æžã€è·¨å¹³å°äº¤æ˜“å…³è”ã€èµ„金路径分æžã€è¢«éª—金é¢è®¤å®šå’Œè¯æ®åŒ–输出的多智能体ååŒç³»ç»Ÿï¼ŒæŠŠä¼ ç»Ÿäººå·¥æ ¸è´¦æ¨¡å¼å‡çº§ä¸ºå¯å¤æ ¸ã€å¯è§£é‡Šã€å¯å‡ºè¯çš„æ™ºèƒ½åŠžæ¡ˆæ¨¡å¼ã€‚ - ---- - -## 第2页 基层实战痛点与传统模å¼ç“¶é¢ˆ - -### 本页标题 - -**基层å诈资金核查é¢ä¸´çš„真实难题** - -### 页é¢å±•示è¦ç‚¹ - -- æˆªå›¾æ¥æºæ‚ï¼šå¾®ä¿¡ã€æ”¯ä»˜å®ã€é“¶è¡Œã€çŸ­ä¿¡ã€æ•°å­—é’±åŒ…æ··æ‚ -- 截图数é‡å¤§ï¼šä¸€æ¡ˆå‡ å张到上百张截图 -- é‡å¤ç»Ÿè®¡é£Žé™©é«˜ï¼šåŒä¸€ç¬”交易跨平å°å¤šæ¬¡å‡ºçް -- ä¸­è½¬æƒ…å½¢å¤æ‚:本人账户过渡ã€å……值æçްã€é€€æ¬¾æ··æ‚ -- 人工整ç†è´Ÿæ‹…é‡ï¼šæ ¸è´¦ã€ç¬”录ã€è¡¨æ ¼ã€æŠ¥å‘Šåå¤é‡å¤åŠ³åŠ¨ -- 认定标准ä¾èµ–ç»éªŒï¼šä¸åŒäººã€ä¸åŒæ¡ˆä»¶å£å¾„ä¸ä¸€è‡´ - -### 讲稿 - -基层民警在办ç†ç”µè¯ˆæ¡ˆä»¶æ—¶ï¼Œä¸€ä¸ªéžå¸¸é«˜é¢‘但åˆéžå¸¸ç¹ç的环节,就是å—害人资金核查。 - -ç¬¬ä¸€ï¼Œæˆªå›¾æ¥æºéžå¸¸æ‚。å—害人æä¾›çš„ä¸åªæ˜¯ä¸€ä¸ªå¹³å°ï¼Œè€Œæ˜¯å¾®ä¿¡ã€æ”¯ä»˜å®ã€é“¶è¡Œå¡æ˜Žç»†ã€çŸ­ä¿¡é€šçŸ¥ï¼Œç”šè‡³è¿˜æœ‰æ•°å­—钱包或者其他支付平å°ã€‚ - -第二,截图数é‡å¾ˆå¤§ã€‚一些案件里,几å张截图是常æ€ï¼Œå¤æ‚一点的案件上百张也很常è§ã€‚ - -第三,é‡å¤ç»Ÿè®¡é£Žé™©éžå¸¸é«˜ã€‚åŒä¸€ç¬”交易,å¯èƒ½åœ¨è½¬è´¦è¯¦æƒ…页出现一次,在账å•列表里出现一次,在银行短信里å†å‡ºçŽ°ä¸€æ¬¡ã€‚å¦‚æžœå…¨é äººå·¥æ ¸å¯¹ï¼Œæžæ˜“é‡å¤ç´¯è®¡ã€‚ - -第四,本人账户中转ã€è‡ªå……ã€é€€æ¬¾ã€æ­£å¸¸æ¶ˆè´¹ç­‰æƒ…形夹æ‚其中,哪些该算被骗金é¢ï¼Œå“ªäº›åº”该排除,既考验ç»éªŒï¼Œä¹Ÿå®¹æ˜“出错。 - -第五,核账完æˆä»¥åŽï¼Œæ°‘è­¦è¿˜è¦æŠŠç»“æžœç»§ç»­æ•´ç†åˆ°ç¬”录ã€è¡¨æ ¼å’ŒæŠ¥å‘Šä¸­ï¼Œé‡å¤åŠ³åŠ¨éžå¸¸é‡ã€‚ - -所以,这个场景本质上是一个高频ã€åˆšéœ€ã€è€—æ—¶ã€æ˜“错的典型基层警务难题。 - ---- - -## 第3页 项目目标与总体解决æ€è·¯ - -### 本页标题 - -**从“人工翻截图â€åˆ°â€œæ™ºèƒ½ä½“闭环核查â€** - -### 页é¢å±•示è¦ç‚¹ - -- ç›®æ ‡ä¸æ˜¯è¯†åˆ«æˆªå›¾ï¼Œè€Œæ˜¯è®¤å®šè¢«éª—é‡‘é¢ -- å»ºç«‹â€œæˆªå›¾è¯æ®è§£æž -> 交易结构化 -> å…³è”åˆ†æž -> è®¤å®šå¤æ ¸ -> 报告输出â€é—­çޝ -- 以案件目标驱动,ä¸ä»¥å•点功能驱动 -- ä¿ç•™äººå·¥æœ€ç»ˆç¡®è®¤æƒï¼Œæž„建人机ååŒæ¨¡å¼ - -### 讲稿 - -针对上述痛点,我们æå‡ºçš„æ€»ä½“æ€è·¯æ˜¯ï¼ŒæŠŠé›¶æ•£çš„æˆªå›¾å¤„ç†åŠ¨ä½œï¼Œé‡æž„æˆä¸€æ¡å›´ç»•案件目标è¿è¡Œçš„æ™ºèƒ½å·¥ä½œæµã€‚ - -è¿™æ¡å·¥ä½œæµçš„æ ¸å¿ƒä¸æ˜¯â€œçœ‹æ‡‚一张图â€ï¼Œè€Œæ˜¯å›žç­”一个执法层é¢çš„关键问题,也就是:哪些交易å¯ä»¥è®¤å®šä¸ºè¢«éª—金é¢ï¼Œè¯æ®åœ¨å“ªé‡Œï¼Œç†ç”±æ˜¯ä»€ä¹ˆã€‚ - -因此,我们将整个æµç¨‹è®¾è®¡ä¸ºäº”ä¸ªè¿žç»­é˜¶æ®µã€‚é¦–å…ˆæ˜¯æˆªå›¾è¯æ®è§£æžï¼Œå…¶æ¬¡æ˜¯äº¤æ˜“结构化抽å–ï¼Œç„¶åŽæ˜¯è·¨å¹³å°å…³è”和资金路径分æžï¼Œå†å¾€åŽæ˜¯è¢«éª—金é¢è®¤å®šå’Œäººå·¥å¤æ ¸ï¼Œæœ€åŽè¾“出能够直接æœåŠ¡åŠžæ¡ˆçš„æ±‡æ€»è¡¨ã€é—®è¯¢å»ºè®®å’Œè¯æ®åŒ–报告。 - -è¿™æ„味ç€é¡¹ç›®ä»Žä¸€å¼€å§‹å°±ä¸æ˜¯ä¸€ä¸ªå•点工具,而是一个é¢å‘案件办ç†é—­çŽ¯çš„è­¦åŠ¡æ™ºèƒ½ä½“ç³»ç»Ÿã€‚åŒæ—¶æˆ‘们强调,人机ååŒè€Œä¸æ˜¯å…¨è‡ªåŠ¨æ›¿ä»£ï¼ŒAI负责高强度ã€é«˜é‡å¤å·¥ä½œï¼Œæ°‘è­¦ä¿ç•™æœ€ç»ˆç¡®è®¤æƒã€‚ - ---- - -## 第4页 多智能体ååŒæž¶æž„ - -### 本页标题 - -**多智能体分工å作,围绕案件目标æŒç»­è¡ŒåЍ** - -### 页é¢å±•示è¦ç‚¹ - -- 案件编排智能体:统一规划与调度 -- 截图ç†è§£æ™ºèƒ½ä½“:识别APPã€é¡µé¢ç±»åž‹ã€æœ‰æ•ˆæ€§ -- äº¤æ˜“æŠ½å–æ™ºèƒ½ä½“:æå–标准化交易字段 -- 跨平å°å…³è”智能体:识别é‡å¤äº¤æ˜“与映射关系 -- èµ„é‡‘è·¯å¾„åˆ†æžæ™ºèƒ½ä½“:识别本人账户中转和æµè½¬é“¾è·¯ -- 被骗金é¢è®¤å®šæ™ºèƒ½ä½“ï¼šè¿›è¡Œçº³å…¥ã€æŽ’é™¤ã€å¾…夿 ¸åˆ¤æ–­ -- æ–‡ä¹¦ç”Ÿæˆæ™ºèƒ½ä½“ï¼šè¾“å‡ºé—®è¯¢å»ºè®®å’Œè¯æ®åŒ–报告 -- äººå·¥å¤æ ¸ååŒæ™ºèƒ½ä½“:承接低置信和争议记录 - -### 讲稿 - -本项目的核心创新之一,就是采用多智能体ååŒï¼Œè€Œä¸æ˜¯è®©ä¸€ä¸ªæ¨¡åž‹å®Œæˆæ‰€æœ‰ä»»åŠ¡ã€‚ - -最上层是案件编排智能体,它围绕案件目标进行任务规划和æµç¨‹è°ƒåº¦ã€‚它知é“当剿¡ˆä»¶è¿›è¡Œåˆ°å“ªä¸€æ­¥ï¼Œä¹ŸçŸ¥é“什么时候应该调用识别能力,什么时候应该进入关è”分æžï¼Œä»€ä¹ˆæ—¶å€™åº”è¯¥æŠŠç»“æžœäº¤ç”±äººå·¥å¤æ ¸ã€‚ - -在它下é¢ï¼Œæ˜¯å¤šä¸ªèŒè´£æ¸…晰的专业智能体。截图ç†è§£æ™ºèƒ½ä½“负责判断这张图æ¥è‡ªå“ªä¸ªAPPã€å±žäºŽè´¦å•åˆ—è¡¨è¿˜æ˜¯è¯¦æƒ…é¡µï¼›äº¤æ˜“æŠ½å–æ™ºèƒ½ä½“è´Ÿè´£æŠŠæˆªå›¾è½¬æ¢æˆæ ‡å‡†åŒ–交易记录;跨平å°å…³è”智能体负责识别åŒä¸€ç¬”交易在ä¸åŒå¹³å°å’Œä¸åŒæˆªå›¾ä¸­çš„é‡å¤å‘ˆçŽ°ï¼›èµ„é‡‘è·¯å¾„åˆ†æžæ™ºèƒ½ä½“负责识别本人账户中转和链路节点;被骗金é¢è®¤å®šæ™ºèƒ½ä½“è´Ÿè´£åšçº³å…¥ã€æŽ’é™¤å’Œå¾…å¤æ ¸åˆ¤æ–­ï¼›æœ€åŽç”±æ–‡ä¹¦ç”Ÿæˆæ™ºèƒ½ä½“输出å¯ç›´æŽ¥ç”¨äºŽåŠžæ¡ˆçš„ç»“æžœã€‚ - -当系统é‡åˆ°ä½Žç½®ä¿¡æˆ–äº‰è®®æƒ…å†µæ—¶ï¼Œäººå·¥å¤æ ¸ååŒæ™ºèƒ½ä½“会把最值得关注的问题æäº¤ç»™æ°‘警确认,形æˆå®Œæ•´é—­çŽ¯ã€‚ - ---- - -## 第5页 核心业务æµç¨‹æ¼”示 - -### 本页标题 - -**一个案件如何在系统中跑完整个闭环** - -### 页é¢å±•示è¦ç‚¹ - -å»ºè®®è¿™ä¸€é¡µé…æµç¨‹å›¾ï¼š - -- 新建案件 -- 批é‡ä¸Šä¼ å¤šAPP截图 -- è‡ªåŠ¨è¯†åˆ«æˆªå›¾æ¥æºå’Œé¡µé¢ç±»åž‹ -- 自动抽å–交易时间ã€é‡‘é¢ã€æ–¹å‘ã€å¯¹æ‰‹æ–¹ã€è®¢å•å·ç­‰å­—段 -- 自动去é‡ã€èšç±»ã€è¯†åˆ«æœ¬äººè´¦æˆ·ä¸­è½¬ -- 自动生æˆèµ„金路径和被骗金é¢åˆåˆ¤ -- æ°‘è­¦å¯¹ä½Žç½®ä¿¡è®°å½•è¿›è¡Œå¤æ ¸ -- 一键导出汇总表ã€é—®è¯¢å»ºè®®ã€è¯æ®åŒ–报告 - -### 讲稿 - -这一页建议用一个案件跑通全æµç¨‹ï¼Œå‘评委展示系统的闭环能力。 - -首先,民警新建案件并上传å—害人æä¾›çš„多APP截图。系统接收到截图åŽï¼Œä¼šè‡ªåŠ¨åˆ¤æ–­æˆªå›¾æ¥æºå’Œé¡µé¢ç±»åž‹ï¼Œè¯†åˆ«å“ªäº›æ˜¯æœ‰æ•ˆè´¦å•截图,哪些å¯èƒ½æ˜¯æ— æ•ˆæˆ–é‡å¤æˆªå›¾ã€‚ - -接下æ¥ï¼Œç³»ç»Ÿä¼šå¯¹æœ‰æ•ˆæˆªå›¾è¿›è¡Œç»“构化抽å–,把交易时间ã€é‡‘é¢ã€æ”¶æ”¯æ–¹å‘ã€å¯¹æ‰‹æ–¹åç§°ã€è®¢å•å·ã€å¤‡æ³¨ç­‰å­—段统一标准化。标准化以åŽï¼Œç³»ç»Ÿå¼€å§‹åšè·¨å¹³å°åŒ¹é…和去é‡ï¼Œé¿å…åŒä¸€ç¬”交易é‡å¤ç´¯è®¡ï¼ŒåŒæ—¶è¯†åˆ«æœ¬äººè´¦æˆ·ä¸­è½¬ç­‰ä¸åº”直接计入被骗金é¢çš„æƒ…形。 - -ç„¶åŽï¼Œç³»ç»Ÿä¼šè¾“出被骗金é¢åˆåˆ¤ç»“果,并把结果按高ã€ä¸­ã€ä½Žç½®ä¿¡åº¦åˆ†å±‚展示。民警åªéœ€è¦é‡ç‚¹å¤æ ¸ä½Žç½®ä¿¡å’Œäº‰è®®è®°å½•,而ä¸å¿…ä»Žå¤´é€æ¡æ ¸ç®—。最åŽï¼Œç³»ç»Ÿå¯ä»¥ä¸€é”®å¯¼å‡ºè¢«éª—金颿±‡æ€»è¡¨ã€ç¬”å½•è¾…åŠ©é—®è¯¢å»ºè®®ä»¥åŠ Wordã€Excelã€PDF 报告,实现从截图到文书的完整办案闭环。 - ---- - -## 第6页 核心创新点 - -### 本页标题 - -**项目的四个核心创新** - -### 页é¢å±•示è¦ç‚¹ - -- 创新一:多智能体ååŒï¼Œä¸æ˜¯å•模型问答 -- 创新二:跨平å°é‡å¤äº¤æ˜“自动关è”ä¸ŽåŽ»é‡ -- 创新三:围绕执法需求的被骗金é¢è®¤å®šä¸Žç†ç”±ç”Ÿæˆ -- åˆ›æ–°å››ï¼šä»Žæˆªå›¾è¯†åˆ«ç›´è¾¾è¯æ®åŒ–报告输出 - -### 讲稿 - -如果从比赛评审视角总结,这个项目至少有四个核心创新点。 - -第一,是多智能体ååŒåˆ›æ–°ã€‚æˆ‘ä»¬ä¸æ˜¯åšä¸€ä¸ªæç¤ºè¯å¾ˆé•¿çš„大模型问答,而是把截图ç†è§£ã€äº¤æ˜“抽å–ã€å…³è”分æžã€è®¤å®šåˆ¤æ–­ã€æ–‡ä¹¦ç”Ÿæˆæ‹†æˆå¤šä¸ªä¸“ä¸šæ™ºèƒ½ä½“ï¼Œç”±ç¼–æŽ’æ™ºèƒ½ä½“ç»Ÿä¸€è°ƒåº¦ã€‚è¿™ç§æ–¹å¼æ›´ç¨³å®šã€æ›´å¯è§£é‡Šï¼Œä¹Ÿæ›´ç¬¦åˆè­¦åŠ¡åœºæ™¯å¯ç®¡å¯æŽ§çš„è¦æ±‚。 - -第二,是跨平å°èµ„é‡‘è¯æ®å…³è”创新。系统能够识别åŒä¸€ç¬”交易在ä¸åŒAPPã€ä¸åŒæˆªå›¾ä¸­çš„é‡å¤è¡¨è¾¾å…³ç³»ï¼Œé¿å…é‡å¤ç»Ÿè®¡ï¼Œè¿™æ˜¯åŸºå±‚实战中æžå…·ä»·å€¼çš„能力。 - -第三,是被骗金é¢è®¤å®šåˆ›æ–°ã€‚很多系统åªèƒ½åšåˆ°æµæ°´è¯†åˆ«ï¼Œä½†æˆ‘们进一步把输出æå‡ä¸ºæ‰§æ³•层é¢çš„è®¤å®šç»“è®ºï¼ŒåŒ…æ‹¬çº³å…¥ã€æŽ’é™¤ã€å¾…夿 ¸ä¸‰ç±»ç»“果,并给出æ¯ç¬”交易的认定ç†ç”±å’ŒæŽ’除便®ã€‚ - -ç¬¬å››ï¼Œæ˜¯è¯æ®åŒ–è¾“å‡ºåˆ›æ–°ã€‚ç³»ç»Ÿæœ€ç»ˆè¾“å‡ºçš„ä¸æ˜¯ä¸€å¥ç»“è®ºï¼Œè€Œæ˜¯å¸¦æœ‰æ¥æºæˆªå›¾ã€ç»“构化字段ã€è®¤å®šè¯´æ˜Žå’Œå¤æ ¸çжæ€çš„å¯å¯¼å‡ºæŠ¥å‘Šï¼Œèƒ½å¤Ÿç›´æŽ¥æœåŠ¡ç¬”å½•åˆ¶ä½œå’Œæ¡ˆä»¶ææ–™æ•´ç†ã€‚ - ---- - -## 第7页 为什么这是真正的AI智能体 - -### 本页标题 - -**本项目符åˆAI智能体的五个核心特å¾** - -### 页é¢å±•示è¦ç‚¹ - -- 目标导å‘:目标是被骗金é¢è®¤å®šï¼Œä¸æ˜¯å•纯识图 -- 环境感知:ç†è§£å¤šAPPã€å¤šé¡µé¢ã€å¤šè¯æ®è½½ä½“输入 -- 规划执行:完æˆåˆ†ç±»ã€æŠ½å–ã€åŽ»é‡ã€åˆ†æžã€è®¤å®šã€è¾“出 -- 工具调用:调用OCRã€è§„åˆ™å¼•æ“Žã€æ•°æ®åº“ã€æŠ¥å‘Šå¼•æ“Ž -- åé¦ˆé—­çŽ¯ï¼šä½Žç½®ä¿¡ç»“æžœè¿›å…¥äººå·¥å¤æ ¸ä¸Žä¿®æ­£ - -### 讲稿 - -这一页是答辩时éžå¸¸å…³é”®çš„ä¸€é¡µï¼Œå› ä¸ºå¾ˆå¤šè¯„å§”éƒ½ä¼šé—®ä¸€ä¸ªé—®é¢˜ï¼šä½ è¿™ä¸ªé¡¹ç›®ä¸ºä»€ä¹ˆå«æ™ºèƒ½ä½“,而ä¸åªæ˜¯ä¸€ä¸ªç”¨äº†å¤§æ¨¡åž‹çš„软件。 - -我们的回答很明确。第一,它是目标导å‘çš„ï¼Œç³»ç»Ÿä¸æ˜¯ä¸ºè¯†åˆ«è€Œè¯†åˆ«ï¼Œè€Œæ˜¯å›´ç»•“被骗金é¢è®¤å®šâ€è¿™ä¸€æ¡ˆä»¶ç›®æ ‡æŒç»­è¡ŒåŠ¨ã€‚ç¬¬äºŒï¼Œå®ƒå…·å¤‡çŽ¯å¢ƒæ„ŸçŸ¥èƒ½åŠ›ï¼Œèƒ½å¤Ÿç†è§£æ¥è‡ªä¸åŒAPPã€ä¸åŒé¡µé¢ç±»åž‹ã€ä¸åŒè¯æ®è½½ä½“的输入信æ¯ã€‚第三,它会åšè§„åˆ’å’Œæ‰§è¡Œï¼ŒæŠŠå¤æ‚任务拆分æˆåˆ†ç±»ã€æŠ½å–ã€å…³è”ã€æŽ¨ç†ã€è¾“出等多个步骤。第四,它会调用工具,ä¸åªæ˜¯ç”Ÿæˆæ–‡å­—,而是è¦è°ƒç”¨OCRã€å¤šæ¨¡æ€æ¨¡åž‹ã€è§„åˆ™å¼•æ“Žã€æ•°æ®åº“和报表组件。第五,它具备å馈闭环,低置信结果ä¸ä¼šç›´æŽ¥å½“æˆç»“è®ºï¼Œè€Œæ˜¯è¿›å…¥äººå·¥å¤æ ¸ã€‚ - -å› æ­¤ï¼Œæœ¬é¡¹ç›®æœ¬è´¨ä¸Šä¸æ˜¯â€œè®©æ¨¡åž‹å›žç­”问题â€ï¼Œè€Œæ˜¯è®©æ™ºèƒ½ä½“围绕案件目标æŒç»­è°ƒåº¦èƒ½åŠ›ã€å®Œæˆè¯æ®æ ¸æŸ¥é—­çŽ¯ã€‚ - ---- - -## 第8页 å®žæˆ˜åº”ç”¨æˆæ•ˆä¸Žä»·å€¼ - -### 本页标题 - -**å¯¹åŸºå±‚æ°‘è­¦ã€æ¡ˆä»¶åŠžç†ã€æ™ºæ…§è­¦åŠ¡çš„ä¸‰é‡ä»·å€¼** - -### 页é¢å±•示è¦ç‚¹ - -- 对基层民警:å‡è´Ÿå¢žæ•ˆï¼Œå‡å°‘机械性核账劳动 -- 对案件办ç†ï¼šæå‡è®¤å®šè§„范性ã€å®Œæ•´æ€§ã€å¯è§£é‡Šæ€§ -- 对智慧警务:形æˆå¯å¤åˆ¶ã€å¯æŽ¨å¹¿çš„è­¦åŠ¡æ™ºèƒ½ä½“èŒƒå¼ -- å…¸åž‹æˆæ•ˆè¡¨è¾¾ï¼š -- 核查时间显著压缩 -- é‡å¤ç»Ÿè®¡é£Žé™©æ˜Žæ˜¾ä¸‹é™ -- æ°‘è­¦ä»Žå…¨é‡æ ¸å¯¹è½¬å‘é‡ç‚¹å¤æ ¸ -- æ–‡ä¹¦æ•´ç†æ•ˆçŽ‡æ˜Žæ˜¾æå‡ - -### 讲稿 - -从应用价值看,这个项目至少有三层æ„义。 - -第一,对基层民警æ¥è¯´ï¼Œå®ƒç›´æŽ¥è§£å†³äº†é«˜é¢‘ã€é‡å¤ã€æœºæ¢°çš„æˆªå›¾æ ¸è´¦å·¥ä½œã€‚è¿‡åŽ»å¤§é‡æ—¶é—´è€—在翻截图ã€è®°æµæ°´ã€å¯¹è¡¨æ ¼ï¼ŒçŽ°åœ¨å¯ä»¥æŠŠè¿™äº›å·¥ä½œäº¤ç»™ç³»ç»Ÿè‡ªåŠ¨å®Œæˆï¼Œæ°‘è­¦åªéœ€è¦æŠŠç²¾åŠ›æ”¾åœ¨é‡ç‚¹å¤æ ¸å’Œæ¡ˆä»¶åˆ¤æ–­ä¸Šã€‚ - -ç¬¬äºŒï¼Œå¯¹æ¡ˆä»¶åŠžç†æ¥è¯´ï¼Œå®ƒæå‡çš„æ˜¯è®¤å®šè§„范性。系统会对æ¯ç¬”äº¤æ˜“ç»™å‡ºæ¥æºã€å­—段ã€ç†ç”±å’Œçжæ€ï¼Œå‡å°‘å£å¾„ä¸ç»Ÿä¸€ã€é‡å¤ç´¯è®¡å’Œé—æ¼ç»Ÿè®¡çš„æƒ…况,使被骗金é¢è®¤å®šæ›´åŠ å®Œæ•´ã€å¯è§£é‡Šã€å¯è¿½æº¯ã€‚ - -第三,对智慧警务æ¥è¯´ï¼Œè¿™ä¸ä»…是一个场景应用,更是一ç§è­¦åŠ¡æ™ºèƒ½ä½“å»ºè®¾èŒƒå¼ã€‚å®ƒè¯æ˜ŽAIä¸åªæ˜¯è¾…助问答,而是å¯ä»¥è¿›å…¥æ¡ˆä»¶å¤„ç†é—­çŽ¯ï¼Œæ‰¿æŽ¥çœŸå®žä¸šåŠ¡ç›®æ ‡ï¼Œå½¢æˆå¯å¤åˆ¶ã€å¯æŽ¨å¹¿çš„实战能力。 - -如果现场å…许,这一页也å¯ä»¥è¡¥å……阶段性效果数æ®ï¼Œä¾‹å¦‚核查耗时压缩比例ã€é‡å¤è¯†åˆ«å‡†ç¡®çŽ‡ã€æ°‘警满æ„度等,让说æœåŠ›æ›´å¼ºã€‚ - ---- - -## 第9页 安全å¯ä¿¡ä¸ŽäººæœºååŒæœºåˆ¶ - -### 本页标题 - -**åšæŒå¯è§£é‡Šã€å¯å¤æ ¸ã€å¯è¿½æº¯çš„警务AI原则** - -### 页é¢å±•示è¦ç‚¹ - -- ä¸è¿½æ±‚黑箱全自动,强调人机ååŒ -- 高/中/低置信分层,低置信结果主动æäº¤äººå·¥å¤æ ¸ -- æ¯ç¬”认定å¯è¿½æº¯è‡³åŽŸå§‹æˆªå›¾å’Œç»“æž„åŒ–å­—æ®µ -- ä¿ç•™è®¤å®šç†ç”±ã€æŽ’除便®ã€å¤æ ¸è®°å½•ã€ç‰ˆæœ¬å¿«ç…§ -- æ”¯æŒæŒ‰æ¡ˆç®¡ç†ã€æƒé™æŽ§åˆ¶ã€æœ¬åœ°åŒ–或专网部署 - -### 讲稿 - -在警务场景里,系统好ä¸å¥½ï¼Œä¸åªçœ‹æ™ºèƒ½ä¸æ™ºèƒ½ï¼Œæ›´è¦çœ‹æ˜¯å¦å¯ä¿¡ã€æ˜¯å¦å¯æŽ§ã€æ˜¯å¦ç»å¾—èµ·å¤æ ¸ã€‚ - -所以我们从设计之åˆå°±æ²¡æœ‰è¿½æ±‚黑箱å¼å…¨è‡ªåŠ¨ï¼Œè€Œæ˜¯å¼ºè°ƒäººæœºååŒã€‚系统会对结果进行置信度分层,把低置信和争议记录主动交给民警确认,确ä¿ä¸æŠŠä¸ç¡®å®šç»“论伪装æˆç¡®å®šç»“论。 - -åŒæ—¶ï¼Œç³»ç»Ÿå¯¹æ¯ä¸€ç¬”交易都ä¿ç•™åŽŸå§‹æˆªå›¾æ¥æºã€ç»“构化抽å–字段ã€è®¤å®šç†ç”±ã€æŽ’除便®å’Œäººå·¥ä¿®æ­£è®°å½•,形æˆå¯å›žæº¯çš„è¯æ®é“¾ã€‚对导出的报告,还å¯ä»¥ä¿ç•™ç‰ˆæœ¬å¿«ç…§ï¼Œä¿è¯å‰åŽå£å¾„一致。 - -在部署层é¢ï¼Œç³»ç»Ÿæ”¯æŒæŒ‰æ¡ˆç®¡ç†ã€æƒé™æŽ§åˆ¶ï¼Œä¹Ÿæ”¯æŒæœ¬åœ°åŒ–或专网化部署方å‘,符åˆè­¦åŠ¡æ•°æ®å®‰å…¨å’Œåº”用åˆè§„è¦æ±‚。 - ---- - -## 第10页 æ€»ç»“ä¸ŽæŽ¨å¹¿å‰æ™¯ - -### 本页标题 - -**让AI真正进入警务业务闭环** - -### 页é¢å±•示è¦ç‚¹ - -- é¡¹ç›®æ¥æºäºŽåŸºå±‚真实痛点,具有强实战价值 -- é¡¹ç›®ä¸æ˜¯OCR工具,而是多智能体警务系统 -- 项目实现了从截图到认定å†åˆ°æ–‡ä¹¦çš„å…¨æµç¨‹é—­çޝ -- å¯å‘å诈中心ã€åˆ‘侦ã€ç»ä¾¦ç­‰æ¶‰æ¡ˆèµ„金场景推广 -- 结æŸå£å·å»ºè®®ï¼š -- è®©æˆªå›¾è¯æ®è‡ªå·±å¼€å£ï¼Œè®©è¢«éª—金é¢è®¤å®šæ›´å¿«æ›´å‡† - -### 讲稿 - -æœ€åŽæ€»ç»“ä¸€ä¸‹ï¼Œè¿™ä¸ªé¡¹ç›®æœ€æ ¸å¿ƒçš„ä»·å€¼ï¼Œä¸æ˜¯æŠŠæˆªå›¾è¯†åˆ«å‡ºæ¥ï¼Œè€Œæ˜¯æŠŠåŸºå±‚民警在电诈案件中最ç¹çã€æœ€æ˜“é”™ã€æœ€ä¾èµ–ç»éªŒçš„èµ„é‡‘æ ¸æŸ¥å·¥ä½œï¼Œé‡æž„为一个由多智能体ååŒå®Œæˆã€ç”±æ°‘è­¦æœ€ç»ˆå¤æ ¸æŠŠå…³ã€å¹¶èƒ½å¤Ÿç›´æŽ¥å½¢æˆè¯æ®ææ–™çš„æ™ºèƒ½åŠžæ¡ˆç³»ç»Ÿã€‚ - -å®ƒæ¥æºäºŽåŸºå±‚çœŸå®žéœ€æ±‚ï¼Œè§£å†³çš„æ˜¯ä¸€çº¿é«˜é¢‘åˆšéœ€é—®é¢˜ï¼›å®ƒä¸æ˜¯å•点OCR,而是围绕案件目标è¿è¡Œçš„è­¦åŠ¡æ™ºèƒ½ä½“ï¼›å®ƒä¸æ˜¯ç»™å‡ºä¸€ä¸ªæ¨¡ç³Šç­”案,而是形æˆå¯è§£é‡Šã€å¯å¤æ ¸ã€å¯è¿½æº¯ã€å¯å¯¼å‡ºçš„办案结果。 - -未æ¥ï¼Œè¿™å¥—能力ä¸ä»…å¯ä»¥æœåŠ¡ç”µä¿¡è¯ˆéª—å—害人资金核查,还å¯ä»¥å‘å诈中心ã€åˆ‘侦ã€ç»ä¾¦ä»¥åŠå…¶ä»–涉案资金分æžåœºæ™¯æŽ¨å¹¿åº”ç”¨ï¼Œå½¢æˆæ›´å¤§èŒƒå›´çš„æ™ºæ…§è­¦åŠ¡å®žæˆ˜ä»·å€¼ã€‚ - -我们的目标,是让AIä¸åªåœç•™åœ¨å±•示层,而是真正进入警务业务闭环。谢谢å„ä½è¯„委。 - ---- - -## 附:路演表达技巧建议 - -### 1. 时间分é…建议 - -- 第1页:40ç§’ -- 第2页:60ç§’ -- 第3页:50ç§’ -- 第4页:70ç§’ -- 第5页:70ç§’ -- 第6页:70ç§’ -- 第7页:60ç§’ -- 第8页:60ç§’ -- 第9页:50ç§’ -- 第10页:40ç§’ - -总计约 9 分钟。 - -### 2. 讲解时è¦åå¤å¼ºè°ƒçš„三å¥è¯ - -- æˆ‘ä»¬è§£å†³çš„ä¸æ˜¯OCR识图问题,而是被骗金é¢è®¤å®šé—®é¢˜ã€‚ -- æˆ‘ä»¬ä¸æ˜¯å•模型问答,而是多智能体围绕案件目标ååŒå·¥ä½œã€‚ -- æˆ‘ä»¬è¾“å‡ºçš„ä¸æ˜¯ä¸€ä¸ªç­”案,而是一套å¯å¤æ ¸ã€å¯è¿½æº¯ã€å¯å½¢æˆæ–‡ä¹¦çš„è¯æ®ç»“果。 - -### 3. 如果评委åªè®°ä½ä¸€å¥è¯ï¼Œå»ºè®®è®©ä»–è®°ä½ - -**把“人工翻截图ã€äººå·¥ç®—金é¢ã€äººå·¥å†™ç†ç”±â€çš„传统核账模å¼ï¼Œå‡çº§ä¸ºâ€œå¤šæ™ºèƒ½ä½“è‡ªåŠ¨æ ¸æŸ¥ã€æ°‘è­¦é‡ç‚¹å¤æ ¸ã€ç³»ç»Ÿä¸€é”®å‡ºè¯â€çš„æ–°åž‹è­¦åŠ¡å·¥ä½œæµã€‚** - diff --git a/docs/全国“智慧+警务â€AI智能体大赛å‚赛方案.md b/docs/全国“智慧+警务â€AI智能体大赛å‚赛方案.md deleted file mode 100644 index fd430c2..0000000 --- a/docs/全国“智慧+警务â€AI智能体大赛å‚赛方案.md +++ /dev/null @@ -1,675 +0,0 @@ -# 全国“智慧+警务â€AI智能体大赛å‚赛方案 - -## 一ã€é¡¹ç›®å®šä½ - -### 1. 项目å称建议 - -**智æžå诈:电信网络诈骗案件å—害人资金核查多智能体系统** - -å¯é€‰å‰¯æ ‡é¢˜ï¼š - -- 多APPè´¦å•æˆªå›¾è‡ªåŠ¨è§£æžä¸Žè¢«éª—金é¢è®¤å®šæ™ºèƒ½ä½“ -- é¢å‘åè¯ˆå®žæˆ˜çš„æˆªå›¾è¯æ®è§£æžã€èµ„金路径分æžä¸Žè¯æ®åŒ–è¾“å‡ºå¹³å° -- å—害人资金核查场景下的警务ååŒæ™ºèƒ½ä½“系统 - -### 2. 一å¥è¯ä»‹ç» - -本项目é¢å‘电信网络诈骗案件å—å®³äººèµ„é‡‘æ ¸æŸ¥åœºæ™¯ï¼Œæž„å»ºâ€œæˆªå›¾è¯æ®è§£æž + 多平å°è´¦å•å…³è” + èµ„é‡‘è·¯å¾„åˆ†æž + 被骗金é¢è®¤å®š + è¯æ®åŒ–输出â€çš„多智能体ååŒç³»ç»Ÿï¼Œå°†åŸºå±‚民警高频ã€ç¹çã€æ˜“错的人工核账æµç¨‹ï¼Œå‡çº§ä¸ºå¯è¿½æº¯ã€å¯å¤æ ¸ã€å¯å‡ºå…·æ–‡ä¹¦çš„æ™ºèƒ½åŠžæ¡ˆæµç¨‹ã€‚ - -### 3. å‚èµ›æ ¸å¿ƒå®šä½ - -从比赛评审视角,本项目ä¸èƒ½åªåŒ…装æˆâ€œOCRè¯†åˆ«å·¥å…·â€æˆ–“报表生æˆç³»ç»Ÿâ€ï¼Œè€Œåº”明确定ä½ä¸ºï¼š - -**以案件目标为牵引ã€ä»¥è¯æ®é“¾é—­çŽ¯ä¸ºæ ¸å¿ƒã€ä»¥äººæœºååŒå¤æ ¸ä¸ºä¿éšœçš„垂直警务智能体系统。** - -这一定义éžå¸¸å…³é”®ï¼Œå› ä¸ºè¯„审专家对“AI智能体â€çš„关注点,ä¸åœ¨äºŽæ˜¯å¦ç”¨äº†å¤§æ¨¡åž‹ï¼Œè€Œåœ¨äºŽæ˜¯å¦å…·å¤‡ï¼š - -- 明确目标驱动,而éžå•点识别 -- 多步骤自主ååŒï¼Œè€Œéžå•轮问答 -- å¯è°ƒç”¨å·¥å…·ä¸Žè§„则,而éžçº¯æ–‡æœ¬ç”Ÿæˆ -- é¢å‘çœŸå®žä¸šåŠ¡é—­çŽ¯ï¼Œè€Œéžæ¦‚念演示 -- å¯å®¡è®¡ã€å¯è§£é‡Šã€å¯å¤æ ¸ï¼Œè€Œéžâ€œé»‘箱结论†- -## 二ã€ä»Žä¸“家级评审视角看,本项目的真正亮点 - -### 1. 䏿˜¯â€œè¯†å›¾â€ï¼Œè€Œæ˜¯â€œå›´ç»•案件目标的任务闭环†- -传统OCR产å“解决的是“看懂一张图â€ï¼Œè€ŒåŸºå±‚å诈场景真正è¦è§£å†³çš„æ˜¯ï¼š - -- å—害人æä¾›äº†å‡ å张甚至上百张ä¸åŒAPP截图 -- åŒä¸€ç¬”资金å¯èƒ½è·¨å¾®ä¿¡ã€æ”¯ä»˜å®ã€é“¶è¡Œå¡ã€çŸ­ä¿¡é€šçŸ¥ç­‰å¤šä¸ªè½½ä½“é‡å¤å‡ºçް -- å…¶ä¸­å¤¹æ‚æœ¬äººè´¦æˆ·ä¸­è½¬ã€é€€æ¬¾ã€å……值ã€ç”Ÿæ´»æ¶ˆè´¹ã€æ— å…³æµæ°´ -- 民警最终必须回答一个执法问题:**哪些钱å¯ä»¥è®¤å®šä¸ºè¢«éª—金é¢ï¼Œç†ç”±æ˜¯ä»€ä¹ˆï¼Œè¯æ®åœ¨å“ªé‡Œ** - -å› æ­¤ï¼Œé¡¹ç›®çš„æ ¸å¿ƒä¸æ˜¯å›¾åƒè¯†åˆ«èƒ½åŠ›ï¼Œè€Œæ˜¯**以“被骗金é¢è®¤å®šâ€è¿™ä¸€æ‰§æ³•目标为中心的智能体任务闭环**。这天然符åˆé«˜æ°´å¹³AI智能体项目的评审标准。 - -### 2. 䏿˜¯â€œä¸€ä¸ªå¤§æ¨¡åž‹â€ï¼Œè€Œæ˜¯â€œå¤šæ™ºèƒ½ä½“分工å作†- -项目最有竞争力的点,是å¯ä»¥æ¸…晰拆解为多个具备独立èŒè´£çš„专业智能体,由编排智能体统一调度,形æˆç¬¦åˆåŠžæ¡ˆé€»è¾‘çš„ååŒé“¾è·¯ã€‚ - -建议在å‚èµ›ææ–™ä¸­æ˜Žç¡®é‡‡ç”¨å¦‚下表述: - -- **案件编排智能体**ï¼šæŽ¥æ”¶æ¡ˆä»¶ç›®æ ‡ï¼Œè§„åˆ’å¤„ç†æ­¥éª¤ï¼Œè°ƒåº¦å„å­æ™ºèƒ½ä½“ -- **截图ç†è§£æ™ºèƒ½ä½“**:识别截图所属APPã€é¡µé¢ç±»åž‹ã€æˆªå›¾æœ‰æ•ˆæ€§ -- **äº¤æ˜“æŠ½å–æ™ºèƒ½ä½“**ï¼šå°†è´¦å•æˆªå›¾è§£æžä¸ºæ ‡å‡†åŒ–交易记录 -- **跨平å°å…³è”智能体**:识别åŒä¸€äº¤æ˜“在ä¸åŒå¹³å°çš„é‡å¤å‘ˆçŽ°ä¸Žæ˜ å°„å…³ç³» -- **èµ„é‡‘è·¯å¾„åˆ†æžæ™ºèƒ½ä½“**:识别本人账户中转ã€åˆ†æµã€æ±‡èšã€é“¾è·¯èŠ‚ç‚¹ -- **被骗金é¢è®¤å®šæ™ºèƒ½ä½“**:结åˆè§„åˆ™ä¸Žè¯æ®ï¼Œå¯¹äº¤æ˜“进行纳入/排除/待夿 ¸åˆ¤å®š -- **文书与笔录辅助智能体**:自动输出认定说明ã€é—®è¯¢å»ºè®®ã€è¯æ®åŒ–报告 -- **äººå·¥å¤æ ¸ååŒæ™ºèƒ½ä½“**:在低置信和争议场景下把案件退回人工确认,形æˆé—­çޝ - -这样一æ¥ï¼Œè¯„å®¡çœ‹åˆ°çš„å°±ä¸æ˜¯ä¸€ä¸ªâ€œåŠŸèƒ½å †å çš„软件â€ï¼Œè€Œæ˜¯ä¸€ä¸ª**具备角色分工ã€ä»»åŠ¡è¡”æŽ¥ã€çŠ¶æ€æµè½¬å’Œç»“æžœå¤æ ¸æœºåˆ¶çš„æ™ºèƒ½ä½“系统**。 - -### 3. 䏿˜¯â€œç”Ÿæˆç­”案â€ï¼Œè€Œæ˜¯â€œå½¢æˆè¯æ®â€ - -警务场景和一般政务ã€ä¼ä¸šåŠžå…¬åœºæ™¯æœ€å¤§çš„ä¸åŒï¼Œåœ¨äºŽç»“æžœè¦è¿›å…¥è¯æ®ä½“ç³»ã€ç¬”å½•ä½“ç³»ã€æ¡ˆä»¶å·å®—体系。 -所以本项目最大的专业亮点是: - -- è¾“å‡ºä¸æ˜¯ä¸€å¥â€œè¢«éª—金é¢å¤§æ¦‚多少†-- 而是æ¯ä¸€ç¬”金é¢çš„æ¥æºæˆªå›¾ã€ç»“构化字段ã€å…³è”关系ã€è®¤å®šç†ç”±ã€æŽ’除便®ã€å¤æ ¸çŠ¶æ€ -- 最终还能导出 Excelã€Wordã€PDF 等文书化结果 - -这代表项目具备**è¯æ®åŒ–输出能力**,而这正是智慧警务类评审会高度é‡è§†çš„差异化优势。 - -### 4. 䏿˜¯â€œæ›¿ä»£æ°‘è­¦â€ï¼Œè€Œæ˜¯â€œäººæœºååŒå¢žå¼ºâ€ - -在公安实战中,完全自动认定往往ä¸å¯ä¿¡ï¼Œä¹Ÿä¸åˆè§„。 -所以本项目è¦å¼ºè°ƒçš„䏿˜¯â€œAI自动判案â€ï¼Œè€Œæ˜¯ï¼š - -- AI负责高强度ã€é«˜é‡å¤ã€é«˜è€—æ—¶çš„ä¿¡æ¯æŠ½å–与åˆåˆ¤ -- æ°‘è­¦ä¿ç•™æœ€ç»ˆç¡®è®¤æƒã€è¡¥è¯æƒã€ä¿®æ­£æƒã€è§£é‡Šæƒ -- 系统通过高/中/低置信分层,把最该人工关注的部分çªå‡ºå‡ºæ¥ - -这会让项目在评审中更å¯ä¿¡ã€æ›´æˆç†Ÿï¼Œä¹Ÿæ›´ç¬¦åˆè­¦åŠ¡æ™ºèƒ½åŒ–å»ºè®¾å¯¼å‘。 - -## 三ã€AI智能体本质与本项目的高度契åˆç‚¹ - -å‚赛答辩时,建议直接回应“什么是智能体,为什么你的项目是真正的智能体â€ã€‚ - -### 1. 智能体的本质 - -从专家视角,AI智能体至少应具备以下五个特å¾ï¼š - -1. **目标导å‘**:围绕清晰任务目标æŒç»­è¡ŒåЍ -2. **环境感知**:能够ç†è§£è¾“入环境中的多æºä¿¡æ¯ -3. **规划执行**ï¼šå°†å¤æ‚任务拆解为多步骤æµç¨‹ -4. **工具调用**:调用OCRã€è§„åˆ™åº“ã€æ•°æ®åº“ã€å›¾è°±ã€æŠ¥å‘Šå¼•擎等外部能力 -5. **å馈闭环**:根æ®ä¸­é—´ç»“果调整路径,并接å—人工干预 - -### 2. æœ¬é¡¹ç›®å¦‚ä½•ç¬¦åˆæ™ºèƒ½ä½“定义 - -本项目与上述五个特å¾ä¸€ä¸€å¯¹åº”: - -| æ™ºèƒ½ä½“ç‰¹å¾ | 本项目体现 | -|---|---| -| ç›®æ ‡å¯¼å‘ | 以“å—害人被骗金é¢è®¤å®šâ€è€Œéžå•纯识别为目标 | -| 环境感知 | æ„ŸçŸ¥å¾®ä¿¡ã€æ”¯ä»˜å®ã€é“¶è¡Œã€çŸ­ä¿¡ç­‰å¤šæºæˆªå›¾è¯æ® | -| 规划执行 | 便¬¡å®Œæˆåˆ†ç±»ã€æŠ½å–ã€åŽ»é‡ã€å…³è”ã€åˆ†æžã€è®¤å®šã€è¾“出 | -| 工具调用 | 调用OCRã€å¤šæ¨¡æ€æ¨¡åž‹ã€è§„åˆ™å¼•æ“Žã€æ•°æ®åº“ã€æŠ¥è¡¨å¯¼å‡ºç»„ä»¶ | -| å馈闭环 | å¯¹ä½Žç½®ä¿¡ç»“æžœè¿›å…¥äººå·¥å¤æ ¸ï¼Œå¹¶ä¿ç•™ä¿®æ­£è®°å½• | - -建议在答辩中明确一å¥è¯ï¼š - -**æœ¬é¡¹ç›®ä¸æ˜¯â€œè®©å¤§æ¨¡åž‹å›žç­”问题â€ï¼Œè€Œæ˜¯è®©æ™ºèƒ½ä½“围绕案件目标,æŒç»­è°ƒç”¨å¤šç§èƒ½åŠ›å®Œæˆè¯æ®æ ¸æŸ¥é—­çŽ¯ã€‚** - -### 3. 为什么必须采用“多智能体â€è€Œä¸æ˜¯â€œå•模型†- -因为该场景天然具备多任务异构特å¾ï¼š - -- 截图识别是视觉ç†è§£é—®é¢˜ -- 交易标准化是结构化抽å–问题 -- 跨平å°åˆå¹¶æ˜¯å®žä½“匹é…问题 -- 中转识别是规则推ç†é—®é¢˜ -- 金é¢è®¤å®šæ˜¯ä¸šåŠ¡å†³ç­–é—®é¢˜ -- é—®è¯¢å»ºè®®ä¸Žæ–‡ä¹¦ç”Ÿæˆæ˜¯è¯­è¨€ç”Ÿæˆé—®é¢˜ - -这些能力混在一个模型里,容易出现: - -- æç¤ºè¯è¿‡é•¿ï¼Œæ•ˆæžœä¸ç¨³å®š -- 任务耦åˆï¼Œéš¾ä»¥è°ƒè¯• -- é”™è¯¯æ¥æºä¸æ¸…æ™° -- éš¾ä»¥è§£é‡Šå’Œå¤æ ¸ - -多智能体方案的价值就在于: - -- æ¯ä¸ªæ™ºèƒ½ä½“åªè§£å†³ä¸€ç±»ä¸“业问题 -- 输出å¯ç»“构化传递 -- æ¯ä¸€æ­¥å¯æ›¿æ¢ã€å¯è¿­ä»£ã€å¯è¿½è´£ -- 更符åˆè­¦åŠ¡ç³»ç»Ÿå»ºè®¾ä¸­çš„å¯ç®¡å¯æŽ§è¦æ±‚ - -## å››ã€é¡¹ç›®ç—›ç‚¹ä¸Žä¸šåС价值 - -### 1. 一线实战痛点 - -基层民警在制作电诈å—害人笔录和资金核查时,普éé¢ä¸´ä»¥ä¸‹é—®é¢˜ï¼š - -- æˆªå›¾æ¥æºæ‚ï¼Œå¾®ä¿¡ã€æ”¯ä»˜å®ã€é“¶è¡Œå¡ã€çŸ­ä¿¡ã€æ•°å­—é’±åŒ…æ··æ‚ -- 截图数é‡å¤§ï¼Œäººå·¥é€å¼ ç™»è®°æžè€—æ—¶é—´ -- åŒä¸€ç¬”交易跨平å°é‡å¤å±•示,易é‡å¤ç»Ÿè®¡ -- 本人账户过渡ã€ä¸­è½¬ã€å……值æçŽ°ç­‰æƒ…å½¢å¤æ‚,易错认 -- 认定ç†ç”±ä¾èµ–ç»éªŒï¼Œæ ‡å‡†ä¸ç»Ÿä¸€ -- 结果需å夿•´ç†ä¸ºè¡¨æ ¼ã€ç¬”录和报告,é‡å¤åŠ³åŠ¨é‡ - -### 2. 业务价值 - -建议用“æè´¨ã€ææ•ˆã€å‡è´Ÿã€è§„范ã€ç•™ç—•â€äº”ä¸ªè¯æ¥æ¦‚括: - -- **æè´¨**:å‡å°‘é‡å¤ç»Ÿè®¡ã€æ¼ç»Ÿã€é”™ç»Ÿï¼Œæå‡è¢«éª—金é¢è®¤å®šå‡†ç¡®çއ -- **ææ•ˆ**:将人工é€å¼ æ ¸è´¦å˜ä¸ºæ‰¹é‡è‡ªåЍ处ç†ï¼Œæ˜¾è‘—压缩办案时间 -- **å‡è´Ÿ**:å‡å°‘基层民警在截图整ç†ã€è¡¨æ ¼æ±‡æ€»ã€ç¬”录梳ç†ä¸Šçš„æœºæ¢°åŠ³åŠ¨ -- **规范**:统一认定逻辑ã€è¾“出格å¼å’Œå¤æ ¸è·¯å¾„ -- **留痕**:ä¿ç•™æˆªå›¾æ¥æºã€è¯†åˆ«ç»“æžœã€è®¤å®šä¾æ®ã€äººå·¥ä¿®æ­£è®°å½•,满足审计追踪 - -### 3. 适用场景扩展 - -é™¤å…¸åž‹ç”µä¿¡è¯ˆéª—æ¡ˆä»¶å¤–ï¼Œè¿˜å¯æ‰©å±•到: - -- å¸®ä¿¡ã€æ´—钱案件中的资金æµåˆç­› -- 网络赌åšã€åˆ·å•è¿”åˆ©ç­‰æ¡ˆä»¶çš„æµæ°´æ¢³ç† -- ç»ä¾¦ç±»æ¡ˆä»¶ä¸­çš„多账户资金归集 -- æ£€æ³•çŽ¯èŠ‚ä¸­çš„è¯æ®è¾…助核查 - -## 五ã€å‚èµ›æ–¹æ¡ˆçš„æŽ¨èæ€»ä½“å™äº‹ - -### 1. 推è主å™äº‹ - -å»ºè®®å…¨ç¨‹å›´ç»•ä¸€å¥æ ¸å¿ƒè¡¨è¾¾ï¼š - -**把“人工翻截图ã€äººå·¥ç®—金é¢ã€äººå·¥å†™ç†ç”±â€çš„传统核账模å¼ï¼Œå‡çº§ä¸ºâ€œå¤šæ™ºèƒ½ä½“è‡ªåŠ¨æ ¸æŸ¥ã€æ°‘è­¦é‡ç‚¹å¤æ ¸ã€ç³»ç»Ÿä¸€é”®å‡ºè¯â€çš„æ–°åž‹è­¦åŠ¡å·¥ä½œæµã€‚** - -### 2. 推è价值主张 - -å»ºè®®åœ¨ææ–™ä¸­å›ºå®šä½¿ç”¨ä»¥ä¸‹ä¸‰å±‚价值表达: - -- **对基层民警**:å‡è´Ÿå¢žæ•ˆï¼ŒæŠŠæ—¶é—´ä»Žæœºæ¢°æ•´ç†ä¸­é‡Šæ”¾å‡ºæ¥ -- **对案件办ç†**:æå‡è¢«éª—金é¢è®¤å®šçš„规范性ã€å®Œæ•´æ€§å’Œå¯è§£é‡Šæ€§ -- **对智慧警务**ï¼šæž„å»ºå¯æŽ¨å¹¿ã€å¯å¤åˆ¶ã€å¯æ²‰æ·€çš„åè¯ˆèµ„é‡‘æ ¸æŸ¥æ™ºèƒ½ä½“èŒƒå¼ - -### 3. æŽ¨èæ¯”赛标签 - -å¯ç”¨äºŽç”³æŠ¥ä¹¦ã€è·¯æ¼”PPTã€æµ·æŠ¥ã€çŸ­è§†é¢‘字幕: - -- 多智能体ååŒ -- 警务垂直智能体 -- è¯æ®æ™ºèƒ½è§£æž -- èµ„é‡‘è·¯å¾„åˆ†æž -- 被骗金é¢è®¤å®š -- 人机ååŒå¤æ ¸ -- æ–‡ä¹¦è‡ªåŠ¨ç”Ÿæˆ -- å¯è§£é‡Šå¯ä¿¡AI - -## å…­ã€ç³»ç»Ÿæž¶æž„包装建议 - -### 1. 总体架构 - -建议在图示中体现“四层结构â€ï¼š - -1. **è¯æ®æŽ¥å…¥å±‚** - å¾®ä¿¡ã€æ”¯ä»˜å®ã€é“¶è¡Œã€çŸ­ä¿¡ã€æ•°å­—钱包等截图批é‡ä¸Šä¼  -2. **智能体ååŒå±‚** - 编排智能体统一调度å„专业智能体 -3. **案件推ç†å±‚** - 去é‡ã€å…³è”ã€ä¸­è½¬è¯†åˆ«ã€è®¤å®šè¯„分ã€äººå·¥å¤æ ¸ -4. **结果输出层** - 资金æµå›¾ã€äº¤æ˜“明细ã€è®¤å®šç»“论ã€é—®è¯¢å»ºè®®ã€è¯æ®åŒ–报告 - -### 2. 多智能体èŒè´£è®¾è®¡ - -#### (1)案件编排智能体 - -èŒè´£ï¼š - -- 接收案件处ç†è¯·æ±‚ -- åˆ¤æ–­å½“å‰æ¡ˆä»¶çжæ€å’Œå¤„ç†é˜¶æ®µ -- è§„åˆ’æ‰§è¡Œé¡ºåº -- ç›‘æŽ§ä»»åŠ¡å®Œæˆæƒ…况 -- 将异常或低置信结果æäº¤äººå·¥å¤æ ¸ - -输入: - -- æ¡ˆä»¶ä¿¡æ¯ -- å—å®³äººæˆªå›¾é›†åˆ -- 基础案情说明 - -输出: - -- å­ä»»åŠ¡æ¸…å• -- æ‰§è¡ŒçŠ¶æ€ -- 汇总结果 - -#### (2)截图ç†è§£æ™ºèƒ½ä½“ - -èŒè´£ï¼š - -- åˆ¤æ–­æˆªå›¾æ¥æºAPP -- 判断页é¢ç±»åž‹ -- 识别无效截图ã€é‡å¤æˆªå›¾ã€éžè´¦å•截图 - -价值: - -- è§£å†³â€œå…ˆåˆ†ç±»å†æŠ½å–â€çš„å‰ç½®é—®é¢˜ -- 为åŽç»­ä½¿ç”¨ä¸åŒæŠ½å–ç­–ç•¥æä¾›ä¾æ® - -#### (3ï¼‰äº¤æ˜“æŠ½å–æ™ºèƒ½ä½“ - -èŒè´£ï¼š - -- å¯¹è´¦å•æˆªå›¾è¿›è¡ŒOCR和结构化字段æå– -- 标准化交易时间ã€é‡‘é¢ã€æ–¹å‘ã€å¯¹æ‰‹æ–¹ã€è®¢å•å·ã€å¤‡æ³¨ç­‰è¦ç´  -- 给出抽å–置信度 - -价值: - -- å°†éžç»“æž„åŒ–æˆªå›¾è¯æ®å˜æˆå¯è®¡ç®—ã€å¯å…³è”的数æ®å¯¹è±¡ - -#### (4)跨平å°å…³è”智能体 - -èŒè´£ï¼š - -- 识别åŒä¸€ç¬”交易在ä¸åŒæˆªå›¾ã€ä¸åŒAPP中的é‡å¤è¡¨è¾¾ -- 建立交易èšç±»å…³ç³» -- é¿å…åŒä¸€ç¬”被骗资金é‡å¤ç´¯è®¡ - -价值: - -- 直接解决“é‡å¤ç»Ÿè®¡â€è¿™ä¸€å®žæˆ˜é«˜é¢‘痛点 - -#### (5ï¼‰èµ„é‡‘è·¯å¾„åˆ†æžæ™ºèƒ½ä½“ - -èŒè´£ï¼š - -- 识别本人账户中转ã€è‡ªè½¬ã€è‡ªå……ç­‰éžæœ€ç»ˆè¢«éª—路径 -- 判断是å¦å­˜åœ¨æ±‡èšè´¦æˆ·ã€è¿‡æ¡¥è´¦æˆ·ã€äºŒè·³è½¬ç§» -- 输出资金æµè·¯å¾„和关系图 - -价值: - -- å°†â€œé‡‘é¢æ±‡æ€»â€å‡çº§ä¸ºâ€œè·¯å¾„分æžâ€ -- 增强案件扩线和åŽç»­ä¾¦æŸ¥ä»·å€¼ - -#### (6)被骗金é¢è®¤å®šæ™ºèƒ½ä½“ - -èŒè´£ï¼š - -- 结åˆè§„则ã€ä¸Šä¸‹æ–‡å’Œæ¡ˆä»¶ç›®æ ‡è¿›è¡Œçº³å…¥/排除/待夿 ¸åˆ¤æ–­ -- ç”Ÿæˆæ¯ç¬”交易的认定ç†ç”±å’ŒæŽ’除便® -- 输出高/中/低置信分层结果 - -价值: - -- 这是最能体现警务专业性的核心智能体 -- 直接对应执法环节中的关键结论输出 - -#### (7ï¼‰ç¬”å½•ä¸ŽæŠ¥å‘Šç”Ÿæˆæ™ºèƒ½ä½“ - -èŒè´£ï¼š - -- 生æˆå—害人问询建议 -- 生æˆè¢«éª—金颿±‡æ€»è¡¨ -- 输出 Word / Excel / PDF ç­‰è¯æ®åŒ–文书 - -价值: - -- 让智能体结果直接进入基层实战使用链路 - -#### (8ï¼‰äººå·¥å¤æ ¸ååŒæ™ºèƒ½ä½“ - -èŒè´£ï¼š - -- 汇总低置信ã€çŸ›ç›¾ã€ç¼ºå¤±å­—段记录 -- ä»¥â€œæœ€å°‘å¹²é¢„â€æ–¹å¼è¯·æ±‚民警确认 -- ä¿å­˜å¤æ ¸æ„è§å’Œä¿®æ­£è½¨è¿¹ - -价值: - -- 体现å¯ä¿¡AI和警务åˆè§„ç†å¿µ -- 将“全自动â€é£Žé™©è½¬åŒ–ä¸ºâ€œå¯æŽ§æ™ºèƒ½å¢žå¼ºâ€ - -## 七ã€ç»“åˆå½“å‰é¡¹ç›®å®žçŽ°ï¼Œå¯é‡ç‚¹åŒ…装的技术亮点 - -结åˆå½“å‰ç³»ç»Ÿå·²æœ‰èƒ½åŠ›ï¼Œå»ºè®®é‡ç‚¹çªå‡ºä»¥ä¸‹å†…容: - -### 1. 已具备较完整的案件处ç†é“¾è·¯ - -当å‰é¡¹ç›®å·²ç»å½¢æˆè¾ƒå®Œæ•´æµç¨‹ï¼š - -- æ¡ˆä»¶åˆ›å»ºä¸Žç®¡ç† -- æ‰¹é‡æˆªå›¾ä¸Šä¼  -- OCRè¯†åˆ«ä¸Žå­—æ®µæŠ½å– -- 交易去é‡ä¸Žèšç±» -- 本人账户中转识别 -- 交易认定与ç†ç”±ç”Ÿæˆ -- äººå·¥å¤æ ¸ -- 报告导出 - -è¿™è¯´æ˜Žé¡¹ç›®ä¸æ˜¯åœç•™åœ¨æƒ³æ³•层é¢ï¼Œè€Œæ˜¯å·²ç»å…·å¤‡åŽŸåž‹ç³»ç»ŸåŸºç¡€ã€‚ - -### 2. ç»“æž„åŒ–è¾“å‡ºè€Œä¸æ˜¯è‡ªç”±æ–‡æœ¬è¾“出 - -系统将截图解æžä¸ºæ ‡å‡†äº¤æ˜“字段,例如: - -- 交易时间 -- é‡‘é¢ -- æ”¶æ”¯æ–¹å‘ -- 对手方åç§°/è´¦å· -- æœ¬æ–¹è´¦æˆ·å°¾å· -- 订å•å· -- 备注 -- 识别置信度 - -这一点对评审éžå¸¸é‡è¦ï¼Œå› ä¸ºç»“构化输出æ„味ç€ï¼š - -- å¯è®¡ç®— -- å¯è¿½æº¯ -- 坿¯”对 -- å¯å¤æ ¸ -- å¯è¿›å…¥ä¸šåŠ¡ç³»ç»Ÿ - -### 3. 规则引擎与模型推ç†ç»“åˆ - -é¡¹ç›®ä¸æ˜¯å®Œå…¨ä¾èµ–大模型,而是采用“模型ç†è§£ + 规则约æŸâ€çš„路线: - -- æ¨¡åž‹è´Ÿè´£å¤æ‚截图ç†è§£å’Œå­—æ®µæŠ½å– -- 规则负责é‡å¤è¯†åˆ«ã€ä¸­è½¬è¯†åˆ«ã€è®¤å®šè¾¹ç•ŒæŽ§åˆ¶ -- å¤§æ¨¡åž‹è¾…åŠ©ç”Ÿæˆæ›´è§„范的认定ç†ç”±å’Œé—®è¯¢å»ºè®® - -这是一æ¡éžå¸¸é€‚åˆè­¦åŠ¡åœºæ™¯çš„æŠ€æœ¯è·¯çº¿ï¼Œå› ä¸ºå®ƒå…¼é¡¾ï¼š - -- 智能性 -- 稳定性 -- 解释性 -- å¯ç®¡æŽ§æ€§ - -### 4. 支æŒè¯æ®åŒ–报告输出 - -系统å¯è¾“出 Excelã€Wordã€PDF 报告,这æ„味ç€ï¼š - -- 结果å¯ä»¥ç›´æŽ¥æœåŠ¡ç¬”å½•åˆ¶ä½œå’Œæ¡ˆä»¶ææ–™æ•´ç† -- ä¸å†åœç•™åœ¨â€œå±å¹•上看一看â€çš„æ¼”示阶段 -- 体现出“从识别到文书â€çš„警务闭环 - -### 5. 支æŒäººå·¥å¤æ ¸é—­çޝ - -高/中/低置信分层与人工确认机制,是项目æˆç†Ÿåº¦çš„é‡è¦ä½“现。 -评审往往很关注“错了怎么办â€ï¼Œä½ å¯ä»¥æ˜Žç¡®å›žç­”: - -- 系统ä¸ä¼šæŠŠä¸ç¡®å®šç»“果伪装æˆç¡®å®šç»“论 -- 系统会把低置信结果主动交给民警确认 -- äººå·¥å¤æ ¸ç»“æžœå¯ä»¥åå‘修正最终认定 - -这会明显æå‡é¡¹ç›®å¯ä¿¡åº¦ã€‚ - -## å…«ã€å‚èµ›ææ–™ä¸­å¿…é¡»çªå‡ºçš„“é‡ç‚¹åˆ†æžç»´åº¦â€ - -### 1. 业务刚需性 - -è¦è®©è¯„å®¡ç›¸ä¿¡ï¼šè¿™ä¸æ˜¯â€œä¸ºäº†æ¯”赛设计的需求â€ï¼Œè€Œæ˜¯åŸºå±‚民警天天é‡åˆ°çš„刚需问题。 -建议çªå‡ºï¼š - -- 高å‘场景 -- 高频动作 -- 高耗时环节 -- 高易错环节 - -### 2. 智能体真实性 - -很多å‚赛项目容易被质疑为“套壳大模型â€ã€‚ -你的项目è¦é‡ç‚¹è¯æ˜Žï¼š - -- æœ‰ä»»åŠ¡ç›®æ ‡ï¼Œä¸æ˜¯èŠå¤©é—®ç­” -- æœ‰ä»»åŠ¡åˆ†å·¥ï¼Œä¸æ˜¯ä¸€ä¸ªæç¤ºè¯åŒ…打天下 -- æœ‰çŠ¶æ€æµè½¬ï¼Œä¸æ˜¯å•次调用 -- æœ‰å·¥å…·è°ƒç”¨ï¼Œä¸æ˜¯åªä¼šç”Ÿæˆæ–‡æœ¬ -- æœ‰äººå·¥é—­çŽ¯ï¼Œä¸æ˜¯è¾“出å³ç»“æŸ - -### 3. 警务专业深度 - -评审会é‡ç‚¹çœ‹é¡¹ç›®æ˜¯å¦çœŸæ­£ç†è§£å…¬å®‰ä¸šåŠ¡ã€‚ -建议é‡ç‚¹çªå‡ºä»¥ä¸‹ä¸“业点: - -- åŒç¬”交易跨平å°é‡å¤è¯†åˆ« -- 本人账户中转识别 -- 认定ç†ç”±ç”Ÿæˆ -- æŽ’é™¤é€»è¾‘ä¸Žå¤æ ¸é€»è¾‘ -- è¯æ®ç´¢å¼•与å·å®—化输出 - -### 4. å¯è§£é‡Šä¸Žå¯ä¿¡ - -在警务场景里,“为什么认定这笔是被骗金é¢â€æ¯”“模型分数高ä¸é«˜â€æ›´é‡è¦ã€‚ -因此必须强调: - -- æ¯ä¸€ç¬”è®¤å®šå‡æœ‰æ¥æºæˆªå›¾ -- æ¯ä¸€ç¬”è®¤å®šå‡æœ‰ç»“构化字段 -- æ¯ä¸€ç¬”è®¤å®šå‡æœ‰ç†ç”±è¯´æ˜Ž -- æ¯ä¸€ç¬”æŽ’é™¤å‡æœ‰ä¾æ® -- æ¯ä¸€æ­¥éƒ½æœ‰äººå·¥å¤æ ¸å…¥å£ - -### 5. 工程è½åœ°èƒ½åŠ› - -è¦è®©è¯„审看到这是å¯ä»¥æŽ¨å¹¿çš„ç³»ç»Ÿï¼Œè€Œä¸æ˜¯å®žéªŒå®¤Demo。 -建议强调: - -- å‰åŽç«¯å®Œæ•´ç³»ç»Ÿ -- æ”¯æŒæ¡ˆä»¶ã€æˆªå›¾ã€åˆ†æžã€å¤æ ¸ã€æŠ¥å‘Šå…¨æµç¨‹ -- 支æŒå¼‚æ­¥ä»»åŠ¡å¤„ç† -- æ”¯æŒæ¨¡åž‹æŽ¥å£æ›¿æ¢ -- æ”¯æŒ mock 演示与真实模型é…ç½®åˆ‡æ¢ - -## ä¹ã€ç”³æŠ¥ä¹¦å»ºè®®å†™æ³• - -### 1. 项目背景 - -建议按以下逻辑写: - -éšç€ç”µä¿¡ç½‘络诈骗案件æŒç»­é«˜å‘,基层民警在å—害人报案å—ç†ã€èµ„金核查ã€ç¬”录制作过程中,需è¦é¢å¯¹å¤§é‡æ¥è‡ªå¾®ä¿¡ã€æ”¯ä»˜å®ã€é“¶è¡Œå¡ã€çŸ­ä¿¡é€šçŸ¥ç­‰ä¸åŒæ¥æºçš„è´¦å•æˆªå›¾ã€‚现有工作模å¼ä¸»è¦ä¾èµ–人工é€å¼ æŸ¥çœ‹ã€ç™»è®°ã€æ±‡æ€»ã€æŽ’é‡ã€è®¡ç®—,存在效率低ã€é‡å¤ç»Ÿè®¡ã€è®¤å®šä¸ç»Ÿä¸€ã€è¯æ®æ•´ç†è´Ÿæ‹…é‡ç­‰é—®é¢˜ã€‚为破解该痛点,本项目é¢å‘å—害人资金核查实战,研å‘多智能体ååŒçš„æˆªå›¾è¯æ®è§£æžä¸Žè¢«éª—金é¢è®¤å®šç³»ç»Ÿï¼Œå®žçŽ°å¤šæºæˆªå›¾è‡ªåŠ¨è¯†åˆ«ã€è·¨å¹³å°å…³è”ã€èµ„金路径分æžã€è®¤å®šå¤æ ¸å’Œæ–‡ä¹¦åŒ–输出,æœåŠ¡ç”µè¯ˆæ¡ˆä»¶å¿«é€Ÿã€è§„范ã€å¯è¿½æº¯åŠžç†ã€‚ - -### 2. 建设目标 - -建议å‡ç»ƒæˆä¸‰é¡¹ç›®æ ‡ï¼š - -1. **自动化**ï¼šè®©æˆªå›¾è¯æ®ä»Žäººå·¥æ•´ç†è½¬å‘è‡ªåŠ¨è¯†åˆ«å’Œç»“æž„åŒ–å¤„ç† -2. **规范化**:让被骗金é¢è®¤å®šä»Žç»éªŒåˆ¤æ–­è½¬å‘规则化ã€å¯è§£é‡ŠåŒ–输出 -3. **实战化**:让分æžç»“果直接æœåŠ¡ç¬”å½•åˆ¶ä½œã€èµ„é‡‘æ ¸æŸ¥å’Œæ¡ˆä»¶ææ–™ç”Ÿæˆ - -### 3. 创新点写法 - -建议至少写四个创新点: - -1. **多智能体ååŒåˆ›æ–°** - 将截图ç†è§£ã€äº¤æ˜“抽å–ã€å…³è”分æžã€é‡‘é¢è®¤å®šã€æ–‡ä¹¦ç”Ÿæˆæ‹†åˆ†ä¸ºä¸“业智能体,由编排智能体ååŒè°ƒåº¦ï¼Œå½¢æˆæ¡ˆä»¶ç›®æ ‡é©±åŠ¨çš„é—­çŽ¯å¤„ç†æµç¨‹ã€‚ - -2. **跨平å°èµ„é‡‘è¯æ®å…³è”创新** - é¢å‘å¾®ä¿¡ã€æ”¯ä»˜å®ã€é“¶è¡Œå¡ã€çŸ­ä¿¡ç­‰å¤šæºæˆªå›¾ï¼Œè¯†åˆ«åŒç¬”交易的跨平å°é‡å¤è¡¨è¾¾ï¼Œå®žçŽ°èµ„é‡‘è¯æ®è‡ªåЍ关è”和去é‡ã€‚ - -3. **被骗金é¢è®¤å®šåˆ›æ–°** - 䏿­¢è¯†åˆ«æµæ°´ï¼Œè€Œæ˜¯å›´ç»•执法需è¦ï¼Œç»“åˆè§„则和上下文对æ¯ç¬”äº¤æ˜“è¿›è¡Œçº³å…¥ã€æŽ’é™¤ã€å¾…夿 ¸åˆ¤æ–­ï¼Œå¹¶ç”Ÿæˆè®¤å®šç†ç”±ã€‚ - -4. **è¯æ®åŒ–输出创新** - 将智能分æžç»“果转化为å¯å¤æ ¸ã€å¯å¯¼å‡ºã€å¯çº³å…¥æ¡ˆå·çš„æŠ¥å‘Šå’Œé—®è¯¢ææ–™ï¼Œæž„建从截图到文书的完整闭环。 - -### 4. 推广价值写法 - -建议写æˆï¼š - -本项目é¢å‘基层高频警务场景,具有显著的通用性和å¯å¤åˆ¶æ€§ã€‚系统能力ä¸ä»…适用于电信诈骗å—å®³äººèµ„é‡‘æ ¸æŸ¥ï¼Œè¿˜å¯æ‰©å±•应用于涉诈资金链梳ç†ã€æ¶‰èµŒèµ„é‡‘æµæ°´åˆ†æžã€ç»ä¾¦æ¡ˆä»¶å¤šè´¦æˆ·èµ„金归集等场景,具备在派出所ã€å诈中心ã€åˆ‘侦部门等多层级å•ä½æŽ¨å¹¿åº”ç”¨çš„æ½œåŠ›ã€‚ - -## åã€ç­”è¾©å’Œè·¯æ¼”çš„æœ€ä½³å‘ˆçŽ°æ–¹å¼ - -### 1. PPT建议结构 - -建议控制在 10 页左å³ï¼š - -1. 项目åç§° + 一å¥è¯ä»·å€¼ -2. 基层实战痛点 -3. 现有模å¼çš„问题 -4. 项目总体方案 -5. 多智能体ååŒæž¶æž„ -6. 核心业务æµç¨‹æ¼”示 -7. 关键创新点 -8. åº”ç”¨æˆæ•ˆä¸ŽæŒ‡æ ‡ -9. 安全åˆè§„与å¯ä¿¡æœºåˆ¶ -10. æŽ¨å¹¿å‰æ™¯ä¸Žæ€»ç»“ - -### 2. 演示脚本建议 - -建议按照“一个案件跑到底â€çš„æ–¹å¼æ¼”示: - -1. 新建案件 -2. 批é‡ä¸Šä¼ å¤šAPP截图 -3. ç³»ç»Ÿè‡ªåŠ¨è¯†åˆ«æˆªå›¾æ¥æºå’Œé¡µé¢ç±»åž‹ -4. 自动抽å–交易字段 -5. 自动完æˆåŽ»é‡ä¸Žä¸­è½¬è¯†åˆ« -6. 生æˆèµ„金路径与被骗金é¢åˆåˆ¤ -7. å¯¹ä½Žç½®ä¿¡è®°å½•è¿›è¡Œäººå·¥å¤æ ¸ -8. ä¸€é”®å¯¼å‡ºè¢«éª—é‡‘é¢æ±‡æ€»å’Œé—®è¯¢å»ºè®® - -这样最能体现“智能体闭环â€ï¼Œè€Œä¸æ˜¯å•点功能切æ¢ã€‚ - -### 3. 现场讲解è¦ç‚¹ - -建议é‡ç‚¹è®²ä¸‰å¥è¯ï¼š - -- **第一å¥**ï¼šæˆ‘ä»¬è§£å†³çš„ä¸æ˜¯OCRé—®é¢˜ï¼Œè€Œæ˜¯åŸºå±‚æ°‘è­¦æœ€è€—æ—¶ã€æœ€æ˜“错的被骗资金核查问题。 -- **第二å¥**ï¼šæˆ‘ä»¬ä¸æ˜¯å•模型问答,而是多智能体围绕案件目标ååŒå·¥ä½œã€‚ -- **第三å¥**ï¼šæˆ‘ä»¬è¾“å‡ºçš„ä¸æ˜¯ä¸€ä¸ªç­”案,而是一套å¯å¤æ ¸ã€å¯è¿½æº¯ã€å¯å½¢æˆæ–‡ä¹¦çš„è¯æ®ç»“果。 - -## å一ã€å»ºè®®å‡†å¤‡çš„é‡åŒ–指标 - -如果è¦å†²å‡»é«˜å¥–项,必须尽å¯èƒ½æä¾›é‡åŒ–结果。å³ä½¿æ˜¯é˜¶æ®µæ€§æ•°æ®ï¼Œä¹Ÿæ¯”纯定性æè¿°æ›´æœ‰è¯´æœåŠ›ã€‚ - -建议准备以下指标: - -- 啿¡ˆå¹³å‡æ ¸æŸ¥æ—¶é—´åŽ‹ç¼©æ¯”ä¾‹ -- 啿¡ˆäººå·¥å½•入工作é‡ä¸‹é™æ¯”例 -- é‡å¤äº¤æ˜“识别准确率 -- 本人账户中转识别准确率 -- 被骗金é¢è®¤å®šä¸€è‡´æ€§æå‡å¹…度 -- æŠ¥å‘Šç”Ÿæˆæ—¶é—´ç¼©çŸ­æ¯”例 -- 民警满æ„度或使用å馈 - -### 指标写法示例 - -å¯å‚考如下å£å¾„: - -- 传统人工核查需 2 至 4 å°æ—¶çš„æ¡ˆä»¶ï¼Œç³»ç»Ÿå¯åœ¨æ•°åˆ†é’Ÿå†…完æˆåˆæ­¥ç»“æž„åŒ–å’Œå½’å¹¶åˆ†æž -- 多平å°é‡å¤äº¤æ˜“自动识别åŽï¼Œé‡å¤ç»Ÿè®¡é£Žé™©æ˜Žæ˜¾ä¸‹é™ -- 民警由“全é‡é€æ¡æ ¸å¯¹â€è½¬ä¸ºâ€œèšç„¦äº‰è®®è®°å½•夿 ¸â€ï¼Œå·¥ä½œé‡å¿ƒæ˜Žæ˜¾ä¼˜åŒ– - -如果åŽç»­ä½ æœ‰çœŸå®žæ•°æ®ï¼Œå»ºè®®æ›¿æ¢ä¸ºå…·ä½“数字,如“平å‡è€—æ—¶ä¸‹é™ 70%â€ç­‰ã€‚ - -## å二ã€å®‰å…¨ã€åˆè§„与å¯ä¿¡è®¾è®¡å»ºè®® - -警务类比赛中,这一部分éžå¸¸é‡è¦ï¼Œä¸èƒ½ç¼ºå¤±ã€‚ - -### 1. æ•°æ®å®‰å…¨ - -建议强调: - -- æ¡ˆä»¶æ•°æ®æŒ‰æ¡ˆç®¡ç†ï¼Œéš”离存储 -- è¯æ®å›¾ç‰‡ã€è¯†åˆ«ç»“æžœã€æŠ¥å‘Šæ–‡ä»¶å…¨æµç¨‹ç•™ç—• -- æ”¯æŒæœ¬åœ°åŒ–部署或专网部署 -- æ”¯æŒæ¨¡åž‹æŽ¥å£æŒ‰éœ€åˆ‡æ¢ - -### 2. æƒé™ä¸Žå®¡è®¡ - -建议强调: - -- ä¸åŒè§’色区分上传ã€å¤æ ¸ã€å¯¼å‡ºæƒé™ -- ä¿ç•™åˆ†æžæ—¶é—´ã€å¤æ ¸æ—¶é—´ã€å¤æ ¸äººã€ä¿®æ”¹è®°å½• -- 导出报告ä¿ç•™ç‰ˆæœ¬å¿«ç…§ï¼Œé˜²æ­¢åŽç»­å£å¾„ä¸ä¸€è‡´ - -### 3. å¯ä¿¡AI - -建议强调: - -- 对低置信结果ä¸ç›´æŽ¥ä¸‹ç»“论 -- äººå·¥æ‹¥æœ‰æœ€ç»ˆç¡®è®¤æƒ -- æ‰€æœ‰å…³é”®è®¤å®šå‡æœ‰å¯è§£é‡Šç†ç”± -- 结果å¯è¿½æº¯è‡³åŽŸå§‹æˆªå›¾è¯æ® - -## å三ã€è¯„审å¯èƒ½è¿½é—®çš„问题与建议回答 - -### 1. 你这个项目和普通OCR报销系统有什么区别? - -建议回答: - -普通OCR系统解决的是“识别内容â€ï¼Œæœ¬é¡¹ç›®è§£å†³çš„æ˜¯â€œå›´ç»•案件目标认定被骗金é¢â€ã€‚系统ä¸ä»…åšæˆªå›¾è¯†åˆ«ï¼Œè¿˜åšè·¨å¹³å°å…³è”ã€æœ¬äººè´¦æˆ·ä¸­è½¬è¯†åˆ«ã€è®¤å®šç†ç”±ç”Ÿæˆã€äººå·¥å¤æ ¸å’Œè¯æ®åŒ–è¾“å‡ºï¼Œæ ¸å¿ƒæ˜¯æ‰§æ³•ä¸šåŠ¡é—­çŽ¯è€Œä¸æ˜¯è¯†åˆ«æœ¬èº«ã€‚ - -### 2. 为什么è¦åšå¤šæ™ºèƒ½ä½“,ä¸ç›´æŽ¥ç”¨ä¸€ä¸ªå¤§æ¨¡åž‹ï¼Ÿ - -建议回答: - -å› ä¸ºæœ¬åœºæ™¯åŒæ—¶åŒ…å«è§†è§‰è¯†åˆ«ã€ç»“构化抽å–ã€äº¤æ˜“å…³è”ã€è§„则推ç†ã€æ–‡ä¹¦ç”Ÿæˆç­‰å¼‚构任务。采用多智能体分工åŽï¼Œæ¯ä¸€æ­¥æ›´ç¨³å®šã€å¯è§£é‡Šã€å¯æ›¿æ¢ï¼Œä¹Ÿæ›´ç¬¦åˆè­¦åŠ¡åœºæ™¯å¯ç®¡å¯æŽ§è¦æ±‚。 - -### 3. 如果模型识别错了怎么办? - -建议回答: - -ç³»ç»Ÿä¼šè¾“å‡ºç½®ä¿¡åº¦ï¼Œå¹¶æŠŠä½Žç½®ä¿¡å’Œäº‰è®®è®°å½•äº¤ç”±æ°‘è­¦å¤æ ¸ï¼›åŒæ—¶ä¿ç•™åŽŸå§‹æˆªå›¾ã€æŠ½å–字段ã€è®¤å®šç†ç”±å’Œä¿®æ­£è®°å½•,确ä¿ç»“è®ºä¸æ˜¯é»‘箱生æˆï¼Œè€Œæ˜¯å¯è¿½æº¯ã€å¯æ ¡æ­£çš„。 - -### 4. 这个项目是å¦å…·å¤‡æŽ¨å¹¿æ¡ä»¶ï¼Ÿ - -建议回答: - -该项目é¢å‘基层å诈案件高频场景,æµç¨‹æ ‡å‡†ã€é€šç”¨æ€§å¼ºï¼Œå¹¶å·²å…·å¤‡å‰åŽç«¯åŽŸåž‹ã€æ¡ˆä»¶æµç¨‹ã€å¼‚步分æžã€æŠ¥å‘Šå¯¼å‡ºç­‰åŸºç¡€èƒ½åŠ›ï¼Œå¯æ ¹æ®ä¸åŒå•ä½éƒ¨ç½²æ¡ä»¶é€‰æ‹©æœ¬åœ°åŒ–或专网化è½åœ°ï¼Œå…·å¤‡è¾ƒå¼ºæŽ¨å¹¿ä»·å€¼ã€‚ - -## åå››ã€å†²å‡»é«˜å¥–项的包装建议 - -å¦‚æžœç›®æ ‡ä¸æ˜¯â€œå‚èµ›å³å¯â€ï¼Œè€Œæ˜¯äº‰å–更高奖项,建议在现有基础上强化以下表达: - -### 1. çªå‡ºâ€œå®žæˆ˜é¦–创性†- -建议强调: - -- æ¥æºäºŽåŸºå±‚民警真实办案需求 -- 在真实案件工作æµä¸­è®¾è®¡å’Œåº”用 -- 䏿˜¯ä»ŽæŠ€æœ¯æ‰¾åœºæ™¯ï¼Œè€Œæ˜¯ä»Žç—›ç‚¹å推系统 - -### 2. çªå‡ºâ€œæ‰§æ³•专业性†- -建议强调: - -- 认定的是“被骗金é¢â€ï¼Œä¸æ˜¯ç®€å•æµæ°´é‡‘é¢ -- 输出包å«çº³å…¥ã€æŽ’除ã€å¾…夿 ¸ä¸‰ç±»ç»“æžœ -- 支æŒè®¤å®šç†ç”±å’ŒæŽ’除ç†ç”±è¯´æ˜Ž - -### 3. çªå‡ºâ€œé—­çޝå¯ç”¨æ€§â€ - -建议强调: - -- 能上传 -- 能识别 -- èƒ½åˆ†æž -- èƒ½å¤æ ¸ -- 能出报告 - -æ¯”â€œæ¨¡åž‹å‡†ç¡®çŽ‡å¤šé«˜â€æ›´èƒ½æ‰“动警务评审。 - -### 4. çªå‡ºâ€œå¯å¤åˆ¶æŽ¨å¹¿â€ - -建议强调: - -- 技术路线å¯å¤åˆ¶ -- 场景边界清晰 -- 业务模æ¿å¯å¤ç”¨ -- 坿‰©å±•到其他涉案资金场景 - -## å五ã€å»ºè®®çš„æœ€ç»ˆå‚èµ›å£å· - -å¯ä»»é€‰å…¶ä¸€ï¼š - -- **è®©æˆªå›¾è¯æ®è‡ªå·±å¼€å£ï¼Œè®©è¢«éª—金é¢è®¤å®šæ›´å¿«æ›´å‡†ã€‚** -- **从海é‡è´¦å•æˆªå›¾åˆ°ä¸€é”®è¯æ®æŠ¥å‘Šï¼Œæ‰“造å诈资金核查智能体。** -- **把基层民警从“翻截图ã€ç®—金é¢ã€å†™ææ–™â€ä¸­è§£æ”¾å‡ºæ¥ã€‚** -- **以多智能体ååŒï¼Œé‡å¡‘电诈案件资金核查新模å¼ã€‚** - -## åå…­ã€å¯ç›´æŽ¥ç”¨äºŽç”³æŠ¥ä¹¦æ‘˜è¦çš„精炼版本 - -本项目èšç„¦ç”µä¿¡ç½‘络诈骗案件å—害人资金核查这一基层高频ã€è€—æ—¶ã€æ˜“错场景,构建多智能体ååŒçš„æˆªå›¾è¯æ®è§£æžä¸Žè¢«éª—金é¢è®¤å®šç³»ç»Ÿã€‚系统围绕案件目标,自动完æˆå¤šAPPè´¦å•æˆªå›¾è¯†åˆ«ã€äº¤æ˜“字段抽å–ã€è·¨å¹³å°é‡å¤å…³è”ã€æœ¬äººè´¦æˆ·ä¸­è½¬è¯†åˆ«ã€èµ„金路径分æžã€è¢«éª—金é¢è®¤å®šå’Œè¯æ®åŒ–æŠ¥å‘Šè¾“å‡ºï¼Œå¹¶é€šè¿‡äººå·¥å¤æ ¸æœºåˆ¶ä¿éšœç»“æžœå¯ä¿¡å¯æŽ§ã€‚é¡¹ç›®ä¸æ˜¯å•点OCR工具,而是é¢å‘警务实战的垂直智能体系统,能够显著æå‡èµ„金核查效率ã€è§„范认定标准ã€å‡è½»åŸºå±‚è´Ÿæ‹…ï¼Œå…·å¤‡è¾ƒå¼ºçš„å®žæˆ˜ä»·å€¼ã€æŽ¨å¹¿ä»·å€¼å’Œç¤ºèŒƒæ„义。 - -## å七ã€ç»“论:评审最容易被打动的核心表达 - -æœ€ç»ˆåœ¨æ‰€æœ‰ææ–™å’Œç­”辩中,建议把项目价值浓缩为下é¢è¿™æ®µè¯ï¼š - -**这个项目最é‡è¦çš„ï¼Œä¸æ˜¯æŠŠæˆªå›¾è¯†åˆ«å‡ºæ¥ï¼Œè€Œæ˜¯æŠŠåŸºå±‚民警在电诈案件中最ç¹çã€æœ€æ˜“é”™ã€æœ€ä¾èµ–ç»éªŒçš„被骗资金核查æµç¨‹ï¼Œé‡æž„为一个由多智能体ååŒå®Œæˆã€ç”±æ°‘è­¦æœ€ç»ˆå¤æ ¸æŠŠå…³ã€å¹¶èƒ½ç›´æŽ¥å½¢æˆè¯æ®ææ–™çš„æ™ºèƒ½åŠžæ¡ˆç³»ç»Ÿã€‚å®ƒä½“çŽ°çš„ä¸æ˜¯â€œAI会看图â€ï¼Œè€Œæ˜¯â€œAI真正进入警务业务闭环â€ã€‚** -