feat: AI 업무 추천에 프로젝트 문서 내용 반영(DB 캐싱)
업무 작성 화면의 AI 추천이 프로젝트 제목·설명과 업무 제목·내용에 더해 프로젝트 첨부 문서의 내용까지 파악하도록 확장한다. 매 호출마다 문서를 재파싱하지 않도록, 업로드 시점에 1회 텍스트를 추출해 project_attachments.extracted_text 에 캐싱하고 AI 추천에서 꺼내 읽는 구조로 구현한다. - ProjectAttachment.extractedText 컬럼 추가(text, nullable, select:false) - extract-text.ts: txt/csv(직접)·pdf(pdf-parse)·docx(mammoth) 추출 (문서당 8천 자 상한, 추출 불가/실패 시 null) - addFile: 업로드 시 텍스트 추출·캐싱 - getAttachmentsTextForAi: 문서별 추출 본문을 합쳐 반환(총 1.6만 자 상한) - suggestChecklist: [프로젝트 문서] 섹션을 프롬프트에 추가 + 시스템 규칙 보강 - 운영용 마이그레이션 추가(dev 는 synchronize 로 자동 반영) - 추출 텍스트는 AI 내부용 — 프론트 응답 DTO 에는 노출하지 않음 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -47,11 +47,13 @@
|
||||
"express-rate-limit": "^8.3.2",
|
||||
"helmet": "^8.1.0",
|
||||
"ioredis": "^5.11.1",
|
||||
"mammoth": "^1.12.0",
|
||||
"nest-winston": "^1.10.0",
|
||||
"passport": "^0.7.0",
|
||||
"passport-google-oauth20": "^2.0.0",
|
||||
"passport-jwt": "^4.0.1",
|
||||
"passport-kakao": "^1.0.1",
|
||||
"pdf-parse": "^2.4.5",
|
||||
"pg": "^8.20.0",
|
||||
"reflect-metadata": "^0.2.2",
|
||||
"rxjs": "^7.8.1",
|
||||
|
||||
Reference in New Issue
Block a user