Raiffeisenbank Ships a Kotlin RAG Assistant With No Python and No New Hires
Raiffeisenbank's team has rolled out an AI assistant for internal users, including product owners, tech leads and CTOs. They built it on Kotlin and Spring Boot, without Python. The problem was information scattered across Excel spreadsheets, emails and notes. RAG pulled the answers into one place. The unexpected takeaway: the assistant's quality depends directly on the quality of the documentation. The team had to clean that up first.
AI-processed from Habr AI; edited by Hamidun News
Raiffeisenbank's team built a RAG assistant on Kotlin and Spring Boot without writing a single line of Python. Their experience shows that a JVM stack handles AI workloads no worse than a Python stack, provided the team already works in it and doesn't want to take on new skill sets.
Where the problem came from
A large bank's internal systems are layers of documents, spreadsheets and informal agreements that aren't collected in any single place. Product owners, tech leads, CTOs, B-1 level managers and cost-management staff all spend time not on the actual work in the system but on hunting for the information they need: Excel files, emails, local notes, calls to colleagues. For experienced employees, this is just friction. For new hires, it's a real barrier.
The idea behind the AI assistant is simple: gather the answers in one place and serve them up in plain language. The point isn't an interface for its own sake but real savings of a few minutes on every work query. New employees feel the pain most acutely, since they don't yet have informal channels or someone they can ask without a lot of explaining.
Why JVM, not Python
Python is the de facto standard for AI development. LangChain, LlamaIndex, HuggingFace Transformers: the entire mature AI ecosystem grew up on Python and works best there. It would seem the logical choice for an AI project.
But the bank's product team lives on the JVM: Kotlin, Java, Spring Boot. Switching to Python would have meant bringing in new specialists, building a new stack around a single product, creating new areas of responsibility, and taking on extra maintenance risk. The team chose differently and stayed in a familiar environment. It was a deliberate decision, not inertia.
The key arguments for the JVM:
- Maintenance and scalability stay within the existing team
- No need to hire Python developers or retrain current ones
- Spring Boot provides ready-made infrastructure: security, logging, deployment
- The LLM is connected via API, so the language model doesn't require Python on the server
- The JVM ecosystem has working libraries for embeddings and vector stores
The result: a full-fledged RAG pipeline in Kotlin, with no need to bring in new skill sets for a single internal tool.
Documentation as a hidden problem
One of the project's key lessons: RAG works exactly as well as its source data. When the assistant started giving inaccurate or contradictory answers, the team found the cause wasn't the model or the pipeline architecture. The cause was the documents themselves.
Scattered Excel spreadsheets with different versions of the same data, outdated instructions nobody had updated in years, duplicate records from different sources: all of it became visible as soon as the AI started relying on them. The project gave the team a reason to clean up knowledge that had previously just piled up without structure or periodic cleanup.
In effect, the AI assistant became a documentation audit tool, even though nobody originally planned it that way. Part of the effort went not into development but into getting the sources in order. This is a non-obvious but practically unavoidable part of any RAG deployment.
What this means
JVM teams don't have to switch to Python for AI. If the expertise and infrastructure are already in place, they can be used directly. A RAG pipeline on Kotlin and Spring Boot comes together without fundamental losses in functionality, and with full control inside a familiar stack.
For banks and fintech companies, where the JVM is the de facto standard, Raiffeisenbank's experience is an important precedent: AI tasks can be solved without changing tools.
- Nov 1, 2026Pika Labs releases open video model H3 Flex: 6 steps instead of 50
- Nov 1, 2026Hugging Face's BERT Tokenizer Gets a 50x Speedup by Skipping Needless Work on ASCII
- Nov 1, 2026Illinois compiled 12 151 open problems and tested whether AI can solve them
- Nov 1, 2026Layer Duplication During Training Lifts GSM8K from 12% to 19% on a 3B Model
Key Questions Answered
Where the problem came from?
A large bank's internal systems are layers of documents, spreadsheets and informal agreements that aren't collected in any single place. Product owners, tech leads, CTOs, B-1 level managers and cost-management staff all spend time not on the actual work in the system but on hunting for the information they need: Excel files, emails, local notes, calls to colleagues. For experienced employees, this is just friction. For new hires, it's a real barrier. The idea behind the AI assistant is simple: gather the answers in one place and serve them up in plain language. The point is
Why JVM, not Python?
Python is the de facto standard for AI development. LangChain, LlamaIndex, HuggingFace Transformers: the entire mature AI ecosystem grew up on Python and works best there. It would seem the logical choice for an AI project. But the bank's product team lives on the JVM: Kotlin, Java, Spring Boot. Switching to Python would have meant bringing in new specialists, building a new stack around a single product, creating new areas of responsibility, and taking on extra maintenance risk. The team chose differently and stayed in a familiar environment. It was a deliberate decision,
What are the key details on Documentation as a hidden problem?
One of the project's key lessons: RAG works exactly as well as its source data. When the assistant started giving inaccurate or contradictory answers, the team found the cause wasn't the model or the pipeline architecture. The cause was the documents themselves. Scattered Excel spreadsheets with different versions of the same data, outdated instructions nobody had updated in years, duplicate records from different sources: all of it became visible as soon as the AI started relying on them. The project gave the team a reason to clean up knowledge that had previously just pil
Test Frontier LLMs & Autonomous Agents in One Workspace
Run Claude Opus 5.5, GPT-6, Gemini 3.1, and DeepSeek side-by-side in Nomad AI (nomadnet.ai) — unified model routing, deep research, and multimodal workflows under one subscription.
The AI world, distilled — once a week
Seven stories that actually mattered, hand-picked. No noise, no reposts, no press releases.
Done! Check your inbox for a confirmation.