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)
  • MSYS2https://www.msys2.org/

安装 Rust GNU 工具链

rustup toolchain install stable-x86_64-pc-windows-gnu
rustup default stable-x86_64-pc-windows-gnu

编译

cd flomo-ai-desktop
cargo build --release

编译产物:target/release/flomo-ai.exe~4.4MB,无控制台窗口)

编译配置

  • .cargo/config.toml:指定 MinGW 链接器和 -mwindows 参数
  • Cargo.tomlrelease 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,格式如下:

{
  "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

Description
No description provided
Readme 37 MiB
Languages
Kotlin 36.4%
Rust 31.7%
DM 16.2%
Python 12.8%
Batchfile 2.6%
Other 0.3%