feat(ai): add Gemini-powered financial assistant
Summary
- Add the AI Financial Assistant module with authenticated endpoints for:
- Transaction categorization
- Receipt OCR and structured data extraction
- Natural-language financial Q&A
- Spending trend and anomaly analysis
- Budget and saving recommendations
- Introduce an extensible
AIProviderinterface and Gemini REST adapter. - Support API key rotation and failover across multiple Gemini keys.
- Add dedicated AI rate limits, request timeouts, output token limits, and bounded financial context.
- Validate all HTTP inputs and AI structured outputs with Zod.
- Separate HTTP validation, AI response validation, and provider JSON schemas.
- Exclude profile data, receipt URLs, and transaction locations from AI context.
- Process OCR uploads in memory without persisting files.
- Add environment configuration examples, error codes, routes, and complete Swagger documentation.
- Update project documentation and architectural memory.
Verification
pnpm.cmd run build- Swagger specification serialization and AI endpoint verification
git diff --check
Database Changes
No Prisma schema changes or database migrations are required.
Deployment Notes
- Configure
GEMINI_API_KEYSas a comma-separated list of Gemini API keys. - AI endpoints return HTTP
503when the provider is not configured. - The current AI rate limiter is process-local; multi-instance deployments should use a shared Redis-backed limiter or API gateway quota.