Skip to content
Florin Todor
English
Download CV
← All projects

Unia - Voice and text banking assistant

2026 AILLM agentsCybersecurityAccessibilityBackend

A banking assistant you can talk or write to, built for the «Habla con tu dinero» (Talk to your money) challenge from the Unicaja Chair at the University of Granada. It checks your balance, answers free-form questions about your transactions, draws charts and prepares Bizum transfers. The model proposes and the server decides: no money moves without the code sent to your phone.

Demo

What it does

  • Hand-written tool-calling agent, no frameworks: eight tools and up to six rounds per question
  • The model authorises nothing: a Bizum transfer or a card unlock only leaves a pending operation, confirmed with a 6-digit code (or the simulated fingerprint) on an endpoint the model cannot reach
  • NL→SQL in four layers: read-only, an in-memory copy holding only that customer's data, SQLite's authorizer, and limits on time, rows and size
  • Charts without templates: the model picks the type, period and title; for the usual queries the server supplies the numbers, and a free-form configuration is validated before it is drawn
  • Fallback chain gpt-oss-120b → gpt-oss-20b (Groq) → local Qwen3 8B on Ollama: it waits out the per-minute limit and switches model mid-message when the daily quota runs out
  • Voice input with Whisper large-v3-turbo and voice output generated locally, with OmniVoice on the GPU or Piper on the CPU, sentence by sentence while the previous one plays
  • Hexagonal architecture with a test that fails if an inner layer imports an outer one. Card blocking was added at the end as a test, without touching the agent loop
  • Compacted history (~90% fewer tokens per request) and token limits per customer, per question and per minute