141 lines
4.4 KiB
Markdown
141 lines
4.4 KiB
Markdown
# 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`。 |