ZhuJHua / moodiary

「心绪日记」 是一个由 Flutter 构建的开源跨平台日记应用。
GNU Affero General Public License v3.0
31 stars 1 forks source link
cross-platform dart diary-app flutter-app mobilebert squad tensorflow-lite

📔 心绪日记

简体中文丨English

「心绪日记」 是采用 Flutter 编写的,无广告、无社交的开源跨平台私密日记本。采用 Material Design 设计,简洁且易用。

Flutter Version GitHub repo size GitHub Repo stars GitHub Release GitHub License

✨ 功能特性

(注:跨平台能力由 Flutter 提供,带 * 号的平台可能需要更多测试)

🔧 主要技术栈

📸 应用截图

移动端

移动端

桌面端

桌面端

🚀 安装指南

第三方 SDK

某些能力需要自行申请第三方 SDK,下列服务商均提供免费的版本,获取到的 Key 在实验室中配置。

天气服务

直接安装

通过下载 Release 中已编译好的安装包来使用,如果没有你所需要的平台,请使用手动编译。

手动编译

环境要求

安装步骤

注意:当打包时,需要自己修改对应平台的配置文件,例如安卓平台的 build.gradle

  1. 克隆仓库

    git clone https://github.com/ZhuJHua/moodiary.git
    cd moodiary
  2. 安装依赖

    flutter pub get
  3. 运行应用

    flutter run
  4. 打包发布

    • Android: flutter build apk
    • iOS: flutter build ios
    • Windows: flutter build windows

📝 更多说明

自然语言处理(NLP)

处于实验阶段

如今,越来越多的行业产品开始融入 AI 技术,这无疑极大地提升了我们的使用体验。然而,对于日记应用来说,将数据交给大型模型处理并不可接受,因为无法确定这些数据是否会被用于训练。因此,更好的方法是采用本地模型。虽然由于体积限制,本地模型的能力可能不如大型模型强大,但在一定程度上仍能为我们提供必要的帮助。

目前,我在源码中集成了以下任务:

基于 Bert 预训练模型的 SQuAD 任务

我采用了 MobileBert 来处理 SQuAD 任务,这是一个简单的机器阅读理解任务。你可以向它提出问题,它会返回你需要的答案。模型文件采用 TensorFlow Lite 所需的 .tflite 格式,所以你可以添加自己的模型文件到 assets/tflite 目录下。

感谢以下开源项目:

🤝 贡献指南

欢迎贡献!请按照以下步骤进行贡献:

  1. Fork 本仓库。
  2. 创建一个新分支(git checkout -b feature-branch-name)。
  3. 提交你的修改(git commit -am 'Add some feature')。
  4. 推送到分支(git push origin feature-branch-name)。
  5. 创建一个 Pull Request。

请确保你的代码遵循 Flutter 风格指南 并包含适当的测试。

📄 许可证

此项目基于 AGPL-3.0 许可证进行许可,详情请参阅 LICENSE 文件。

💖 鸣谢