Бот підтримки, який вигадує баланс рахунку, у цифровому банку не просто марний. Він небезпечний. Фінансові розмови потребують точних чисел, перевірених отримувачів платежів та аудиторського сліду для кожної заяви. Великі мовні моделі чудово справляються з розмовами, але вони схильні до галюцинацій. Коли користувач запитує: «Скільки залишилося на моєму рахунку?», модель має звертатися до бази даних, а не до уяви. Саме це забезпечує виклик функцій (function calling), і це основа цього проєкту.
Google Gemma 4 надає розробникам потужну модель із 31 мільярдом параметрів, яка може виконувати складні інструкції та вести природний діалог, зокрема регіональними діалектами. У поєднанні з Google AI Studio вона перетворюється на середовище для швидкого прототипування, де ви можете визначати інструменти, тестувати граничні випадки та експортувати робочий JavaScript ще до того, як торкнетеся сервера. Мета полягає у створенні фінтех-агента підтримки, який перевіряє баланс рахунків, відстежує статус транзакцій та оплачує рахунки. Що важливо, він відповідає нігерійським піджином (Nigerian Pidgin), якщо користувач пише ним, підлаштовуючись під тон, але ніколи не вигадуючи фінансові факти.
Чому виклик функцій (function calling) важливий для фінансових ботів
Без виклику функцій мовна модель сприймає кожне запитання як вправу з творчого письма. Попросіть її назвати баланс, і вона може вигадати правдоподібну цифру, засновану на закономірностях у її навчальних даних. Такий сценарій помилки є неприпустимим, коли йдеться про реальні гроші.
Виклик функцій змінює цей порядок. Завдання моделі — не знати баланс. Її завдання — розпізнати намір, обрати правильний інструмент і витягти параметри. Коли користувач пише «Перевір мій баланс», Gemma 4 видає структурований JSON-запит — наприклад, виклик get_balance з account_id. Ваш бекенд виконує цей виклик до основної банківської системи, отримує реальну цифру та передає її назад у розмову. Тільки після цього модель генерує речення для людини. Кожна відповідь надходить через виклик інструменту до бекенду. Оскільки модель обмежена зовнішньою логікою, галюцинації зупиняються на межі API.
Цей патерн також створює чіткі аудиторські сліди. Кожен запит інструменту та його відповідний результат фіксуються в історії повідомлень. Регулятори та команди з управління ризиками можуть перевірити, коли саме було перевірено баланс і яку цифру отримав користувач.
Проєктування агента в Google AI Studio
Робочий процес починається в Google AI Studio. Виберіть gemma-4-31b-it — варіант, налаштований для виконання інструкцій (instruct-tuned), оптимізований для діалогу та дотримання вказівок.
Далі напишіть системні інструкції, які встановлюють жорсткі межі. Для цифрового банку тон має бути професійним, прямим і спокійним. Але інструкції мають іти далі. Чітко скажіть моделі, що вона ніколи не оцінює дані рахунку, ніколи не припускає статус транзакції та ніколи не завершує оплату рахунку без підтвердження результату роботи інструменту. Якщо користувач пише нігерійським піджином, модель має відповідати нігерійським піджином. Якщо користувач переходить на англійську, модель слідує за ним. Системний промпт — це місце, де ви кодуєте політику довіри та безпеки простою мовою.
Потім визначте схеми інструментів. Думайте про них як про контракти між моделлю та вашим бекендом. Вам знадобиться щонайменше три:
get_balance
Параметри:account_id(string, обов'язково)
Повертає: поточний баланс і валюту.get_transaction_status
Параметри:transaction_reference(string, обов'язково)
Повертає: статус, наприклад, pending, completed або failed, а також мітку часу.pay_bill
Параметри:biller_code(string, обов'язково),amount(number, обов'язково),account_pin(string, необов'язково, залежно від вашого сценарію)
Повертає: референс підтвердження або повідомлення про помилку.
Кожна схема використовує стандартний формат JSON, що описує назву функції, опис та властивості параметрів. Поля опису мають величезне значення. Пишіть їх так, щоб модель розуміла, коли викликати кожен інструмент. Нечіткі описи призводять до неправильного вибору інструменту, тому будьте конкретними: «Використовуйте get_balance, коли користувач хоче дізнатися свій поточний баланс рахунку. Не використовуйте його для історії транзакцій».
Прототипування в браузері
Перш ніж писати хоча б один маршрут Express, протестуйте весь потік розмови в панелі чату AI Studio. Це заощаджує дні переробки бекенду. Введіть запит нігерійським піджином: «Wetin remain inside my account?». Подивіться, чи правильно Gemma 4 видає виклик get_balance, чи намагається відповісти на основі навчальних даних. Якщо вона помилиться в параметрах — наприклад, використає account_number замість account_id — ви зможете виправити опис схеми прямо там.
Test the failure modes too. Ask for a transaction status without providing a reference number. A well-instructed model should either ask the user for the missing parameter or call the tool with what it has and let the backend return a validation error. You want to see these behaviors in the sandbox, not in production.
Once the prompts and schemas behave correctly, export the JavaScript code. AI Studio generates a clean snippet that structures the API request with your system prompt, user message, and tool definitions. This becomes the foundation of your backend logic.
Wiring Up the Express Backend
Take the exported code and drop it into an Express application. The architecture is straightforward, but the execution loop is the critical piece.
Set up a POST endpoint—perhaps /chat—that accepts the user’s message and any session history. Forward these to the Gemma 4 endpoint, which you can hit via an OpenAI-compatible API or Google’s own inference endpoint depending on your hosting choice.
The response from the model falls into one of two categories. Either it is a final text message, or it contains a tool_call requesting data. When you receive a tool call, execute the corresponding function against your backend. Query the database for the balance. Hit the payment processor for the bill status. Append the tool result to the conversation history as a new message with the role tool, and send the entire updated array back to Gemma 4.
Repeat this loop until the model returns a final text answer. That answer will be grounded in the real data you supplied. Express makes this easy to coordinate because each pass through the loop is just another HTTP request, and you can async/await the tool execution cleanly.
During early development, back these tool calls with mock data. A simple JavaScript object mapping sample account IDs to balances is enough to prove the loop works. The point is to validate the interaction pattern before integrating with brittle third-party banking APIs.
From Prototype to Production
A working prototype is not production banking infrastructure, but the path from one to the other is clear.
Replace the mock data with real core banking APIs. Connect your get_balance tool to the ledger system over REST or gRPC. Hook pay_bill into your actual payment switch. When you do this, you do not need to change the model or the conversation logic; you only swap the implementation of the tool handlers.
Add Redis for session management. Conversational state in banking is sensitive and regulated. You need to store message histories securely, expire them after a set timeout, and ensure that a user’s session cannot leak across requests. Redis handles this with TTL policies and fast key lookups.
When traffic grows, moveInference to vLLM. AI Studio is excellent for prototyping, but self-hosted inference with vLLM on GPU clusters gives you control over latency, batching, and cost at scale. Gemma 4 runs efficiently under vLLM, and the tool-calling behavior remains identical.
The Real Takeaway
Building a trustworthy fintech agent is less about model size and more about architectural constraints. Gemma 4 provides enough reasoning power to parse code-switched Nigerian Pidgin and route complex intents, but the safety comes from the tool loop. Every balance is fetched live. Every bill payment is confirmed by an external system. Nothing is invented.
Start in the browser with AI Studio, harden the logic in an Express loop, and swap in real banking infrastructure once the conversation flows are bulletproof. That is how you ship a bot people can actually trust with their money.
Source: Building a Full Gemma 4 Google AI Studio Project: A Fintech Support Agent
Optional learning community: GyaanSetu AI on Telegram
