Skip to content

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
    • Help
    • Submit feedback
    • Contribute to GitLab
  • Sign in
F
finwise-miniapp-be
  • Project
    • Project
    • Details
    • Activity
    • Releases
    • Cycle Analytics
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Charts
  • Issues 0
    • Issues 0
    • List
    • Board
    • Labels
    • Milestones
  • Merge Requests 0
    • Merge Requests 0
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
    • Charts
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Charts
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • ThinhNC
  • finwise-miniapp-be
  • Merge Requests
  • !18

Merged
Opened Aug 05, 2026 by ThinhNC@ThinhNC
  • Report abuse
Report abuse

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 AIProvider interface 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_KEYS as a comma-separated list of Gemini API keys.
  • AI endpoints return HTTP 503 when 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.

Check out, review, and merge locally

Step 1. Fetch and check out the branch for this merge request

git fetch origin
git checkout -b feat/ai-financial-assistant origin/feat/ai-financial-assistant

Step 2. Review the changes locally

Step 3. Merge the branch and fix any conflicts that come up

git fetch origin
git checkout origin/develop
git merge --no-ff feat/ai-financial-assistant

Step 4. Push the result of the merge to GitLab

git push origin develop

Note that pushing to GitLab requires write access to this repository.

Tip: You can also checkout merge requests locally by following these guidelines.

  • Discussion 0
  • Commits 1
  • Changes 19
Assignee
No assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking
0
Labels
None
Assign labels
  • View project labels
Reference: ThinhNC/finwise-miniapp-be!18

Revert this merge request

This will create a new commit in order to revert the existing changes.

Switch branch
Cancel
A new branch will be created in your fork and a new merge request will be started.

Cherry-pick this merge request

Switch branch
Cancel
A new branch will be created in your fork and a new merge request will be started.