A support bot that makes up account balances is not just useless in a digital bank. It is dangerous. Financial conversations demand exact numbers, verified payees, and an audit trail for every claim. Large language models excel at conversation, but they hallucinate. When a user asks, “How much remain for my account?” the model must reach for a database, not imagination. That is exactly what function calling enforces, and it is the core of this build.
Google’s Gemma 4 gives developers a capable 31-billion parameter model that can follow complex instructions and carry on natural dialogue, including in regional dialects. Paired with Google AI Studio, it becomes a rapid prototyping environment where you can define tools, test edge cases, and export working JavaScript before you touch a server. The goal here is a fintech support agent that checks account balances, tracks transaction status, and pays bills. Crucially, it responds in Nigerian Pidgin when the user does, matching tone without ever improvising financial facts.
Why Function Calling Matters for Financial Bots
Without function calling, a language model treats every question as a creative writing exercise. Ask it for a balance and it might invent a plausible-sounding figure drawn from patterns in its training data. That failure mode is unacceptable when real money is involved.
Function calling reverses the flow. The model’s job is not to know the balance. Its job is to recognize intent, choose the correct tool, and extract parameters. When a user writes “Check my balance,” Gemma 4 emits a structured JSON request—something like a call to get_balance with an account_id. Your backend executes that call against the core banking system, gets the real figure, and feeds it back into the conversation. Only then does the model generate the human-facing sentence. Every answer comes from a tool call to a backend. Because the model is gated by external logic, hallucinations stop at the API boundary.
This pattern also creates clear audit trails. Each tool request and its corresponding result are logged in the message history. Regulators and risk teams can inspect exactly when a balance was checked and what number the user received.
Designing the Agent in Google AI Studio
The workflow starts inside Google AI Studio. Select gemma-4-31b-it, the instruct-tuned variant optimized for dialogue and instruction following.
Next, write system instructions that set hard boundaries. For a digital bank, the tone should be professional, direct, and calm. But the instructions must go further. Tell the model explicitly that it never estimates account data, never assumes a transaction status, and never completes a bill payment without confirming the tool result. If the user writes in Nigerian Pidgin, the model should reply in Nigerian Pidgin. If the user switches to English, the model follows. The system prompt is where you encode trust and safety policy in plain language.
Then define the tool schemas. Think of these as contracts between the model and your backend. You need at least three:
get_balance
Parameters:account_id(string, required)
Returns: current balance and currency.get_transaction_status
Parameters:transaction_reference(string, required)
Returns: status such as pending, completed, or failed, plus a timestamp.pay_bill
Parameters:biller_code(string, required),amount(number, required),account_pin(string, optional depending on your flow)
Returns: confirmation reference or error message.
Each schema uses a standard JSON format describing the function name, description, and parameter properties. The description fields matter immensely. Write them so the model understands when to invoke each tool. Ambiguous descriptions lead to wrong tool selection, so be specific: “Use get_balance when the user wants to know their current account balance. Do not use it for transaction history.”
Prototyping in the Browser
Before you write a single Express route, test the entire conversation flow inside AI Studio’s chat panel. This saves days of backend rework. Type a query in Nigerian Pidgin: “Wetin remain inside my account?” Watch whether Gemma 4 correctly emits a get_balance call or whether it tries to answer from training data. If it gets the parameters wrong—perhaps using account_number instead of account_id—you fix the schema description right there.
Hãy kiểm tra cả các chế độ lỗi. Thử yêu cầu trạng thái giao dịch mà không cung cấp mã tham chiếu. Một mô hình được hướng dẫn tốt sẽ yêu cầu người dùng cung cấp tham số còn thiếu hoặc gọi công cụ với những gì nó có và để backend trả về lỗi xác thực. Bạn muốn thấy những hành vi này trong môi trường sandbox, chứ không phải trong môi trường production.
Khi các prompt và schema đã hoạt động chính xác, hãy xuất mã JavaScript. AI Studio sẽ tạo ra một đoạn mã (snippet) sạch sẽ, giúp cấu trúc hóa yêu cầu API với system prompt, tin nhắn người dùng và các định nghĩa công cụ của bạn. Đây sẽ là nền tảng cho logic backend của bạn.
Kết nối với Express Backend
Lấy mã đã xuất và đưa vào một ứng dụng Express. Kiến trúc này khá đơn giản, nhưng vòng lặp thực thi (execution loop) mới là phần quan trọng nhất.
Thiết lập một endpoint POST—có thể là /chat—để tiếp nhận tin nhắn của người dùng và bất kỳ lịch sử phiên (session history) nào. Chuyển tiếp chúng đến endpoint của Gemma 4, bạn có thể gọi qua một API tương thích với OpenAI hoặc endpoint suy luận (inference endpoint) riêng của Google tùy thuộc vào lựa chọn lưu trữ của bạn.
Phản hồi từ mô hình sẽ rơi vào một trong hai loại. Hoặc đó là một tin nhắn văn bản cuối cùng, hoặc nó chứa một tool_call yêu cầu dữ liệu. Khi bạn nhận được một lệnh gọi công cụ (tool call), hãy thực thi hàm tương ứng với backend của bạn. Truy vấn cơ sở dữ liệu để lấy số dư. Gọi bộ xử lý thanh toán để lấy trạng thái hóa đơn. Thêm kết quả của công cụ vào lịch sử hội thoại dưới dạng một tin nhắn mới với vai trò (role) là tool, sau đó gửi toàn bộ mảng đã cập nhật trở lại cho Gemma 4.
Lặp lại vòng lặp này cho đến khi mô hình trả về câu trả lời bằng văn bản cuối cùng. Câu trả lời đó sẽ dựa trên dữ liệu thực tế mà bạn đã cung cấp. Express giúp việc điều phối này trở nên dễ dàng vì mỗi lần lặp qua vòng lặp chỉ là một yêu cầu HTTP khác, và bạn có thể sử dụng async/await để thực thi công cụ một cách gọn gàng.
Trong giai đoạn phát triển ban đầu, hãy sử dụng dữ liệu giả (mock data) cho các lệnh gọi công cụ này. Một đối tượng JavaScript đơn giản ánh xạ các ID tài khoản mẫu với số dư là đủ để chứng minh vòng lặp hoạt động. Mục tiêu là để xác thực mô hình tương tác trước khi tích hợp với các API ngân hàng của bên thứ ba vốn thường thiếu ổn định.
Từ Bản mẫu đến Thực tế
Một bản mẫu (prototype) đang hoạt động không phải là hạ tầng ngân hàng thực tế, nhưng lộ trình từ bản mẫu đến thực tế là rất rõ ràng.
Thay thế dữ liệu giả bằng các API ngân hàng lõi (core banking) thực tế. Kết nối công cụ get_balance của bạn với hệ thống sổ cái (ledger system) qua REST hoặc gRPC. Kết nối pay_bill vào hệ thống chuyển mạch thanh toán (payment switch) thực tế của bạn. Khi làm điều này, bạn không cần thay đổi mô hình hay logic hội thoại; bạn chỉ cần thay đổi phần triển khai (implementation) của các trình xử lý công cụ (tool handlers).
Thêm Redis để quản lý phiên (session management). Trạng thái hội thoại trong lĩnh vực ngân hàng rất nhạy cảm và được kiểm soát chặt chẽ. Bạn cần lưu trữ lịch sử tin nhắn một cách an toàn, hết hạn chúng sau một khoảng thời gian nhất định và đảm bảo rằng phiên của người dùng không bị rò rỉ qua các yêu cầu khác nhau. Redis xử lý việc này bằng các chính sách TTL và tra cứu khóa (key lookup) nhanh chóng.
Khi lưu lượng truy cập tăng lên, hãy chuyển việc suy luận sang vLLM. AI Studio rất tuyệt vời để tạo bản mẫu, nhưng việc tự lưu trữ suy luận với vLLM trên các cụm GPU sẽ giúp bạn kiểm soát độ trễ, việc xử lý theo lô (batching) và chi phí ở quy mô lớn. Gemma 4 chạy hiệu quả dưới vLLM và hành vi gọi công cụ vẫn giữ nguyên.
Bài học cốt lõi
Xây dựng một đại lý fintech đáng tin cậy không nằm ở kích thước mô hình mà nằm ở các ràng buộc về kiến trúc. Gemma 4 cung cấp đủ khả năng suy luận để phân tích tiếng Pidgin Nigeria (có trộn mã) và điều hướng các ý định phức tạp, nhưng sự an toàn đến từ vòng lặp công cụ. Mọi số dư đều được lấy trực tiếp. Mọi khoản thanh toán hóa đơn đều được xác nhận bởi một hệ thống bên ngoài. Không có gì là do mô hình tự bịa ra.
Hãy bắt đầu trên trình duyệt với AI Studio, củng cố logic trong vòng lặp Express, và thay thế bằng hạ tầng ngân hàng thực tế khi các luồng hội thoại đã trở nên cực kỳ vững chắc. Đó là cách bạn tung ra một chatbot mà mọi người thực sự có thể tin tưởng giao phó tiền bạc của họ.
Nguồn: Building a Full Gemma 4 Google AI Studio Project: A Fintech Support Agent
Cộng đồng học tập tùy chọn: GyaanSetu AI on Telegram
