- Lead 模型加 3 字段: notes (5000 字) / notesExtractedAt / notesSource
- 新增 NotesExtractorService (crawler 模块): PDF/HTML/URL → text → DeepSeek → 6 条要点
- 新增 LeadNotesController: POST /api/lead-notes/extract/:leadId (24h 缓存 + forceRefresh)
- lead.service.ts publishToDirev 优先用 notes 填 publishArgs.description + 同步传 notes
- Java publish() 已有逻辑: notes 优先 → description, 不需要改
- 端到端验证: Lead.notes=6 条要点 → publishToDirev → B2B tb_inquiry.note 正确落地
依赖: pdf-parse (新加, 1 个 npm 包, 25KB)
API 端点:
- POST /api/lead-notes/extract/:leadId?sourcePath=<URL|路径>&forceRefresh=false
- 返 { notes: string, source: 'pdf'|'html'|'url', cached: boolean }
环境变量: DEEPSEEK_API_KEY (从 .env 读, 缺时报错)
关联: F002-W31-交接文档.md §4 P1
本地备份: ~/projects/_meta/f002-fix/w31-platform-assistant-2026-06-23/
51 lines
1.3 KiB
JSON
51 lines
1.3 KiB
JSON
{
|
|
"name": "@pa/api",
|
|
"version": "0.0.1",
|
|
"private": true,
|
|
"scripts": {
|
|
"dev": "nest start --watch",
|
|
"build": "nest build",
|
|
"lint": "eslint \"{src,test}/**/*.ts\"",
|
|
"typecheck": "tsc --noEmit",
|
|
"db:migrate": "prisma migrate dev",
|
|
"db:seed": "ts-node prisma/seed.ts",
|
|
"db:generate": "prisma generate",
|
|
"clean": "rm -rf dist .turbo"
|
|
},
|
|
"prisma": {
|
|
"seed": "ts-node prisma/seed.ts"
|
|
},
|
|
"dependencies": {
|
|
"@nestjs/common": "^10.3.0",
|
|
"@nestjs/core": "^10.3.0",
|
|
"@nestjs/jwt": "^11.0.2",
|
|
"@nestjs/passport": "^11.0.5",
|
|
"@nestjs/platform-express": "^10.3.0",
|
|
"@nestjs/schedule": "^6.1.3",
|
|
"@prisma/client": "^5.10.0",
|
|
"bcrypt": "^6.0.0",
|
|
"class-transformer": "^0.5.1",
|
|
"class-validator": "^0.14.1",
|
|
"passport": "^0.7.0",
|
|
"passport-jwt": "^4.0.1",
|
|
"pdf-parse": "^2.4.5",
|
|
"reflect-metadata": "^0.2.1",
|
|
"rxjs": "^7.8.1"
|
|
},
|
|
"devDependencies": {
|
|
"@nestjs/cli": "^10.3.0",
|
|
"@nestjs/schematics": "^10.1.0",
|
|
"@types/bcrypt": "^6.0.0",
|
|
"@types/multer": "^2.1.0",
|
|
"@types/node": "^20.11.0",
|
|
"@types/passport-jwt": "^4.0.1",
|
|
"@typescript-eslint/eslint-plugin": "^7.0.0",
|
|
"@typescript-eslint/parser": "^7.0.0",
|
|
"eslint": "^8.57.0",
|
|
"prettier": "^3.2.0",
|
|
"prisma": "^5.10.0",
|
|
"ts-node": "^10.9.2",
|
|
"typescript": "^5.4.0"
|
|
}
|
|
}
|