搜尋套件、儲存庫與 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 ↗