Skip to content

This repo is a set of Mifos Community AI tools that support the Mifos products. Mifos X , Payment Hub EE, Mifos Gazelle. It is managed in Jira https://mifosforge.jira.com/jira/software/c/projects/AI/boards/100

License

Notifications You must be signed in to change notification settings

openMF/community-ai

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Mifos Community AI

A comprehensive AI-powered toolkit for the Mifos community, featuring intelligent chatbots, automation tools, translation utilities, and voice-driven banking interfaces. This project aims to provide self-service support, enhance developer productivity, and simplify access to Mifos ecosystem resources through advanced Generative AI technologies.

Table of Contents


Overview

As the Mifos community around its core products (Mifos X, Payment Hub EE, Mobile Applications, and Mifos Gazelle) grows rapidly, this repository provides a suite of AI-powered tools to support implementors, developers, and new users. The tools simplify finding relevant content across multiple sources, automate repetitive tasks, and enable innovative interfaces for banking applications.


Key Components

1. RAG-Based Chatbots

Retrieval-Augmented Generation (RAG) chatbots for querying Mifos codebases using natural language.

Available Bots

Bot Notebook Vector Storage Description
Web App Bot Web-App/web-app_bot.ipynb web_app_vector_storage_metadata/ Query the Mifos Web Application codebase
Mifos Mobile Bot Mifos-Mobile/mifos-mobile_bot.ipynb mifos-mobile_vector_storage/ Explore Mifos Mobile app code and features
Android Client Bot Android-Client/android-client_bot.ipynb android-client_vector_storage/ Navigate the Android Client codebase
Mobile Wallet Bot Mobile-Wallet/mobile-wallet_bot.ipynb mobile_wallet_vector_storage/ Query Mobile Wallet implementation

Note: Mifos Mobile also includes an alternative implementation (mifos-mobile_bot_hf_groq.ipynb) using Groq LLM and Hugging Face embeddings instead of OpenAI.

Deployed Chatbots (No Setup Required!)

Access hosted versions on Hugging Face Spaces:

How It Works

  • Processes and indexes Mifos codebases, creating vector embeddings using ChromaDB
  • Uses OpenAI embeddings (text-embedding-3-large) for semantic search
  • Leverages GPT models to generate human-like responses based on retrieved code snippets
  • Provides insights on file organization, key components, and project architecture

Local Setup

# Clone the repository
git clone https://github.com/openMF/community-ai.git
cd community-ai

# Install dependencies
pip install -r requirements.txt

# Set up API keys in .env file
echo "OPENAI_API_KEY=your_openai_api_key" > .env
# OR
echo "GEMINI_API_KEY=your_gemini_api_key" >> .env

# Launch Jupyter Notebook
jupyter notebook

# Open any bot notebook (e.g., Web-App/web-app_bot.ipynb)
# Run cells and interact via Gradio interface

2. Community Chatbot Platform

Full-stack chatbot platform with FastAPI backend and Next.js frontend for integrating with Jira, Slack, and GitHub.

πŸ“‚ Location: community-chatbot/

Features

  • Jira Agent: Query Jira issues using natural language, generate JQL, and summarize results
  • Slack Agent: Manage conversations and summarize Slack channel discussions
  • GitHub Agent: Interact with repositories and ask questions about project code
  • Modern UI: React-based chat interface with authentication (Firebase)
  • Agent-Based Workflows: LangChain-powered intelligent automation

Tech Stack

  • Backend: FastAPI (Python), LangChain, OpenAI
  • Frontend: Next.js 14, React, Tailwind CSS, shadcn/ui
  • Authentication: Firebase Auth
  • Database: Firestore

Quick Start

cd community-chatbot

# Backend setup
python3 -m venv venv
source venv/bin/activate  # On Windows: .\venv\Scripts\activate
pip install -r requirements.txt

# Configure environment variables
# Create a .env file with your API keys
# See how_to_get_keys.md for detailed setup instructions
# Add your API keys for OpenAI, Slack, Jira, GitHub, Firebase

# Start backend (from community-chatbot root)
bash scripts/run_backend.sh
# Or run individual agents:
# python scripts/jira.py
# python scripts/slack.py
# python scripts/github_agent.py

# Frontend setup (new terminal, from community-chatbot root)
pnpm install
pnpm dev

# Access at http://localhost:3000

3. Translation Tools

A. Multilingual Translation Helper

πŸ“‚ Location: tools/translation-helper/

Gradio-based translation tool powered by Gemini 2.0 Flash.

Features:

  • Supports 35+ languages (Arabic, Bengali, Chinese, French, German, Hindi, Japanese, Spanish, etc.)
  • Formal/informal tone switching
  • Real-time translation with Enter key or button trigger
cd tools/translation-helper
pip install -r requirements.txt
python app.py

B. Android XML Localization Translator

πŸ“‚ Location: Mifos-Mobile Language Translation/

Translates Android strings.xml files using Groq LLM API.

Features:

  • Parses values/strings.xml and generates localized versions
  • Handles <string> and <string-array> elements
  • Translation caching to avoid redundant API calls
  • Safe XML parsing with pretty-printing
cd "Mifos-Mobile Language Translation"
python script.py

C. JSON Translation Utility

πŸ“‚ Location: WebApp Language Translations/

CLI utility to translate JSON string values using Groq LLM.

Features:

  • Walks JSON structure and extracts string leaves
  • Persistent caching per target language
  • Exponential backoff for API reliability
cd "WebApp Language Translations"
python Script.py

4. Voice-Driven Banking

πŸ“‚ Location: Voice-Driven_banking-Lam/, voice_driven_banking/

End-to-end voice banking assistant with React frontend and FastAPI backend.

Features

  • Multilingual Support: English, Hindi, Spanish, French, German, and more
  • Core Banking Intents:
    • Check account balance
    • List recent transactions
    • Transfer money with OTP verification
  • Stateful Conversations: Context-aware multi-turn dialogues
  • Animated UI: Real-time feedback for recording, processing, and speaking states
  • AI Pipeline:
    • STT: Whisper (Hugging Face Transformers)
    • NLU/NLG: Google Gemini API (Vertex AI)
    • TTS: MMS (Hugging Face Transformers)

Tech Stack

  • Backend: FastAPI, Google Gemini, Firestore
  • Frontend: React, Tailwind CSS
  • Audio Processing: FFmpeg, Whisper, MMS
# Backend setup
cd Voice-Driven_banking-Lam/Backend
python -m venv .venv
source .venv/bin/activate  # On Windows: .\.venv\Scripts\Activate.ps1
pip install -r requirements.txt
# Configure .env file (see Backend README for details)
uvicorn main:app --reload

# Frontend setup (new terminal)
cd Voice-Driven_banking-Lam/Frontend/voicedriven
npm install
npm start

Testing Framework

πŸ“‚ Location: voice_driven_banking/

Automated testing framework for voice banking interfaces.

cd voice_driven_banking
pip install -r requirements.txt
python voice_banking_test_suite.py

5. Data Extraction & Automation

A. Jira/Confluence Data Scraper

πŸ“‚ Location: Data Scraping/

Scrapes and extracts data from Mifos Jira/Confluence pages.

cd "Data Scraping"
jupyter notebook DataExtraction.ipynb

B. GitHub Repo Automation

πŸ“‚ Location: Repo Clone Automation/

Automates cloning and processing of GitHub repositories for RAG applications.

Features:

  • Selenium-based automated repo download
  • Converts repository content to text for vector database ingestion
cd "Repo Clone Automation"
python repo_cloner.py
jupyter notebook github_repo_rag.ipynb

6. Slack Bot & Pipeline

πŸ“‚ Location: Slack_scraper_bot/, slack_pipeline/

Tools for extracting, processing, and querying Slack messages.

Features

  • Message Extraction: Convert Slack JSON exports to clean text
  • PII Removal: Automatically redact personal identifiable information
  • RAG Integration: Query Slack conversations using vector databases
  • Trustworthy LLM: Confidence scoring for generated responses

Pipeline Components

# Extract messages from Slack JSON
cd Slack_scraper_bot/scripts
python extract.py

# Remove PII
python pii_remocval.py

# Create vector database
cd ../../slack_pipeline
python main.py

Demo Bot

cd Slack_scraper_bot/scripts
jupyter notebook demo_bot.ipynb

Quick Start

Prerequisites

  • Python 3.8+
  • Node.js 18+ (for Next.js projects)
  • Jupyter Notebook
  • API Keys: OpenAI, Gemini, Groq (depending on components used)

Basic Installation

# Clone repository
git clone https://github.com/openMF/community-ai.git
cd community-ai

# Install Python dependencies
pip install -r requirements.txt

# Set up environment variables
# Create a .env file and add your API keys
# OPENAI_API_KEY=your_key_here
# GEMINI_API_KEY=your_key_here
# GROQ_API_KEY=your_key_here

# Launch Jupyter for chatbots
jupyter notebook

# Or run specific tools (see component sections above)

Project Structure

community-ai/
β”œβ”€β”€ Android-Client/              # Android Client RAG chatbot
β”‚   β”œβ”€β”€ android-client_bot.ipynb
β”‚   └── android-client_vector_storage/
β”œβ”€β”€ community_chatbot/           # Agent scripts (GitHub, Jira, Slack)
β”‚   └── agent/
β”œβ”€β”€ community-chatbot/           # Full-stack chatbot platform
β”‚   β”œβ”€β”€ app/                    # Next.js frontend pages
β”‚   β”œβ”€β”€ components/             # React UI components
β”‚   β”œβ”€β”€ scripts/                # FastAPI backend agents
β”‚   └── package.json
β”œβ”€β”€ Data Scraping/              # Jira/Confluence data extraction
β”‚   └── DataExtraction.ipynb
β”œβ”€β”€ Mifos-Mobile/               # Mifos Mobile app chatbot
β”‚   β”œβ”€β”€ mifos-mobile_bot.ipynb
β”‚   β”œβ”€β”€ mifos-mobile_bot_hf_groq.ipynb  # Alternative using Groq/HF
β”‚   └── mifos-mobile_vector_storage/
β”œβ”€β”€ Mifos-Mobile Language Translation/  # Android XML translator
β”‚   β”œβ”€β”€ script.py
β”‚   └── Readme.md
β”œβ”€β”€ Mobile-Wallet/              # Mobile Wallet chatbot
β”‚   β”œβ”€β”€ mobile-wallet_bot.ipynb
β”‚   └── mobile_wallet_vector_storage/
β”œβ”€β”€ Repo Clone Automation/      # GitHub repo automation
β”‚   β”œβ”€β”€ repo_cloner.py
β”‚   └── github_repo_rag.ipynb
β”œβ”€β”€ Slack_scraper_bot/          # Slack message extraction & bot
β”‚   β”œβ”€β”€ scripts/
β”‚   └── data/
β”œβ”€β”€ slack_pipeline/             # Slack vector database pipeline
β”‚   β”œβ”€β”€ main.py
β”‚   └── vectordb.py
β”œβ”€β”€ tools/
β”‚   └── translation-helper/     # Multilingual translation tool
β”‚       └── app.py
β”œβ”€β”€ Voice-Driven_banking-Lam/   # Voice banking assistant
β”‚   β”œβ”€β”€ Backend/
β”‚   └── Frontend/
β”œβ”€β”€ voice_driven_banking/       # Voice banking test suite
β”‚   └── voice_banking_test_suite.py
β”œβ”€β”€ Web-App/                    # Web App chatbot
β”‚   β”œβ”€β”€ web-app_bot.ipynb
β”‚   └── web_app_vector_storage_metadata/
β”œβ”€β”€ WebApp Language Translations/  # JSON translation utility
β”‚   └── Script.py
β”œβ”€β”€ CodeCommentingScript.ipynb  # Code preprocessing utility
β”œβ”€β”€ requirements.txt            # Python dependencies
└── README.md

Technologies Used

AI & Machine Learning

  • LLMs: OpenAI GPT-4, Google Gemini 2.0 Flash, Groq
  • Embeddings: OpenAI text-embedding-3-large
  • Frameworks: LangChain, Hugging Face Transformers
  • Vector Databases: ChromaDB, Pinecone

Backend

  • Python: FastAPI, Flask
  • Data Processing: BeautifulSoup, Selenium, pandas

Frontend

  • React/Next.js 14: Server-side rendering, App Router
  • UI Libraries: Tailwind CSS, shadcn/ui, Radix UI
  • State Management: Zustand
  • Forms: React Hook Form, Zod validation

Database & Storage

  • Firebase: Firestore, Firebase Auth
  • Vector Stores: ChromaDB (persistent), Pinecone

Voice & Audio

  • STT: Whisper (Hugging Face)
  • TTS: MMS (Hugging Face)
  • Processing: FFmpeg

Development Tools

  • Notebooks: Jupyter
  • UI Prototyping: Gradio
  • Testing: Jest, Selenium
  • Package Management: pip, pnpm

Contributing

We welcome contributions from the community! Here's how you can help:

Ways to Contribute

  • πŸ› Report bugs by opening issues
  • πŸ’‘ Suggest new features or improvements
  • πŸ“ Improve documentation
  • πŸ”§ Submit pull requests with bug fixes or new features
  • πŸ§ͺ Test and provide feedback on existing tools

Contribution Workflow

  1. Fork the repository

    git clone https://github.com/YOUR_USERNAME/community-ai.git
    cd community-ai
  2. Create a feature branch

    git checkout -b feature/your-feature-name
  3. Make your changes

    • Follow existing code style and conventions
    • Add tests if applicable
    • Update documentation
  4. Commit your changes

    git add .
    git commit -m "feat: add your feature description"
  5. Push and create a Pull Request

    git push origin feature/your-feature-name

    Then open a PR on GitHub with a clear description of your changes.

Development Guidelines

  • Use meaningful commit messages (follow Conventional Commits)
  • Ensure code is well-documented with comments
  • Test your changes before submitting
  • Keep PRs focused on a single feature/fix

Links and Resources

Mifos Community

Related Projects

Deployed Chatbots


License

This project is licensed under the MPL-2.0 License - see the LICENSE file for details.


Support

For questions, issues, or feature requests:


Built with ❀️ by the Mifos Community

About

This repo is a set of Mifos Community AI tools that support the Mifos products. Mifos X , Payment Hub EE, Mifos Gazelle. It is managed in Jira https://mifosforge.jira.com/jira/software/c/projects/AI/boards/100

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 14