Skip to content

Cross-platform Flutter AI chat application for Android, Linux, and Windows. Features a fine-tuned agent capable of training other agents (like instructors) using Google's new A2A service.

Notifications You must be signed in to change notification settings

Msr7799/Atlas-AI

Repository files navigation

Atlas AI - Advanced AI Assistant

alt text Flutter Version Dart Version License Developer GitHub β™₯️

Releases

Overview

Read in Arabic

Atlas AI is a sophisticated AI assistant application built with Flutter, featuring native Arabic language support and advanced conversational capabilities. The application integrates multiple AI models and provides a seamless, cross-platform experience with modern UI design and robust performance optimizations.

✨ Key Features

Features

πŸ€– Multi-Model AI Integration

  • Groq Models: 10 different models including Llama 3.1, Mixtral, and Gemma
  • GPTGod Service: 17 advanced models with GPT-4 support
  • Tavily Search: Real-time web search integration
  • Hugging Face: Access to open-source models
  • Local AI: Offline model support

🌐 Language Support

  • Native Arabic Support: Full RTL layout and Arabic language processing
  • Multi-language Interface: English and Arabic UI
  • Localized Content: Context-aware responses in Arabic

🎨 Modern User Interface

  • Material Design 3: Modern, responsive design system
  • Dark/Light Mode: Dynamic theming with user preferences
  • Cross-Platform: Consistent experience across all platforms
  • Accessibility: Full accessibility support

πŸ”§ Advanced Capabilities

  • Fine-Tuning Advisor: Intelligent model training recommendations

MCP Setup

  • MCP Integration: Model Context Protocol for enhanced memory
  • Voice Input: Speech-to-text functionality
  • Chat Export: Multiple export formats (JSON, CSV, TXT)
  • Performance Optimization: Advanced memory and resource management

πŸ” Security & Privacy

  • API Key Management: Secure key storage and management
  • Local Data Storage: SQLite database with encryption
  • Permission Management: Granular access controls
  • Privacy-First: No data sent to external servers without consent

πŸš€ Getting Started

Prerequisites

  • Flutter SDK 3.8.1 or higher
  • Dart SDK 3.8.1 or higher
  • Android Studio / VS Code
  • Git

Installation

  1. Clone the repository

    git clone https://github.com/msr7799/Atlas-AI.git
    cd Atlas-AI
  2. Install dependencies

    flutter pub get
  3. Configure environment variables

    cp example_.env .env
    # Edit .env file with your API keys (optional - app includes default keys)
  4. Run the application

    flutter run

πŸ“± Platform Support

Platform Status Notes
Android βœ… Full support
iOS βœ… Full support
Windows βœ… Full support
Linux βœ… Full support
Web βœ… Limited features

πŸ—οΈ Project Structure

lib/
β”œβ”€β”€ main.dart                    # Application entry point
β”œβ”€β”€ core/                        # Core business logic
β”‚   β”œβ”€β”€ services/               # AI and platform services
β”‚   β”œβ”€β”€ performance/           # Performance optimization
β”‚   β”œβ”€β”€ theme/                # UI theming
β”‚   └── utils/               # Utility functions
β”œβ”€β”€ data/                      # Data layer
β”‚   β”œβ”€β”€ models/              # Data models
β”‚   β”œβ”€β”€ repositories/        # Data repositories
β”‚   └── datasources/        # Data sources
└── presentation/            # UI layer
    β”œβ”€β”€ pages/              # Application screens
    β”œβ”€β”€ widgets/           # Reusable UI components
    └── providers/        # State management

πŸ”§ Configuration

API Keys Setup

The application comes with default API keys for immediate use. For production or heavy usage, configure your own keys:

  1. Copy example_.env to .env
  2. Add your API keys:
    GROQ_API_KEY=your_groq_key
    GPTGOD_API_KEY=your_gptgod_key
    TAVILY_API_KEY=your_tavily_key
    

Available AI Models

Groq Models (10 available)

  • Llama 3.1 8B - Fast, balanced model
  • Llama 3.1 70B - High-quality responses
  • Mixtral 8x7B - Excellent reasoning
  • Gemma 9B - Efficient processing

GPTGod Models (17 available)

  • GPT-4 Turbo - Latest OpenAI model
  • Claude 3 Opus - Anthropic's flagship
  • Gemini Pro - Google's advanced model

🎯 Usage

Basic Chat

  1. Launch the application
  2. Select your preferred AI model
  3. Start conversing in Arabic or English

Voice Input

  1. Tap the microphone button
  2. Speak your message
  3. The app will transcribe and process your speech

Model Training

  1. Navigate to Model Training page
  2. Configure training parameters
  3. Upload your training data
  4. Monitor training progress

Export Conversations

  1. Open chat drawer
  2. Select "Export Chat"
  3. Choose format (JSON/CSV/TXT)
  4. Save to device

🀝 Contributing

We welcome contributions! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Development Guidelines

  • Follow Flutter/Dart best practices
  • Maintain Arabic language support
  • Write comprehensive tests
  • Update documentation
  • Ensure cross-platform compatibility

πŸ“„ License

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

πŸ‘¨β€πŸ’» Developer

Mohamed S AL-Romaihi

πŸ› Bug Reports & Feature Requests

If you encounter any issues or have suggestions for improvements:

πŸ“§ Email: alromaihi2224@gmail.com

Please include:

  • Device/Platform information
  • Steps to reproduce the issue
  • Expected vs actual behavior
  • Screenshots (if applicable)

πŸ™ Acknowledgments

  • Flutter team for the amazing framework
  • AI model providers (Groq, OpenAI, Anthropic)
  • Open-source community contributors
  • Arabic language processing community

Atlas AI - Empowering conversations with intelligent AI assistance

Built with ❀️ by Mohamed S AL-Romaihi

  • Advanced animations and visual effects
  • Dark and light mode support
  • Interactive chat interface with file support

πŸ”§ Advanced Developer Tools

  • Tavily API integration for smart search
  • MCP system for advanced memory
  • Specialized data analysis support
  • Developer debug panel

πŸ“± Multi-Platform

  • Full support for Android, iOS, Web, Linux, Windows, macOS
  • Responsive for all screen sizes
  • Optimized performance across platforms

πŸš€ Quick Start

System Requirements

# Flutter SDK
Flutter 3.8.1 or newer
Dart 3.8.1 or newer

# Additional tools
Git
Node.js (for MCP services)

Installation

  1. Clone the project:
git clone https://github.com/Msr7799/Atlas-AI.git
cd Atlas-AI
  1. Install dependencies:
flutter pub get
  1. Set environment variables:
# Create .env file in root
cp .env.example .env

# Edit and add your API keys
GROQ_API_KEY=your_groq_api_key_here
TAVILY_API_KEY=your_tavily_api_key_here
TRAVILY_URL_API_PAIRED=your_mcp_endpoint_here
OPENROUTER_API_KEY=your_openrouter_api_key_here
  1. Run the app:
# For Android/iOS
flutter run

# For Web
flutter run -d chrome

# For Desktop
flutter run -d linux   # or windows or macos

πŸ—οΈ Project Architecture

lib/
β”œβ”€β”€ πŸ”§ core/                    # Core logic
β”‚   β”œβ”€β”€ config/                 # App configuration
β”‚   β”‚   └── app_config.dart
β”‚   β”œβ”€β”€ lifecycle/              # App lifecycle management
β”‚   β”‚   └── app_lifecycle_observer.dart
β”‚   β”œβ”€β”€ monitoring/             # App monitoring
β”‚   β”‚   └── app_monitor.dart
β”‚   β”œβ”€β”€ performance/            # Performance optimization
β”‚   β”‚   β”œβ”€β”€ app_optimizer.dart
β”‚   β”‚   β”œβ”€β”€ database_optimizer.dart
β”‚   β”‚   β”œβ”€β”€ image_optimizer.dart
β”‚   β”‚   β”œβ”€β”€ network_optimizer.dart
β”‚   β”‚   β”œβ”€β”€ performance_manager.dart
β”‚   β”‚   β”œβ”€β”€ performance_optimizer.dart
β”‚   β”‚   └── performance_report.dart
β”‚   β”œβ”€β”€ services/               # Core services
β”‚   β”‚   β”œβ”€β”€ advanced_model_training_service.dart
β”‚   β”‚   β”œβ”€β”€ api_key_manager.dart
β”‚   β”‚   β”œβ”€β”€ base_ai_service.dart
β”‚   β”‚   β”œβ”€β”€ base_api_service.dart
β”‚   β”‚   β”œβ”€β”€ chat_export_service.dart
β”‚   β”‚   β”œβ”€β”€ enhanced_mcp_service.dart
β”‚   β”‚   β”œβ”€β”€ fine_tuning_advisor_service.dart
β”‚   β”‚   β”œβ”€β”€ gptgod_service.dart
β”‚   β”‚   β”œβ”€β”€ groq_service.dart
β”‚   β”‚   β”œβ”€β”€ huggingface_service.dart
β”‚   β”‚   β”œβ”€β”€ lazy_service_initializer.dart
β”‚   β”‚   β”œβ”€β”€ local_ai_service.dart
β”‚   β”‚   β”œβ”€β”€ mcp_service.dart
β”‚   β”‚   β”œβ”€β”€ openrouter_service.dart
β”‚   β”‚   β”œβ”€β”€ permissions_manager.dart
β”‚   β”‚   β”œβ”€β”€ prompt_enhancer_service.dart
β”‚   β”‚   β”œβ”€β”€ speech_service.dart
β”‚   β”‚   β”œβ”€β”€ tavily_service.dart
β”‚   β”‚   └── unified_ai_service.dart
β”‚   β”œβ”€β”€ theme/                  # Theme system
β”‚   β”‚   └── app_theme.dart
β”‚   β”œβ”€β”€ utils/                  # Utilities
β”‚   β”‚   β”œβ”€β”€ app_utils.dart
β”‚   β”‚   β”œβ”€β”€ asset_optimizer.dart
β”‚   β”‚   β”œβ”€β”€ logger.dart
β”‚   β”‚   β”œβ”€β”€ memory_manager.dart
β”‚   β”‚   β”œβ”€β”€ network_checker.dart
β”‚   β”‚   β”œβ”€β”€ performance_monitor.dart
β”‚   β”‚   └── responsive_helper.dart
β”‚   └── widgets/                # Core widgets
β”‚       └── optimized_widgets.dart
β”œβ”€β”€ πŸ’Ύ data/                    # Data layer
β”‚   β”œβ”€β”€ datasources/            # Data sources
β”‚   β”‚   β”œβ”€β”€ chat_history.db
β”‚   β”‚   └── database_helper.dart
β”‚   β”œβ”€β”€ models/                 # Data models
β”‚   β”‚   β”œβ”€β”€ message_model.dart
β”‚   β”‚   └── message_model.g.dart
β”‚   └── repositories/           # Data repositories
β”‚       └── chat_repository.dart
β”œβ”€β”€ 🎨 presentation/            # Presentation layer
β”‚   β”œβ”€β”€ constants/              # UI constants
β”‚   β”‚   └── ui_constants.dart
β”‚   β”œβ”€β”€ pages/                  # App pages
β”‚   β”‚   β”œβ”€β”€ advanced_model_training_page.dart
β”‚   β”‚   β”œβ”€β”€ api_settings_page.dart
β”‚   β”‚   β”œβ”€β”€ main_chat_page_enhanced.dart
β”‚   β”‚   └── splash_screen.dart
β”‚   β”œβ”€β”€ providers/              # State providers
β”‚   β”‚   β”œβ”€β”€ chat_provider.dart
β”‚   β”‚   β”œβ”€β”€ chat_selection_provider.dart
β”‚   β”‚   β”œβ”€β”€ prompt_enhancer_provider.dart
β”‚   β”‚   β”œβ”€β”€ settings_provider.dart
β”‚   β”‚   β”œβ”€β”€ theme_provider.dart
β”‚   β”‚   └── training_provider.dart
β”‚   └── widgets/               # UI components
β”‚       β”œβ”€β”€ animated_suggestions_dropdown.dart
β”‚       β”œβ”€β”€ api_debug_panel.dart
β”‚       β”œβ”€β”€ attachment_preview.dart
β”‚       β”œβ”€β”€ chat_app_bar.dart
β”‚       β”œβ”€β”€ chat_drawer.dart
β”‚       β”œβ”€β”€ chat_export_dialog.dart
β”‚       β”œβ”€β”€ chat_floating_buttons.dart
β”‚       β”œβ”€β”€ chat_input_widget.dart
β”‚       β”œβ”€β”€ chat_message_list.dart
β”‚       β”œβ”€β”€ chat_search_header.dart
β”‚       β”œβ”€β”€ compact_message_bubble.dart
β”‚       β”œβ”€β”€ debug_panel.dart
β”‚       β”œβ”€β”€ enhanced/           # Enhanced widgets
β”‚       β”‚   β”œβ”€β”€ chat_app_bar.dart
β”‚       β”‚   β”œβ”€β”€ chat_input_area.dart
β”‚       β”‚   β”œβ”€β”€ chat_message_list.dart
β”‚       β”‚   └── chat_welcome_screen.dart
β”‚       β”œβ”€β”€ language_selector_widget.dart
β”‚       β”œβ”€β”€ message_bubble.dart
β”‚       β”œβ”€β”€ models_info_dialog.dart
β”‚       β”œβ”€β”€ prompt_enhancement_dialog.dart
β”‚       β”œβ”€β”€ search_status_widget.dart
β”‚       β”œβ”€β”€ settings/           # Settings widgets
β”‚       β”‚   β”œβ”€β”€ api_keys_section.dart
β”‚       β”‚   β”œβ”€β”€ compact_settings_dialog.dart
β”‚       β”‚   └── settings_sections.dart
β”‚       β”œβ”€β”€ settings_dialog.dart
β”‚       β”œβ”€β”€ thinking_process_widget.dart
β”‚       β”œβ”€β”€ training/           # Training widgets
β”‚       β”‚   └── unified_training_widget.dart
β”‚       └── voice_input_button.dart
└── main.dart                   # App entry point

πŸ› οΈ Technologies Used

πŸ“± App Development

  • Flutter 3.8.1+ - Main framework
  • Dart 3.8.1+ - Programming language
  • Provider - State management
  • Dio - Advanced HTTP requests

πŸ€– Artificial Intelligence

  • Groq API - Advanced language models
  • Tavily API - Smart search and extraction
  • MCP Protocol - Model context protocol

πŸ’Ύ Database

  • SQLite - Local database
  • Shared Preferences - Settings storage
  • File System - File management

🎨 UI

  • Material Design 3 - Design system
  • Google Fonts - Diverse fonts
  • Lottie - Animations
  • Flutter Animate - Advanced effects

πŸ“– Usage Guide

πŸ’¬ Smart Chat

  1. Type your message in the text field
  2. Attach files if needed
  3. Press send for a smart reply
  4. Use special commands like /help for assistance

πŸ”§ Advanced Training

/finetune [task type] - Start advanced training session
/analyze [file] - Analyze data for training
/optimize [params] - Optimize the model

🎨 UI Customization

  • Change theme from settings (light/dark)
  • Choose custom colors from palette
  • Adjust font size and type

πŸ” Smart Search

/search [query] - Smart web search
/crawl [url] - Extract website content
/extract [text] - Extract specific info

βš™οΈ Advanced Settings

πŸ”‘ API Keys

Get your API keys from:

🐳 Docker Deployment

# Example Dockerfile
FROM cirrusci/flutter:stable

WORKDIR /app
COPY . .

RUN flutter pub get
RUN flutter build web

EXPOSE 8080
CMD ["flutter", "run", "-d", "web-server", "--web-port", "8080"]

🀝 Contributing

Contributions are welcome! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to your branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ“‹ Contribution Guidelines

  • Follow the Dart Style Guide
  • Write tests for new features
  • Update documentation as needed
  • Use clear variable names

πŸ§ͺ Testing

# Run all tests
flutter test

# Tests with coverage report
flutter test --coverage

# Integration tests
flutter test integration_test/

# Code quality analysis
flutter analyze

πŸ“Š Performance

  • Startup time: < 2 seconds
  • Memory usage: < 100 MB
  • App size:
    • Android: ~25 MB
    • iOS: ~30 MB
    • Web: ~5 MB (compressed)

πŸ”’ Security

  • Local data encryption
  • Secure API keys
  • No sensitive data stored
  • HTTPS connections only

πŸ“ License

This project is licensed under the MIT License - see LICENSE for details.

πŸ™ Acknowledgements

πŸ“ž Contact


Made with ❀️ in the Arab world

If you like this project, don't forget to give it a ⭐!

About

Cross-platform Flutter AI chat application for Android, Linux, and Windows. Features a fine-tuned agent capable of training other agents (like instructors) using Google's new A2A service.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •