Skip to content

Repository files navigation

AIDA - AI 穿搭助手

一个基于 Flutter + 智谱 AI(GLM-4V-Flash)的穿搭识别应用。拍照或选图后,AI 自动分析衣物的类别、颜色、风格等信息。


工程结构

lib/
├── main.dart                              # 入口 + 首页导航 + 设置页
├── core/
│   └── theme/
│       └── app_theme.dart                 # 全局主题/颜色定义
├── data/
│   └── services/
│       └── zhipu_service.dart             # 智谱 AI 网络请求封装
└── features/
    └── recognize/
        └── screens/
            └── recognize_screen.dart      # 识别功能页面(UI + 业务逻辑)

各文件用途

main.dart

  • 程序入口main() 读取本地存储的 API Key,启动应用
  • AidaApp:根 Widget,配置 MaterialApp(路由、主题)
  • HomeScreen:底部四 Tab 导航:识别 / 衣橱 / 搭配台 / 设置
  • SettingsScreen:设置页,支持查看和修改智谱 AI Key
  • _PlaceholderScreen:衣橱、搭配台的占位页(功能待开发)

recognize_screen.dart — 核心功能页

  • 用户点击图片区域或按钮 → 调用相机/相册选图
  • 选图完成后自动调用 ZhipuService.recognizeClothing()
  • 展示 AI 识别结果:类别、颜色、风格、描述、标签

zhipu_service.dart — AI 服务层

  • 把图片编码为 Base64
  • dio 发 HTTP POST 到智谱 API
  • Prompt 要求模型返回 JSON,解析后封装成 ClothingRecognitionResult 数据类

app_theme.dart — 主题

  • 集中定义颜色常量(米白暖色系)
  • 配置 ThemeData:按钮、卡片、AppBar 等全局样式

Flutter 关键概念对照(新手速览)

概念 本项目中的例子 说明
StatelessWidget AppTheme, _PlaceholderScreen 没有状态,build 一次不变
StatefulWidget HomeScreen, RecognizeScreen 有可变状态,调用 setState() 刷新 UI
Widget build() 每个类的 build 方法 描述界面长什么样,Flutter 负责渲染
setState() _isLoading = true 后调 通知 Flutter 重新 build,更新界面
async/await _pickImage, _recognize 异步操作(网络、文件 IO)不阻塞 UI
Scaffold 每个页面 标准页面骨架:AppBar + body + bottomBar
pubspec.yaml 依赖声明 相当于 Android 的 build.gradle

依赖说明

用途
dio HTTP 网络请求
image_picker 调用相机/相册选图
shared_preferences 本地 Key-Value 存储(保存 API Key)
flutter_riverpod 状态管理(已引入,暂未使用)
path_provider 获取本地文件路径
uuid 生成唯一 ID

当前状态

  • 已实现:识别页(拍照/选图 → AI 分析 → 展示结果)+ 设置页
  • 待开发:衣橱管理、搭配台(目前均为占位页)

About

爱搭AI-APP

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages