Files
flomo-ai/README.md

141 lines
4.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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`