A Flutter-based clone of Perplexity AI, featuring real-time chat with AI-powered search capabilities. This application provides an intuitive interface for asking questions and receiving AI-generated responses with source citations.
- AI-Powered Chat: Real-time conversation with AI assistant
- Smart Search: WebSocket-based search functionality
- Cross-Platform: Works on mobile, web, and desktop platforms
- Modern UI: Clean, responsive design with dark theme
- Source Citations: View sources for AI responses
- Real-time Communication: WebSocket integration for live chat
- Responsive Design: Adaptive layout for different screen sizes
Screenshots will be added here
- Flutter SDK (^3.8.1)
- Dart SDK
- WebSocket server running on
localhost:8000
-
Clone the repository
git clone <repository-url> cd flutter_perplexity
-
Install dependencies
flutter pub get
-
Start the WebSocket server
# Make sure your WebSocket server is running on localhost:8000 # The app expects a WebSocket endpoint at ws://localhost:8000/ws/chat
-
Run the application
flutter run
lib/
├── main.dart # App entry point
├── pages/ # Screen components
│ ├── home_page.dart # Main home screen
│ └── chat_page.dart # Chat interface
├── widgets/ # Reusable UI components
│ ├── search_section.dart
│ ├── answer_section.dart
│ ├── sources_section.dart
│ ├── side_bar.dart
│ ├── side_bar_button.dart
│ └── search_bar_button.dart
├── services/ # Business logic and API calls
│ └── chat_web_service.dart
└── theme/ # App styling and colors
└── colors.dart
- flutter: Core Flutter framework
- google_fonts: Custom typography (Inter font)
- web_socket_client: Real-time communication
- flutter_markdown: Markdown rendering for responses
- skeletonizer: Loading animations
- cupertino_icons: iOS-style icons
The app communicates with a WebSocket server at ws://localhost:8000/ws/chat
:
- Send:
{"query": "user question"}
- Receive:
- Search results:
{"type": "search_result", ...}
- Content:
{"type": "content", ...}
- Search results:
flutter test
# Android
flutter build apk
# iOS
flutter build ios
# Web
flutter build web
# Desktop
flutter build windows
flutter build macos
flutter build linux
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Inspired by Perplexity AI
- Built with Flutter and Dart
- Uses WebSocket for real-time communication
If you encounter any issues or have questions, please open an issue on GitHub.