搜索插件、代码仓与 APP 分类

GitHub 代码仓MUGISHA-Pascal/Flutter-Perplexity

Flutter-Perplexity

一个跨平台的 Flutter 应用,复刻 Perplexity AI 的界面,具备实时聊天、AI 驱动的搜索和来源引用功能。

Flutter-Perplexity 项目封面
星标
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
  1. Clone the repository

    git clone <repository-url>
    cd flutter_perplexity
    
  2. Install dependencies

    flutter pub get
    
  3. 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
    
  4. 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", ...}

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

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. 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.

MUGISHA Pascal GitHub avatar
GitHub 作者

MUGISHA Pascal ↗

Software Engineer | Building AI & scalable digital products

Kigali, Rwanda
语言DartC++CMakeSwiftCHTMLKotlinObjective-C

分类

使用的依赖

依赖清单 8 项

如何选择适合项目的代码仓?

先按使用场景筛选,再比较项目活跃情况,最后到原始仓库核对使用要求。

  1. 通过仓库名、作者或描述搜索,再按技术分类缩小范围。
  2. 结合星标、复刻与最近推送比较项目;星标反映社区关注,不代表质量保证。
  3. 使用前在 GitHub 核对 README、许可证与 Issues。

来源与维护

“A repository is the most basic element of GitHub.”

GitHub Docs — About repositories ↗