Purpose: Generate concise, plain-English explanations for platform privacy templates and store them once-per-template in privacy_templates.ai_analysis.
Key pieces
- Prompt builder:
packages/core/src/services/ai/analysis-prompt.ts - Gemini client (lazy):
packages/core/src/services/ai/gemini-client.ts - Analysis service:
packages/core/src/services/ai/analysis-service.ts - Engine integration: ensures analysis on template creation/use
- API endpoints:
- GET
/api/ai/analysis?platformId=... | templateId=... - POST
/api/ai/analysis/refresh(headerx-ai-admin-token)
- GET
Env
GEMINI_API_KEY(primary provider)GEMINI_MODEL(defaultgemini-2.5-pro)OPENAI_API_KEY(fallback provider)OPENAI_MODEL(defaultgpt-5-mini)AI_ADMIN_TOKEN(for refresh endpoint)
Notes
- Provider order: Gemini → OpenAI → heuristic fallback (keeps flows working in dev/tests).
- Output JSON aligns with
privacy_templates.ai_analysisand includes optionalsummaryandcategoryInsightsfor UI.