Skip to content

Latest commit

 

History

158 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Project-S-Flutter

Flutter 跨平台 AI 聊天客户端(Android + iOS + Web)。

后端服务位于 Project-S-backend。

技术栈

模块 方案
框架 Flutter 3.41+ / Dart 3.11+
状态管理 Riverpod (flutter_riverpod)
HTTP Dio
实时通信 WebSocket(流式消息 + 事件广播)
通话 WebRTC (flutter_webrtc)
本地存储 SQLite (sqflite) + flutter_secure_storage
推送 Firebase Cloud Messaging

快速开始

# 仓库仅包含 lib/ 源码和文档,平台配置需首次生成
# 1. 重新生成平台配置
flutter create --platforms=android,ios,web .

# 2. 配置 Android 权限(必须)
#   编辑 android/app/src/main/AndroidManifest.xml 添加:
#   - RECORD_AUDIO(语音输入)
#   - CAMERA(视频通话)
#   - INTERNET(网络请求)

# 3. 安装依赖
flutter pub get

# 4. 构建 debug APK
flutter build apk --debug

# 5. 安装到设备
adb install -r build/app/outputs/flutter-apk/app-debug.apk

# 6. 启动
adb shell am start -n com.example.ai_chat_app/.MainActivity

API 地址在 lib/core/constants/api_constants.dart 中配置。

项目结构

lib/
├── main.dart / app.dart / router.dart
├── di.dart                  # 依赖注入
├── core/
│   ├── constants/           # API 地址
│   ├── services/            # ChatService(批处理/看门狗)
│   └── utils/               # 工具函数
├── data/
│   ├── local/               # DatabaseHelper + SecureStorage
│   ├── models/              # Message, RecentAIChat, AIUser 等
│   ├── repositories/        # API 调用封装
│   └── services/            # WebSocketService, EventService, PushService
└── presentation/
    ├── pages/               # 页面
    ├── providers/           # Riverpod Provider
    └── widgets/             # 可复用组件

关键特性

  • 消息批处理:1.5s 冷却 / 4.5s 最大等待,合并发送
  • 流式响应:WebSocket stream_chunk → stream_message_done
  • 多设备同步:EventService 处理 message.sent/revoked/edited/deleted 事件广播
  • 断线重连:自动重连 + sync 拉取错失事件
  • Conversation 全由服务端管理:客户端不维护 conversation 状态

通信架构

WebSocket (wss://.../ws/connect)
├── auth (device_id + JWT)
├── ping/pong (心跳 + seq 确认)
├── stream_message_init → chunk → done (AI 流式回复)
├── event (message.sent / revoked / edited / deleted)
└── sync (断线后拉取错失事件)

HTTP POST (https://.../)
├── /chat (发送消息)
├── /aiusers/* (AI 角色 CRUD)
├── /sync (事件兜底同步)
└── /upload (文件上传)

页面

页面 路由 说明
消息列表 / 最近聊天列表
聊天页 /chat/:aiUserId 消息列表 + 流式输入 + 文件/语音
通讯录 /contacts AI 用户列表
AI 详情 /ai-user/:id 角色详情 + 记忆库
设置 /settings 个人设置
通话 /call WebRTC 语音/视频

About

Flutter application for Project-S-backend

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages