Skip to content

Repository files navigation

FlashLog — AI 智能工时记录

本地优先 · BYOK · 无后端

FlashLog 是一款纯单机、AI 驱动的移动端工时 App:语音或文字描述工作内容,经语音识别与大模型自动提炼为结构化「工时卡片」;积累的数据可由 AI 分析工时分布、总结阶段工作并给出改进建议;分析页还支持 语音播报 回复。所有记录仅存本机,LLM / 语音识别 / 语音合成由 App 直连你配置的云服务商(默认火山引擎),不经任何第三方服务器转发。

产品原则

原则说明
Local-First工时记录仅存本机 SQLite,支持离线查看与手动录入
BYOK用户自带 API Key,费用由用户自行承担
No Backend无账号、无云同步、无 API 代理

功能概览

页面主要功能
工作记录文字输入或按住麦克风录音(最长约 3 分钟);火山 ASR 转写 → 流式 AI 总结为一张可编辑工时卡片(任务、工时大类、日期、时长、描述);口述「昨天…」等可解析其他日期;补充说明后重新总结会合并预览,确认保存写入 SQLite
消息统计自启用日起尚未填写工时的中国工作日;Tab 角标显示待补记天数;点击某日跳转工作记录并聚焦输入
历史列表 / 日历两种视图;单条编辑、删除;按日期范围导出分享(文本、图片、Excel、Word);Android 支持微信、QQ、企业微信定向分享
分析基于本机工时的 AI 对话助手;自动解析问题中的时间范围;常用问题快捷入口、多轮对话;可选 TTS 语音播报(复用 ASR Key)
设置火山方舟 LLM、豆包 ASR / TTS、定时提醒(工作日 / 每天)、工时大类、浅 / 深色主题、清除本地数据

功能演示

真机录屏,展示录音 → AI 总结 → 保存 → 历史 / 分析主流程。

FlashLog 功能演示

架构示意

flowchart TB
subgraph app [FlashLog]
Home[Home]
Messages[Messages]
History[History]
Analysis[Analysis]
Settings[Settings]
end
subgraph local [Device]
SecureStore[SecureStorage]
DB[SQLite]
Notif[LocalNotifications]
end
subgraph volc [Volcengine BYOK]
LLM[Ark LLM]
ASR[Doubao ASR]
TTS[Doubao TTS]
end
Settings --> SecureStore
Home --> LLM
Home --> ASR
Analysis --> LLM
Analysis --> TTS
Home --> DB
History --> DB
Analysis --> DB
Messages --> DB
Settings --> Notif
Notif -->|deeplink| Home
Loading

快速开始

环境要求

要求
Node.jsLTS 18+
浏览器开发现代浏览器 + 麦克风(可选)
Android 构建JDK 17、Android SDK;详见 ANDROID.md

安装与运行

npm install
npm run dev # http://localhost:5173
npm run build # 生产构建 → dist/
npm run preview # 预览 dist/

浏览器开发说明

  • 工时数据使用 localStorage 回退(非 SQLite)
  • API Key 使用 Preferences 回退(非 Secure Storage)
  • ASR WebSocket 经 Vite 代理 /api/openspeech-ws 转发至火山

首次配置

安装 App 或启动开发服务器后,进入 设置 填写凭证:

服务必填项默认值
LLMAPI Key、Model / Endpoint IDBase URL: https://ark.cn-beijing.volces.com/api/v3
ASRAPI Key、Resource IDvolc.seedasr.sauc.duration
TTS复用 ASR Key、Resource ID、音色Resource ID: seed-tts-2.0
  • LLM Model 可填推理接入点 ep-xxxxxxxx,或模型名如 doubao-1-5-pro-32k-250115
  • 未配置 LLM Key 时,「AI 总结」不可用,但仍可手动填写卡片并保存

参考文档

Android 构建

Windows 下在项目根目录执行 build-android-debug.bat 即可一键构建 debug APK(前端构建 → Capacitor sync → Gradle 打包):

build-android-debug.bat

也可使用 npm run android:debug(内部调用上述脚本)。

产物路径:

android/app/build/outputs/apk/debug/app-debug.apk

安装到真机:

adb install -r android/app/build/outputs/apk/debug/app-debug.apk

完整环境配置、Release 签名等见 ANDROID.md

发布 GitHub Release

一键构建 APK 并上传到 GitHub Releases(需先安装 GitHub CLI 并执行 gh auth login):

release-android.bat
用法说明
release-android.bat读取 package.json 版本(如 0.1.0),创建 tag v0.1.0 并上传 APK
release-android.bat 0.2.0指定版本号
release-android.bat --draft创建为预发布(Draft)
release-android.bat 0.2.0 --draft指定版本 + 预发布

流程:构建 debug APK → 复制为 release/FlashLog-v{版本}-debug.apkgh release create 或覆盖上传已有 Release。

Release 说明模板:scripts/release-notes-template.md

下载链接(发布后可用):https://github.com/CallStorm/FlashLog/releases/latest

项目结构

src/
pages/ Home, Messages, History, Analysis, Settings
components/ UI 组件(analysis/、ShareWorklogSheet 等)
services/ aiService, asrService, ttsService, export/, analysis/, reminderService
db/ workLogRepository
stores/ settingsStore, draftStore, pendingStore, analysisChatStore, themeStore
plugins/ headerWebSocket, targetedShare(Capacitor 桥接 Android 原生)
constants/ 默认配置、分析 Prompt 等
utils/ 日期、工时大类、音频处理等
assets/
demo/ README 演示 GIF
android/ Capacitor Android 工程
build-android-debug.bat 构建 debug APK
release-android.bat 构建并发布 GitHub Release

技术栈

层级选型
UIReact 19 + TypeScript + Tailwind CSS 4 + Lucide React
构建Vite 6
路由React Router 7
状态Zustand 5
Capacitor 8(@capacitor/android
敏感配置capacitor-secure-storage-plugin
非敏感配置@capacitor/preferences
工时数据@capacitor-community/sqlite(浏览器回退 localStorage)
本地提醒@capacitor/local-notifications
导出docxxlsxhtml-to-image

自定义 Android 插件

  • HeaderWebSocketPlugin — ASR WebSocket 握手时写入火山鉴权 Header
  • TargetedSharePlugin — 微信 / QQ / 企业微信定向分享

隐私与安全

  • 工时记录仅存本机,不出网
  • 网络请求仅发往用户配置的 LLM / ASR / TTS endpoint
  • API Key 存 Secure Storage(Android/iOS);浏览器开发时使用 Preferences
  • Settings 页明确提示:第三方 API 调用费用由用户自行承担

FlashLog v0.1.0 · Capacitor + React

About

AI 智能工时快捷记录工具

Resources

Stars

8 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages