AB-Law / AB-Law/Vett

feat: AI-generated study notes and topic summaries from interview documents

Aperta
#29 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub
enhancement
Lingua principale
Python
Stelle
0
Fork
0
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

## Epic

Part of #25 — Study Tools

## Problem

Users need a concise, topic-structured summary of uploaded documents they can scan quickly before an interview. Currently they must re-read the raw file or rely on the interview chat to surface information on demand.

## Impact

Structured notes with key bullet points per topic reduce time-to-readiness significantly. A persistable, scannable summary is also a natural complement to flashcards — notes for first-pass learning, cards for active recall.

## Proposed Code (High Level)

**Backend**
```python
# backend/app/routers/study.py
POST /study/notes
body: { job_id: int, doc_id: int | None, focus_areas: list[str] | None }

# 1. Retrieve chunks (full doc, or filtered by focus_areas via semantic search)
# 2. Prompt Claude:
# "Produce structured study notes in Markdown.
# Use ## headings per major topic. 3-5 bullet points each.
# End with a ## Key Takeaways section."
# 3. Stream response via SSE (same pattern as interview_chat_service.py)
# 4. Persist final markdown to StudyNotes on stream end

GET /study/notes?job_id=&doc_id= # fetch saved notes
```

**New DB model**
```python
class StudyNotes(Base):
id, job_id (FK), doc_id (FK nullable), focus_areas_json,
content_markdown (Text), created_at, updated_at
```

**Frontend — Study Hub**
- Render with `react-markdown` (minimal dep, or already present)
- Streaming display while generating
- "Regenerate" and "Copy" action buttons

## Functionality Impact

- SSE streaming already implemented in `interview_chat_service.py` — same pattern
- Notes scoped per job + doc, no cross-contamination
- Markdown rendering is stateless — no new infrastructure

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.