docs: 添加项目 README,详细描述项目结构、功能、构建说明

This commit is contained in:
xiaji
2026-04-04 17:41:59 +08:00
parent b4908fcc2d
commit 8190b48dbf

117
README.md Normal file
View File

@@ -0,0 +1,117 @@
# 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 # 设置页面
│ │ │ ├── kwt.kt # JWT 生成工具
│ │ │ └── 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/
│ │ ├── main_page.rs # 主界面组件
│ │ └── settings_page.rs # 设置页组件
│ └── widgets/ # 可复用 UI 组件
├── .cargo/config.toml # MinGW 工具链配置
└── Cargo.toml # 依赖声明
```
## 功能特性
### 核心功能
- **LLM API 调用**:兼容 OpenAI 格式的 API支持自定义 Base URL、API Key、Model
- **自定义请求头**:可添加额外的 HTTP Header
- **提示词管理**:添加、删除、编辑系统提示词,主界面下拉选择
- **快速操作**:错别字检查、总结、翻译、润色 四个快捷按钮
- **主题切换**:浅色模式 / 深色模式
- **配置持久化**JSON 格式保存到用户配置目录
- **复制结果**:一键复制优化结果到剪贴板
### 界面布局
- **顶部标题栏**:显示 "AI优化" + 配置按钮
- **快速操作区**:四个 emoji 快捷按钮
- **提示词选择器**:下拉菜单选择系统提示词,显示提示词内容预览
- **输入区域**:多行文本输入,字符计数显示
- **发送/停止**:发送按钮 + 生成中可停止
- **结果展示区**:状态标签 + 结果文本 + 复制按钮
## 构建说明
### 环境要求
- **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
```
编译产物:`target/release/flomo-ai.exe`~4.4MB,无控制台窗口)
### 编译配置
- `.cargo/config.toml`:指定 MinGW 链接器和 `-mwindows` 参数
- `Cargo.toml`release profile 启用 LTO、strip、opt-level=z 优化体积
### 依赖
| 依赖 | 用途 |
|------|------|
| `egui` + `eframe` | GUI 框架(纯 Rust无 C 依赖) |
| `reqwest` (blocking + rustls-tls) | HTTP 客户端(纯 Rust TLS |
| `serde` + `serde_json` | 序列化 / 配置持久化 |
| `dirs` | 获取用户配置目录路径 |
| `arboard` | 剪贴板操作 |
## 配置文件
配置保存在 `%APPDATA%\flomo-ai\settings.json`,格式如下:
```json
{
"llm_config": {
"base_url": "https://api.openai.com/v1",
"api_key": "",
"model": "gpt-4o"
},
"header_configs": [],
"prompt_configs": [
{
"id": "default-1",
"title": "翻译助手",
"content": "将输入的文本翻译成指定语言"
}
],
"theme_config": {
"mode": "FollowSystem"
}
}
```
## Android 版本
Android 版本使用 Gradle 构建,包含完整的 Kotlin 源代码和资源文件。详见 `flomo-ai/` 目录下的 `README.md`