Flutter-Perplexity
一个跨平台的 Flutter 应用,复刻 Perplexity AI 的界面,具备实时聊天、AI 驱动的搜索和来源引用功能。
- 星标
- 5
- 复刻
- 0
- 最近推送(UTC)
- 2026年8月27日
- 项目状态
- 未归档
原始 README
以下为英文项目原文快照,最新内容请访问 GitHub。
Flutter Perplexity Clone
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.
Features
- 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
Screenshots will be added here
Getting Started
Prerequisites
- Flutter SDK (^3.8.1)
- Dart SDK
- WebSocket server running on
localhost:8000
Installation
-
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
Project Structure
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
Dependencies
- 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
WebSocket API
The app communicates with a WebSocket server at ws://localhost:8000/ws/chat:
Message Format
- Send:
{"query": "user question"} - Receive:
- Search results:
{"type": "search_result", ...} - Content:
{"type": "content", ...}
- Search results:
Development
Running Tests
flutter test
Building for Production
# Android
flutter build apk
# iOS
flutter build ios
# Web
flutter build web
# Desktop
flutter build windows
flutter build macos
flutter build linux
Contributing
- 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
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
- Inspired by Perplexity AI
- Built with Flutter and Dart
- Uses WebSocket for real-time communication
Support
If you encounter any issues or have questions, please open an issue on GitHub.
分类
使用的依赖
依赖清单 8 项
- flutter
{"sdk":"flutter"} - cupertino_icons
^1.0.8 - google_fonts
^6.2.1 - web_socket_client
^0.1.5 - flutter_markdown
^0.7.4+3 - skeletonizer
^2.1.0+1 - flutter_test开发依赖
{"sdk":"flutter"} - flutter_lints开发依赖
^5.0.0
如何选择适合项目的代码仓?
先按使用场景筛选,再比较项目活跃情况,最后到原始仓库核对使用要求。
- 通过仓库名、作者或描述搜索,再按技术分类缩小范围。
- 结合星标、复刻与最近推送比较项目;星标反映社区关注,不代表质量保证。
- 使用前在 GitHub 核对 README、许可证与 Issues。
来源与维护
“A repository is the most basic element of GitHub.”
GitHub Docs — About repositories ↗