Files
personal-ai-assistant/backend/app/templates/pdf/report.html
dolgolyov.alexei b0790d719c Generalize from health-specific to universal personal assistant
The app manages multiple life areas (health, finance, personal, work),
not just health. Updated all health-specific language throughout:

Backend:
- Default system prompt: general personal assistant (not health-only)
- AI tool descriptions: generic (not health records/medications)
- Memory categories: health, finance, personal, work, document_summary, other
  (replaces condition, medication, allergy, vital)
- PDF template: "Prepared for" (not "Patient"), "Key Information" (not "Health Profile")
- Renamed generate_health_pdf -> generate_pdf_report, health_report.html -> report.html
- Renamed run_daily_health_review -> run_daily_review
- Context assembly: "User Profile" (not "Health Profile")
- OpenAPI: generic descriptions

Frontend:
- Dashboard subtitle: "Your personal AI assistant"
- Memory categories: Health, Finance, Personal, Work
- Document types: Report, Contract, Receipt, Certificate (not lab_result, etc.)
- Updated en + ru translations throughout

Documentation:
- README: general personal assistant description
- Removed health-only feature descriptions

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 15:15:39 +03:00

71 lines
2.4 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style>
body { font-family: 'Helvetica', 'Arial', sans-serif; font-size: 12pt; color: #333; margin: 40px; }
h1 { color: #1a7a8a; border-bottom: 2px solid #1a7a8a; padding-bottom: 8px; }
h2 { color: #2a5a6a; margin-top: 24px; }
.header { margin-bottom: 24px; }
.header p { margin: 2px 0; color: #666; }
.section { margin-bottom: 20px; }
.memory-entry { background: #f5f9fa; padding: 10px 14px; border-radius: 6px; margin-bottom: 8px; }
.memory-entry .category { font-size: 10pt; color: #888; text-transform: uppercase; }
.memory-entry .title { font-weight: bold; }
.memory-entry .importance { display: inline-block; padding: 2px 8px; border-radius: 10px; font-size: 9pt; }
.importance-critical { background: #fee; color: #c33; }
.importance-high { background: #fff3e0; color: #e65100; }
.importance-medium { background: #e3f2fd; color: #1565c0; }
.importance-low { background: #f5f5f5; color: #666; }
.document { border: 1px solid #ddd; padding: 12px; border-radius: 6px; margin-bottom: 10px; }
.document .filename { font-weight: bold; color: #1a7a8a; }
.document .excerpt { font-size: 10pt; color: #555; white-space: pre-wrap; max-height: 200px; overflow: hidden; }
.footer { margin-top: 40px; padding-top: 12px; border-top: 1px solid #ddd; font-size: 9pt; color: #999; }
</style>
</head>
<body>
<div class="header">
<h1>{{ title }}</h1>
<p>Prepared for: {{ user_name }}</p>
<p>Generated: {{ generated_at }}</p>
</div>
{% if memories %}
<div class="section">
<h2>Key Information</h2>
{% for m in memories %}
<div class="memory-entry">
<span class="category">{{ m.category }}</span>
<span class="importance importance-{{ m.importance }}">{{ m.importance }}</span>
<div class="title">{{ m.title }}</div>
<div>{{ m.content }}</div>
</div>
{% endfor %}
</div>
{% endif %}
{% if documents %}
<div class="section">
<h2>Document Summaries</h2>
{% for d in documents %}
<div class="document">
<div class="filename">{{ d.original_filename }} ({{ d.doc_type }})</div>
<div class="excerpt">{{ d.excerpt }}</div>
</div>
{% endfor %}
</div>
{% endif %}
{% if ai_summary %}
<div class="section">
<h2>AI Summary</h2>
<p>{{ ai_summary }}</p>
</div>
{% endif %}
<div class="footer">
Generated by AI Assistant &bull; This document is for informational purposes only.
</div>
</body>
</html>