KindVoice UA 💙💛

Inspiration

My project was deeply inspired by the desire to help people living in Ukraine who unfortunately have to cope with panic, fear, stress, and emotional exhaustion on a regular basis because of the war. Being Ukrainian myself, I realise how desperate the need for emotional support can be when experiencing an attack.

While KindVoiceUA is not intended to replace professional psychological support, I believe it can become a small source of comfort and emotional grounding for people during difficult moments. I wanted to create something accessible, human, and supportive — a space where people could feel heard even when they feel alone. I also strongly believe that even if this project helps just one Ukrainian feel calmer, safer, or less isolated, then it is already meaningful.

What it does

KindVoiceUA is a multilingual AI-powered emotional support companion via Telegram App created for Ukrainians experiencing stress, panic, loneliness, displacement, and emotional exhaustion caused by the current war.

The project combines conversational AI, contextual memory, emotional adaptation, and voice interaction inside Telegram to create a space where users can feel heard, calmer, and less alone during difficult moments. While KindVoiceUA is not intended to replace professional psychological support, it was designed to become an accessible first layer of emotional comfort and grounding for people who may have nobody to talk to in stressful situations.

How we built it

KindVoiceUA was built as a Telegram AI system using Python and modern AI APIs. To make the project more structured, I intentionally split its code into separate folders and therefore - files. The whole structure can be accessed on GitHub via the link I attached below 👇

link

Because free AI resources are limited, I implemented a multi-provider architecture that prioritises Groq and automatically falls back to OpenRouter and Gemini whenever necessary. This improves reliability, helps prevent service interruptions, and makes the project more cost-efficient. The project was deployed publicly using Render to make the bot accessible in real-world conditions rather than remaining only a local prototype.

One more aspect of my bot is its ability to store users' data (such as chat_id, mode, etc) using PostgreSQL (Neon), to be later able to demonstrate statistics such as the number of individuals who accessed KindVoiceUA's support 🫂

Challenges we ran into

Honestly, there were a number of challenges I encountered while working on my project. First of all, one of the biggest ones was creating emotionally appropriate AI responses instead of generic chatbot answers. Early versions of the bot sounded overly robotic, repetitive, or emotionally unnatural, especially during sensitive conversations related to panic and wartime stress. Another major challenge was deployment and infrastructure. Since the project was built independently with limited resources, finding free and stable hosting solutions became unexpectedly difficult. In a nutshell, I benchmarked a wide range of deployment platforms and methods before finally finding the right fit for the bot.

Problems such as managing AI token limits, maintaining multilingual quality, supporting contextual memory, and balancing emotional realism with technical limitations were key challenges as well and unfortunately slowed down the process significantly.

Hence, as I have already mentioned, instead of relying on a single provider, I decided to build a fallback system that automatically switches between multiple AI services. Although this required additional architectural work, I believe that it ultimately made the bot more reliable and significantly more resilient.

Accomplishments that we're proud of

One of the accomplishments I am most proud of is transforming the project from an idea into a fully deployed public AI system that people can genuinely interact with. I hope that in future, the impact of this project is going to increase significantly, with real users finding it extremely useful when facing the problems this bot is aimed at tackling.

What we learned

This project taught me that building AI systems is not only about models and code, but also about empathy, communication, and responsibility.

I learned how to integrate and route multiple AI providers, work with contextual memory, build database-backed applications, and manage real-world limitations such as API quotas and deployment constraints.

However, most importantly, I learned that technology can become far more meaningful when it is built around real human problems instead of purely technical experimentation.

What's next for KindVoiceUA

The long-term goal for KindVoiceUA is to evolve into a more advanced emotional support platform accessible to Ukrainians worldwide.

I am also planning to continue improving the project's emotional realism so conversations feel increasingly natural, supportive, and comforting during difficult moments.

Demo Note

KindVoiceUA was created with Ukrainian users in mind, and in real-world usage most conversations would likely take place in Ukrainian. However, I recorded this demo in English to make it easier for you to follow the interaction flow and evaluate the project's features. The bot fully supports both Ukrainian and English, and I warmly invite you to try it yourself using the provided Telegram link 🤗.

link

One more thing to mention is that the demo video was recorded at 2X speed. The bot in the video was also being tested using a mobile phone because this is how most Ukrainians interact with Telegram on a daily basis. I wanted the demo to represent the actual user experience as closely as possible rather than presenting the project in an artificial desktop-only environment. To demonstrate how exactly it looks on a computer, I have attached a range of photos as well.

Infrastructure Note

Since I deployed the bot on Render's free tier to avoid running up a massive hosting bill, the server uses a 'Scale-to-Zero' policy - meaning if nobody uses the bot for a while, the container goes to sleep to save cloud resources. This is why I built the bot using Webhooks rather than traditional polling, the very first text you send after it’s been inactive for a while will instantly wake the server back up. However, please keep in mind that the server needs about 30 to 60 seconds for this 'Start' to initialize the Python environment again. Once that first message goes through and the server is awake, all following responses will be near-instantaneous!

So, if you experience a slight delay with your first interaction, your patience would be greatly appreciated while the backend initializes 😊

Built With

  • deepseekchatv3
  • gemini-2.5-flash
  • github
  • googlegeminiapi
  • groqapi
  • llama-3.3-70b-versatile
  • openrouterapi
  • postgresql
  • pytelegrambotapi
  • python
  • render
  • vscode
  • whisper-large-v3
Share this project:

Updates