从0到1:我用 React Native 打造了一个支持多层 RAG 记忆的端侧 AI 助手
AI-Assistant-Anywhere是一款隐私优先的全功能AI助手应用,支持跨平台使用。核心特色包括:多层RAG记忆系统(情感分析、用户画像、对话记忆、知识库)、智能AI绘图、LaTeX公式渲染、Mermaid图表展示及联网实时搜索。所有数据本地存储,用户自备APIKey确保隐私安全。采用ReactNative+Expo架构,支持Markdown富文本渲染和流式传输。提供知识库管理、数据备份
AI-Assistant-Anywhere:您的隐私优先、功能强大的随身 AI 助手
核心亮点 ✨
- 🧠 多层 RAG 记忆: 融合感性层(情感分析)、理性层(用户画像)、历史层(对话记忆)与通用知识库,让 AI 真正理解并记住您的偏好。
- 🎨 AI 绘图: 智能 Agent 自主判断绘图需求,并自动优化提示词,助您轻松创作。
- 📐 LaTeX 公式渲染: 完美支持
$$...$$和\[...\]格式的块级数学公式。 - 📊 Mermaid 图表: 直接在对话中渲染流程图、时序图等图表,支持全屏预览和缩放。
- 🔍 联网搜索: 实时获取最新信息,图片与搜索结果可在同一回合呈现。
- 🛡️ 隐私安全: 所有数据存储于本地设备,用户自备 API Key,保障您的隐私安全。
技术架构 🏗️
- 框架: React Native + Expo SDK 54
- 状态管理: Zustand
- 本地数据库: expo-sqlite
- 流式传输: XHR SSE (适配 React Native)
- 富文本渲染: react-native-markdown-display + react-native-webview
📥 下载体验
最新 APK 下载:GitHub Releases
📖 项目地址
GitHub:https://github.com/Jessie-1939/AI-Assistant-Anywhere
💬 欢迎反馈
有任何问题或建议,欢迎在 GitHub 提交 Issue!
随身AI助手 (AI-Assistant-Anywhere)
一个全功能 AI 助手应用 — 一切皆历史 · 联网搜索 · AI绘图
一切皆历史:你说过的、你看过的、你上传的,都会成为未来可检索、可引用、可更新的“历史”。
这个项目的目标不是堆叠“API/Agent/RAG”名词,而是把 历史 做成一等公民:
- 对话是历史:每次对话都可以沉淀为长期记忆(本地存储),跨会话持续生效。
- 上传是历史:你导入的文本/PDF/图片会进入知识库,变成可检索的背景知识。
- 输出也是历史:AI 的回答会回写到本地,后续可导出备份、迁移到新设备。
为实现这条宗旨,应用采用 React Native + Expo Router,并把「流式对话」「多模态理解」「工具调用」「多层记忆」编排进同一条消息管线:一边输出一边渲染,同时保证移动端体验稳定、顺滑。
你可以把它当作一个可二次开发的“移动端 AI 操作系统雏形”(但请记住:历史优先):
- 历史的获取方式:多层记忆(感性/理性/历史/通用)加权检索,把“该记住的”在需要时取出来。
- 历史的表达方式:Markdown、LaTeX、Mermaid 支持实时渲染、点击全屏预览、复制源码。
- 历史的更新方式:对话后异步写入/增量更新,尽量不阻塞 UI 热路径。
说明:API 兼容、Agent 调度、RAG 检索等都属于实现手段;你可以替换模型供应商,但“历史是一切”的体验不变。
代码结构(建议从这里开始读):
app/:Expo Router 页面入口src/store/index.ts:消息管线与运行时编排(端到端sendMessage)src/services/:Agent、RAG、搜索、绘图、语音等服务模块
📱 核心功能演示 (Live Demo)
应用实际运行演示(对话、多模态、工具调用全流程)
📸 应用截图展示 (App Screenshots)
图片理解:拍照/截图提问 |
Markdown + LaTeX 实时渲染 |
Mermaid:对话内渲染 |
Mermaid:全屏预览/缩放 |
知识库:上传/嵌入/统计 |
图片理解:结构化识别结果 |
✨ 功能概览 (Features)
- 🧾 核心宗旨:一切皆历史:对话/知识库/配置全部本地持久化,支持导入导出与备份恢复,让记忆跨会话延续。
- 💬 AI 对话:流式响应,支持 DeepSeek / 通义千问 / Kimi / GLM / GPT 等所有兼容 OpenAI 格式的模型。
- 🧠 多层 RAG 记忆:感性层(情感分析)+ 理性层(用户画像)+ 历史层(对话记忆)+ 通用知识库。
- 🌐 联网搜索:Agent 自主判断是否需要搜索,使用 DashScope Qwen
enable_search获取实时信息。 - 🎨 AI 绘图:Agent 自主判断是否需要画图,阿里云 DashScope 文生图。生图前先由 LLM 自动优化提示词。
- 👁️ 图片理解:支持多模态模型(通义千问 VL 等),可在设置中选择视觉识别模型。
- 📎 文件附件对话:聊天输入支持多图片 + 多文件混合发送(文本文件自动提取节选用于上下文)。
- 📐 数学公式渲染:支持 LaTeX 块级公式(
$$...$$/\[...\])正确排版显示,全屏预览支持复制源码。 - 📊 Mermaid 图表渲染:支持 Mermaid 代码块直接渲染,点击可全屏预览并双指缩放,支持复制源码。
- 💾 生图下载:生成后的图片支持在消息气泡中一键保存到本地。
- 🔄 图片+联网同回合:图片理解与联网搜索可在同一轮自动串联(先看图,再检索,再综合回答)。
- ⏰ 时间工具:内置时间函数(当前时间/日期/星期/时间戳),并为模型注入“当前时间锚点”。
- 📚 知识库管理:上传文本 / PDF / 图片构建本地知识库,支持按类型配置向量模型(文本/非文本双路)。
- 📦 数据导入导出:完整的对话、知识库备份与恢复。
- 🗑️ 会话批量删除:侧栏支持编辑模式、多选/全选后批量删除。
- 🛡️ 统一错误处理:全局 ErrorHandler 统一日志结构(预留 Sentry 接入)。
- ⚙️ 接入与版本配置:统一维护端点、版本与路径构造,便于迁移与二次开发。
- 🌙 暗色主题:自动跟随系统或手动切换。
🖥 环境支持 (Environment Support)
| 平台 | 支持状态 | 备注 |
|---|---|---|
| Android | ✅ 支持 | 推荐 Android 10.0 及以上版本 |
| iOS | 🚧 实验性 | 核心功能可用,部分原生模块需适配 |
| Web | ❌ 不支持 | 依赖原生 SQLite 和文件系统 |
📦 安装与运行 (Install & Run)
环境要求
- Node.js 18+
- Expo CLI (
npm install -g expo-cli) - Android Studio (用于 Android 构建) 或 iOS 开发环境
启动步骤 (本地预览)
# 1. 克隆项目
git clone <repo-url>
cd telephone_ai_anywhere
# 2. 安装依赖
npm install
# 3. 启动开发服务器
npx expo start
💡 提示:启动后,推荐使用手机下载 Expo Go App 扫描终端中的二维码进行实时预览。本项目主要依赖云端构建,未进行本地原生编译(
run:android)的深度测试。
🔨 使用指南 (Usage)
在应用的 设置 页面中配置以下 Key 即可开始使用:
- 对话模型 API Key(必需):任意 OpenAI 兼容 Chat Completions 的 Key/端点均可接入(可替换供应商或自建网关)。
- DashScope API Key(可选但强烈建议):用于 Embedding(知识库/记忆检索)、语音识别、图片生成、联网搜索、图片理解。
- 其他 Provider Key:预留字段(可按你的接入需求扩展)。
💡 提示:当前“联网检索/Embedding/生图”等能力默认复用 DashScope Key;你也可以按需求替换为其他实现。
🏗 核心架构 (Architecture)
数据流向
用户输入(文字 / 语音 / 图片 / 通话)
│
▼
┌───────────────────────────────────┐
│ Zustand Store │
│ 消息管理 · 状态编排 · 持久化 │
└──────────┬────────────────────────┘
│
┌────────┴────────┐
▼ ▼
RAG 专员 AI Agent
(多层记忆检索) (工具调度引擎)
│ │
│ ┌─────┼─────┐
│ ▼ ▼ ▼
│ 联网搜索 绘图 直接回复
│ (DashScope) (阿里云)
│ │
└────────┬────────┘
▼
DeepSeek / 其他 LLM
(流式输出 · XHR · 自动重试)
│
▼
消息气泡渲染
(Markdown · LaTeX · Mermaid · 图片 · 搜索引用)
多层 RAG 记忆系统
| 层级 | 说明 | 更新策略 |
|---|---|---|
| 感性层 (emotional) | 分析用户情感状态和态度 | 每次对话后更新,滚动保留最近 10 条 |
| 理性层 (rational) | 构建用户画像(兴趣/专业/风格) | 累积足够消息后整体重写 |
| 历史层 (historical) | 所有对话的长期记忆 | 每次对话后追加 |
| 通用层 (general) | 用户上传的知识库文档 | 手动上传文本 / PDF / 图片 |
架构文档
详细的架构设计请参考以下文档:
- 架构总览 (Architecture Overview)
- 消息管线 (Message Pipeline)
- Agent 路由 (Agent Routing)
- RAG 架构 (RAG Architecture)
- 流式状态 (Streaming State)
- 数据流与错误处理 (Dataflow Errors)
⌨️ 开发与构建 (Development)
技术栈
- 框架: React Native (Expo SDK 54)
- 导航: Expo Router 6
- 状态管理: Zustand
- 数据库: expo-sqlite (SQLite)
- 流式传输: XMLHttpRequest SSE (React Native 兼容)
- 富文本渲染: react-native-markdown-display, react-native-webview (KaTeX / Mermaid)
构建与打包 (推荐云端构建)
本项目强烈推荐使用 Expo EAS (Expo Application Services) 进行云端构建,这也是作者验证通过的标准流程:
- 将代码推送到你的 GitHub 仓库。
- 登录 Expo 控制台,创建项目并关联该 GitHub 或 FORK 仓库。
- 在 Expo 网页端选择对应分支(如
main),使用previewprofile 触发 Android 构建。 - 构建完成后,直接扫码或下载 APK 安装到手机即可。
附:其他构建命令行构建参考(需自行配置对应环境)
# EAS 云端构建 (命令行触发)
eas build -p android --profile preview
# 本地 release APK (需完善的 Android Studio 环境,未深度测试)
npm run build:apk:local
📄 许可证与声明 (License & Disclaimer)
许可证
本项目采用 GNU General Public License v3.0 (GPL-3.0) 许可证。这意味着你可以自由使用、修改、分发本软件,但任何基于本软件的衍生作品也必须以 GPL-3.0 协议开源。详情请参阅 LICENSE 文件。
数据与隐私
- 数据存储:所有对话记录、知识库向量、用户配置均仅存储在用户设备本地,开发者无法访问任何用户数据。
- API密钥:用户自行配置的 API 密钥仅保存在本地,请求直接从设备发往相应服务商,不经过任何中转服务器。
免责声明
本软件按“现状”提供,不附带任何明示
或暗示的保证。用户需自行承担使用本软件的全部风险。开发者不对任何因使用本软件造成的直接或间接损失承担责任。本项目使用的第三方 API 服务由相应服务商提供,开发者不对其服务可用性、准确性及合规性负责。本软件不得用于任何违反法律法规的目的。
更多推荐


所有评论(0)