# Flomo AI 一个 AI 文本优化工具,支持 Android 原版和 Rust Windows 桌面版。 ## 项目结构 ``` ├── flomo-ai/ # Android 原始项目 (Kotlin + Jetpack Compose) │ ├── app/src/main/ │ │ ├── java/ # Kotlin 源代码 │ │ │ └── com/example/flomo_ai/ │ │ │ ├── MainActivity.kt # 主界面 │ │ │ ├── SecondActivity.kt # 设置页面 │ │ │ └── ui/theme/ # 主题管理 │ │ └── res/ # 布局、颜色、图标等资源 │ └── mumu-pytest/ # MuMu 模拟器自动化测试 │ └── flomo-ai-desktop/ # Rust Windows 桌面版 (egui + eframe) ├── src/ │ ├── main.rs # 入口,eframe 启动,无控制台窗口 │ ├── app.rs # 应用状态管理(页面路由、API 调用调度) │ ├── config/ │ │ └── store.rs # 配置类型定义 + JSON 持久化 │ ├── api/ │ │ └── llm_client.rs # LLM API 调用(OpenAI 兼容格式) │ ├── theme/ │ │ └── mod.rs # 明暗主题管理 │ └── pages/ # 页面组件 ├── .cargo/config.toml # MinGW 工具链配置 └── Cargo.toml # 依赖声明 ``` ## 功能特性 ### 核心功能 - **多模型并发**:支持同时配置 3 个 LLM 模型,发送时并发调用所有启用的模型 - **独立测试**:每个模型可单独测试连接状态 - **LLM API 调用**:兼容 OpenAI 格式的 API,支持自定义 Base URL、API Key、Model - **自定义请求头**:可添加额外的 HTTP Header - **提示词管理**:添加、删除、编辑系统提示词,主界面下拉选择 - **快速操作**:错别字检查、总结、翻译、润色 四个快捷按钮 - **主题切换**:浅色模式 / 深色模式 / 跟随系统 - **配置持久化**:JSON 格式保存到用户配置目录 - **复制结果**:一键复制优化结果到剪贴板 ### 界面布局 - **主界面**: - 顶部标题栏 + 配置按钮 - 提示词选择器 + 快速操作按钮 - 输入区域 + 发送按钮 - **三栏结果显示**:水平排列 3 个模型的结果卡片 - **配置页面**: - 3 个模型的独立配置(启用开关、名称、URL、Key、Model) - 每个模型独立的测试按钮 - 主题设置 - 提示词管理 ## 构建说明 ### 环境要求 - **Rust 工具链**:`stable-x86_64-pc-windows-gnu` - **MinGW-w64**:通过 MSYS2 安装 (`pacman -S mingw-w64-x86_64-gcc`) - **MSYS2**:https://www.msys2.org/ ### 安装 Rust GNU 工具链 ```bash rustup toolchain install stable-x86_64-pc-windows-gnu rustup default stable-x86_64-pc-windows-gnu ``` ### 编译 ```bash cd flomo-ai-desktop cargo build --release ``` 或使用 `build.bat`(需先安装 MSYS2 + MinGW)。 编译产物:`target/release/flomo-ai.exe`(~4MB,无控制台窗口) ### 编译配置 - `.cargo/config.toml`:指定 MinGW 链接器和 `-mwindows` 参数 - `Cargo.toml`:release profile 启用 LTO、strip、opt-level=z 优化体积 ### 依赖 | 依赖 | 用途 | |------|------| | `egui` + `eframe` (glow) | GUI 框架(纯 Rust,无 C 依赖) | | `reqwest` (blocking + native-tls) | HTTP 客户端 | | `serde` + `serde_json` | 序列化 / 配置持久化 | | `dirs` | 获取用户配置目录路径 | | `arboard` | 剪贴板操作 | ## 配置文件 配置保存在 `%APPDATA%\flomo-ai\settings.json`,格式如下: ```json { "llm_configs": { "models": [ { "enabled": true, "name": "模型1", "base_url": "https://api.openai.com/v1", "api_key": "", "model": "gpt-4o" }, { "enabled": false, "name": "模型2", "base_url": "", "api_key": "", "model": "" }, { "enabled": false, "name": "模型3", "base_url": "", "api_key": "", "model": "" } ] }, "header_configs": [], "prompt_configs": [ { "id": "default-1", "title": "翻译助手", "content": "将输入的文本翻译成指定语言" } ], "theme_config": { "mode": "FollowSystem" } } ``` ## Android 版本 Android 版本使用 Gradle 构建,包含完整的 Kotlin 源代码和资源文件。详见 `flomo-ai/` 目录下的 `README.md`。