Skip to content

Repository files navigation

mostaron

BYOK · 本地优先 · AI 角色扮演聊天 App(Android / Flutter)

mostaron 是一个面向 Android 的 AI 角色扮演聊天应用:你用自己的 API Key 连接任意 OpenAI 兼容接口,创建/编辑角色,与它们进行沉浸式单聊与群聊。它把角色卡、世界书、长期记忆、主题与聊天气泡等角色扮演要素都放在本地(SQLite),数据由你掌控。

本项目为个人学习/开源分享用途,代码主体由 AI 生成(GitHub Copilot / AI 辅助),仅供学习参考。

参考 LettuceAITavernAI 的开源设计(角色卡 / 世界书 / 记忆 / 提示词模板),本工程为个人重写实现。


概览

平台 Android(Flutter)
接口 任意 OpenAI 兼容 API(BYOK,自带 Key)
模型 多模型分组,可一键切换(单聊 + 群聊)
存储 全本地 SQLite,不上传
形态 单文件 APK,安装即用,界面轻量

✨ 功能

🎭 角色扮演

  • SillyTavern 角色卡导入/导出:支持 PNG / WebP / JSON(V1/V2);角色卡带世界书会自动加入世界书库;扩展字段(场景、示例对话、作者注释、系统提示、备选开场白、标签等)全保留。导入角色卡用图片可自动作为头像。
  • 创建/编辑角色:头像、人设、性格、语气、背景故事、场景、示例对话、开场白、聊天背景。
  • 支持用文字一键生成角色(含场景、示例对话等),可撤销。
  • 克隆 / 重置 / 置顶;从长按菜单一键创建群聊。
  • 每个角色独立设置(上下文轮数、记忆上限、感应现实等),默认沿用主设置,可随时覆盖。

💬 群聊

  • 多角色同框聊天,互相可见,可拉人/踢人(删除需确认)。
  • 三种回复模式:
    • 全员回复:每个人各回一条,被提到的角色优先回复。
    • 指定发言:输入框上方出现成员胶囊,点谁谁回。
    • 自然聊天:AI 判断是否回复,轮流至少一人回复。
  • 群聊记忆模式 3 种:全新整体记忆 / 角色独立全新记忆 / 角色独立同步记忆(创建时选择)。
  • 继续回复:点击消息下"继续说",角色接着上一条直接续写(不插入用户提示)。
  • 群聊同样支持:模型切换、长记忆、世界书、自定义头像/背景、查找聊天记录、克隆(含聊天记忆 / 全新 / 改记忆模式)。

⚡ 轻量与即时

  • 流式打字机输出,逐字生成,动作 (动作) 与台词混合渲染(兼容 *动作* / (动作))。
  • 单文件安装,启动直接进入,无需登录。
  • 最新一轮消息下方(纯图标操作条):重新说 / 删除 / 编辑 / 继续说 / 生成我的回复。
  • 长按复制、触摸展开思考、上下文轮数可调、字体大小可调。

🔍 查找与改写

  • 查找聊天记录(角色 + 群聊):结果最近优先,命中词主题色高亮,点击跳转到消息位置,返回键回到结果页。
  • 长按消息可删除从这里开始的消息(同步清除产生的长记忆)。
  • 输入框AI 改写按钮:改写输入中的消息,可撤销/取消(正在改写显示占位提示,不改动输入内容)。
  • 用户编辑自己的消息AI 改写后,角色/群聊自动回复。

🎴 克隆

  • 角色 / 群聊克隆:全新(不带聊天与记忆)或携带聊天与记忆,均克隆全部设置,名字自动加"副本"。
  • 群聊可改记忆模式克隆:克隆设置、聊天与记忆全新,重新选择记忆模式,并进入创建页确认。

🧠 长期记忆

  • 置顶记忆写入 AGENTS.md 长期生效;最近记忆自动注入上下文。
  • AI 手动/自动生成记忆、记忆达上限自动清理、感应现实(知道当前日期时间)。

📖 世界书(全局 + 按角色/群勾选)

  • 全局管理:在“设置 → 世界书”里新增/编辑/删除条目。
  • 每个角色/群聊在编辑里独立勾选启用哪些。
  • 命中关键词的条目作为背景注入,增强沉浸。

🎨 个性化与主题

  • 自定义身份(名字/性别/关系/身份背景)。
  • 自定义聊天气泡颜色与透明度。
  • 多主题色、亮/暗/跟随系统、夜间自动切暗色(可设起止时间)、自定义主题背景
  • 角色/群聊独立聊天背景,与主设置互不影响。

🔐 隐私与安全

  • 全部数据只存在本地 SQLite,不联网上传任何内容。
  • 联网仅用于调用你自己配置的接口;App 本身不持有服务器,不收集任何账号/聊天数据。
  • 导出/导入为合并模式,导入不覆盖已有数据。

📸 截图展示

主页 群聊 群聊自定义背景
主页 群聊 群聊自定义背景

🚀 快速开始

使用

  1. 安装 APK(可在 Release 页下载,或自行从源码构建)。
  2. 进入 设置 → 接口,点 添加接口:填名称、Base URLAPI Key、模型名(可用快速预设获取模型一键填充)。
  3. 回到主页,右上角 添加角色(或用文字一键生成)。
  4. 点角色/群聊卡片开始聊天。

从源码构建

git clone https://github.com/weme1206/mostaron.git
cd mostaron
flutter pub get
flutter build apk --release

产物:build/app/outputs/flutter-apk/app-release.apk

详细操作见 docs/使用说明.md;开发与构建见 docs/开发与构建.md


📁 目录结构

lib/
  main.dart                  # 入口
  src/
    models/                  # 数据模型
    data/db.dart             # SQLite 本地库(v8)
    services/                # API 客户端、提示词、角色卡、设置解析
    state/app_state.dart     # 全局状态
    ui/                      # 界面(聊天/角色/群聊/设置/裁剪等)
    utils/                   # 工具(动作解析、颜色)
android/                     # Android 工程
assets/icon/                 # 应用图标
docs/                        # 文档与截图

⚠️ 声明

  • 本项目主要由 AI 生成,作者在 AI 辅助的基础上进行整理与测试,代码仅供学习与交流。
  • 请仅为合法用途使用;你对自己的 API Key 与生成内容负责。
  • 本项目不收集、不上传任何用户数据。

📄 许可证

MIT © weme1206

Releases

Contributors

Languages