Skip to content

Latest commit

 

History

History
138 lines (85 loc) · 10.3 KB

File metadata and controls

138 lines (85 loc) · 10.3 KB

AI 贾维斯项目说明

1. 项目简介

AI 贾维斯是一款面向 Windows 的本地桌面 AI 助手。它可以持续理解当前屏幕内容和系统播放的声音,判断用户所处的使用场景,并以桌宠气泡、游戏弹幕或课程笔记等方式提供帮助。

项目采用“本地优先”的设计:核心模型推理、屏幕分析和音频分析均在用户电脑上完成,日常感知不依赖在线大模型服务。只有用户主动配置并点击生成日程图时,才会调用用户选择的图像生成 API。桌面端负责启动、展示和系统交互,后端负责场景理解、任务调度、记忆与课程记录。

2. 主要功能

2.1 屏幕与声音感知

AI 贾维斯可以获取当前桌面画面和系统正在播放的音频,并将二者结合起来理解用户正在做什么。例如,它可以识别正在观看课程、正在玩游戏,或者正在使用普通桌面应用。

采集到的内容以短时间窗口交给本地模型分析,不以长期录屏或录音的方式保存。

2.2 场景化桌面陪伴

系统会根据识别到的场景选择不同的交互方式:

  • 普通场景:原生全双工模型持续选择保持安静或主动显示一句有证据、有实际价值的提醒;结构化场景请求不能生成普通气泡。
  • 游戏场景:隐藏桌宠主体,通过不影响操作的透明弹幕层提供实时陪伴和提示。
  • 网课场景:降低打扰频率,在合适的时机显示课程相关提示,并自动进入课程记录流程。

桌宠窗口支持直接拖拽,并限制在当前显示器工作区内。用户按 Ctrl+M 可在桌宠旁展开紧凑对话框,主动向本地模型提问;最近少量问答用于维持上下文,回复、加载与错误状态都留在对话框内,不混入主动气泡。

普通主动文本不会声称可以代替用户点击、搜索、编辑或控制应用,也不会用“需要我帮你……”等超出能力边界的话术。交互带有去重和场景稳定判断,避免频繁弹出内容或因短暂画面变化反复切换模式。实时可交互游戏和几乎占满屏幕的游戏视频、直播或回放可进入游戏场景;普通网页内的游戏媒体仍按观看视频处理。课程需要持续教学行为,普通网页、代码、文档和娱乐视频不算网课。

2.3 游戏陪伴

进入游戏场景后,AI 贾维斯可以结合游戏画面和声音生成简短弹幕。用户可以在桌面端选择或新建“游戏陪伴方案”,为不同游戏配置名称和专属提示词,从而调整陪伴风格与关注重点。统一感知请求必须先只依据画面和音频填写场景证据;游戏陪伴方案以隔离数据块随请求提供,只有独立判定为游戏后才可作为弹幕的强制角色与表达规范,不能影响场景分类。程序还会把 Steam 与 Steam WebHelper 前台窗口作为启动器硬证据,避免只打开游戏库或商店时进入游戏模式。

游戏生成链路不得按游戏名称或某款游戏的术语硬编码分支。所有游戏共用同一套场景证据、短候选生成、去重与容错机制;具体称呼、语气、角色和关注重点只能来自用户当前选择的游戏陪伴方案。模型在同一轮统一感知中先核对画面、HUD、动作和连续观察,再返回三个短弹幕候选;程序负责证据校验、截断恢复、候选去重与展示频率。

游戏弹幕窗口支持点击穿透,不会遮挡或抢占正常游戏操作。

2.4 网课记录与总结

系统识别到网课后可以自动开始记录,并在课程结束后生成课程资料,主要包括:

  • 根据连续授课语音转写分段归纳、去重后的核心知识点;
  • 由视觉模型按画面清晰度、信息密度和独立复习价值选出的关键画面;
  • 关键画面的简要说明;
  • 可继续编辑和长期保存的 Markdown 文档。

默认情况下,课程成果会输出到桌面的 Jarvis-Courses 文件夹。短暂切换窗口或画面遮挡不会立即结束课程,减少课程被错误拆分的情况。

2.5 本地记忆

AI 贾维斯会在后台从稳定的场景感知结果中提炼用户大致进行的活动,通过置信度、画面变化、时间窗口和相似度过滤后保存在本机。系统不把原始截图和音频写入长期记忆。用户点击生成后,本地模型会把重复观察归并为带起止时间和大致时长的全天时间轴,每天保存为一份 Markdown 文档,并可在桌面应用中浏览历史日期。静止画面不会持续调用模型;达到空闲阈值时,桌宠会按冷却频率提醒用户。记忆数据不依赖外部数据库,也不会随项目代码提交到仓库。

记忆页还提供“日程图”视图。用户可在本机配置图像 API 的 Base URL、API Key 和模型名称;点击生成时,系统把当前日期、当日回顾、贾维斯角色参考图和卡通风格参考图一起提交。生成结果按日期保存在本机,同一天的多次生成不会覆盖旧图,可在 APP 中按日期和缩略图浏览。API Key 使用系统安全存储加密,历史图片元数据不保存凭据。

2.6 桌面应用与控制

Electron 桌面端提供以下常用入口:

  • 一键启动 AI 贾维斯及其本地后端;
  • 查看模型和服务启动状态;
  • 暂停或恢复屏幕与音频感知;
  • 配置游戏陪伴方案;
  • 启动持续感知后自动使用模型原生全双工能力,由模型自主决定何时显示文字;
  • 查看桌宠气泡、游戏弹幕和课程完成通知;
  • 通过系统托盘保持后台运行。

项目同时提供 HTTP API 和 WebSocket 事件流,便于后续接入其他界面或自动化工具。

3. 使用的 AI 模型

3.1 核心模型:MiniCPM-o 4.5

当前真实运行环境使用 MiniCPM-o 4.5 本地多模态模型。该模型能够在同一套推理流程中处理文本、图像和音频,因此适合同时理解桌面画面与系统声音。

项目使用的 GGUF 模型由三部分组成:

模型组件 文件 用途
语言模型(LLM) MiniCPM-o-4_5-Q4_K_M.gguf 综合理解输入并生成文字结果
视觉模型(VPM) MiniCPM-o-4_5-vision-F16.gguf 理解屏幕截图和画面内容
音频模型(APM) MiniCPM-o-4_5-audio-F16.gguf 理解系统播放的语音和声音

语言模型采用 Q4_K_M 量化,以降低显存和内存占用;视觉与音频模型使用 F16 格式,以保留相应模态的处理能力。

3.2 本地推理运行时

模型通过固定版本的 llama.cpp-omni / llama.cpp / ggml 运行时执行,项目中的 C++ 原生进程负责加载模型、接收屏幕与音频数据并返回推理文本。

当前版本只使用模型的文字输出能力,未启用 TTS、Token2Wav、语音克隆或参考音色。全双工会话随持续感知自动运行:模型持续接收屏幕和系统音频,并自主选择继续监听或显示提醒,用户无需配置观察任务。

核心感知功能不依赖 Anthropic、OpenAI 等云端模型,也不需要配置相应 API Key。可视化日程图是独立的可选能力,只有用户配置兼容图像 API 并主动点击生成时才联网。

4. 系统组成

项目主要由三部分组成:

  • Electron 桌面端:负责启动入口、桌宠、弹幕、托盘、配置和通知展示。
  • Python + FastAPI 后端:负责场景管理、交互策略、本地记忆、课程会话、API 和事件分发。
  • C++20 原生 Worker:负责 Windows 屏幕与系统音频采集、本地模型加载和多模态推理。

三部分均运行在本机。后端默认只监听 127.0.0.1,不会直接对局域网或公网开放。

5. 数据与隐私

  • 原始屏幕画面和系统音频用于即时推理,普通运行不应长期持久化这些原始数据。
  • 只有课程流程选中的关键画面会写入课程文件夹。
  • 安装版的模型、记忆和课程工作数据默认保存在 %LOCALAPPDATA%\AIJarvis;源码版使用项目目录下的 models/memory/courses/sessions/
  • 日程图保存在对应数据目录的 memory/daily-images/YYYY-MM-DD/;点击生成时,当日回顾和两张项目参考图会发送给用户配置的图像 API。
  • 课程成品只包含整理后的知识点、关键画面和画面说明,不包含内部处理元数据。
  • 用户可以随时暂停感知;暂停后采集线程和已持有的采集对象会被停止或清理。
  • 如需进一步限制本机接口访问,可以为 HTTP API 和 WebSocket 配置 Bearer Token。

6. 运行环境

项目当前主要面向 64 位 Windows 10/11。官方安装包内置冻结后的 Python 后端和预编译的 x64 CPU 原生运行时,终端用户不需要安装 Python、C++ 编译器、CMake 或 CUDA。CPU 需支持 AVX2 指令集。

从源码开发或构建安装包时需要以下环境:

  • Windows 10/11;
  • Python 3.12 或更高版本;
  • Visual Studio 2022 C++ Build Tools;
  • CMake 3.24 或更高版本;
  • 源码实时运行可选 NVIDIA 显卡及 CUDA 12.8 或更高版本。

安装包默认使用 CPU 运行时,因此在不同处理器上的多模态推理速度差异较大。模型权重不包含在代码仓库和桌面安装包中,首次真实启动会下载并校验约 6.32 GiB 的模型文件。

7. 当前能力边界

  • 当前以文字交互为主,尚不提供语音播报或实时语音对话。
  • 画面和音频理解效果取决于硬件性能、模型能力以及具体应用场景。
  • 游戏陪伴主要提供观察与提示,不直接控制游戏或代替用户操作。
  • 课程总结只根据本地模型生成的授课语音转写滚动归纳;听不清或模型转写错误仍可能影响结果,重要内容建议用户自行核对。
  • 项目仍处于早期版本;不同 Windows 设备、显示器布局、处理器和音频驱动可能表现不同,发布问题请附上版本、硬件与脱敏后的运行日志。

8. 开源组件与模型许可

项目使用的 llama.cpp-omni / llama.cpp / ggml 运行时采用 MIT 许可证,具体版本和来源记录在 third_party/runtime/VENDOR.jsonTHIRD_PARTY_NOTICES.md 中。

MiniCPM-o 模型权重不随本仓库分发,也不包含在上述源代码许可范围内。在商业使用、对外发布或重新分发模型文件前,应单独查阅并确认对应模型卡和权重许可条款。