Loading...

文章背景图

3D 桌面 AI 女友・部署指南

2026-10-23
5
- 字
- 分钟
|

适用分支:electron(Electron 34 壳,无需安装 Rust 工具链)

源码仓库:https://github.com/Sogrey/ai-girlfriend

本机部署目录:D:\桌面女友 整理日期:2026-10-23

一个长期驻留在 Windows 桌面上的实时 3D AI 虚拟伴侣:透明无边框窗口中的 VRM 角色,能跟随鼠标视线、听语音说话、开口回应并同步口型、做动作、表达情绪、换装、离开休息与召回。


一、技术栈

层

技术

桌面端

Electron 34 + Three.js r174 + @pixiv/three-vrm 3.5

AI 大模型

DeepSeek 在线 API(默认)/ Ollama 本地(可切换)

语音识别

Faster-Whisper(GPU 加速;显存 / 内存不足自动回退 CPU int8)

语音合成

Edge-TTS(默认免费);Azure / OpenAI / ElevenLabs / GPT-SoVITS 本地(可选)

视觉(屏幕感知)

GLM-4V-Flash(智谱・免费)/ 任意 OpenAI 兼容视觉端点

口型同步

Web Audio API 实时 FFT → VRM BlendShape

后端

Python + WebSocket 127.0.0.1:8765

渲染

程序化骨骼动画(纯数学驱动,无动捕文件)


二、环境要求

项目

最低要求

推荐配置

操作系统

Windows 10 1903 及以上

Windows 11

Node.js

18

22 LTS 及以上

Python

3.10

3.12

显卡

集显(自动回退 CPU int8)

NVIDIA RTX 3060 及以上、6GB 显存

内存

8GB

16GB 及以上

网络

DeepSeek 对话需联网

国内镜像全覆盖;语音可全离线(GPT-SoVITS)

2.1 安装后自检命令

检查项

命令

Node.js 版本

node --version

npm 版本

npm --version

Python 版本

python --version

NVIDIA 显卡

nvidia-smi

2.2 注意事项

  • 本指南基于 electron 分支,壳层是 Electron,不需要 Rust 工具链;仓库 main 分支为 Tauri 2 壳,才需要 Rust ≥ 1.80。

  • 没有 NVIDIA GPU 也能运行:Whisper 会自动回退 CPU int8 模式,仅语音识别速度慢一些。

  • 安装 Python 时务必勾选 Add Python to PATH;安装 Node.js 保持默认 Add to PATH。

  • 国内网络已在项目内配好镜像:npm → npmmirror,pip → 清华源,Whisper 模型 → hf-mirror.com。


三、下载清单(官方链接,全部写明)

组件

用途

版本要求

官方下载 / 链接

备注

项目源码

应用本体

electron 分支

仓库:https://github.com/Sogrey/ai-girlfriendZIP 直链:https://github.com/Sogrey/ai-girlfriend/archive/refs/heads/electron.zipGit:git clone -b electron https://github.com/Sogrey/ai-girlfriend.git

本指南基于 electron 分支

Node.js

前端运行时与 npm 依赖

≥ 18,推荐 22 LTS

官方:https://nodejs.org/zh-cn/download/国内镜像:https://npmmirror.com/mirrors/node/

安装时勾选 Add to PATH,自带 npm

Python

语音 / 对话后端

≥ 3.10,推荐 3.12

3.12.15:https://www.python.org/downloads/release/python-31215/通用下载页:https://www.python.org/downloads/

安装时勾选 Add Python to PATH

Git(可选)

命令行拉取源码

任意近期版本

https://git-scm.com/download/win

用 ZIP 解压可跳过

DeepSeek API Key

AI 对话(唯一必配)

—

https://platform.deepseek.com

免费注册,控制台创建 API Key

智谱视觉 Key(可选)

屏幕感知 GLM-4V-Flash

—

平台:https://bigmodel.cn文档:https://docs.bigmodel.cn/cn/guide/start/quick-start

免费额度;不填不影响普通聊天

Ollama(可选)

本地大模型,离线对话

—

https://ollama.com

安装后 ollama pull qwen3:4b

VRoid Hub(可选)

换装 VRM 模型

—

https://hub.vroid.com

下载 .vrm 放入 assets/costumes/

npm 镜像

加速 Node 依赖

—

https://registry.npmmirror.com

项目 .npmrc 已配置

pip 清华镜像

加速 Python 依赖

—

https://pypi.tuna.tsinghua.edu.cn/simple

安装命令中已带 -i 参数

HuggingFace 模型镜像

加速 Whisper 模型下载

—

https://hf-mirror.com

项目已走镜像,首次约 460MB


四、部署步骤

前置条件:已装好 Node.js、Python 并加入系统 PATH;源码已解压到 D:\桌面女友。以下命令均在 PowerShell 中、项目根目录 D:\桌面女友 执行。

4.1 获取源码(若尚未解压)

# 方式 A:浏览器下载 ZIP 后解压到 D:\桌面女友

# ZIP 直链:https://github.com/Sogrey/ai-girlfriend/archive/refs/heads/electron.zip

# 方式 B:Git 命令(需先安装 Git)

git clone -b electron https://github.com/Sogrey/ai-girlfriend.git D:\桌面女友

4.2 安装 Node 依赖

cd D:\桌面女友

# 项目 .npmrc 已配置 npmmirror 与 Electron 镜像,无需手动切换

npm install

4.3 创建 Python 虚拟环境

python -m venv .venv

4.4 升级 pip(清华镜像)

.venv\Scripts\python.exe -m pip install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple

4.5 安装后端依赖(清华镜像)

.venv\Scripts\python.exe -m pip install -r backend\requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

4.6 启动应用

# 一键启动(推荐):双击 scripts\启动AI女友.bat

# 手动分步(调试用)

# 终端 1:启动后端

.venv\Scripts\python.exe backend\main.py

# 终端 2:启动前端

npx electron .

一键脚本会自动完成:检查 .venv 与 node_modules → 后台拉起后端(端口 8765)→ 等待后端就绪(最多 40 秒)→ 启动 Electron 显示 3D 角色;退出时自动清理后端进程。

首次使用语音识别会下载 Whisper small 模型(约 460MB,经 hf-mirror 约 5 分钟),之后缓存秒载。


五、首次配置

5.1 必做:填写 DeepSeek API Key

启动后角色会出现在桌面上,但 AI 对话需要先填 Key:

  1. 鼠标移近角色 → 底部工具栏淡入;

  1. 点击 ⚙️ 设置;

  1. AI 大模型 → 填写 DeepSeek API Key;

  1. 保存。

Key 在 https://platform.deepseek.com 免费注册后于控制台创建。

未填 Key 时,3D 渲染、眼神追踪、换装、离开 / 返回、托盘快捷键全部正常,只有 AI 对话会返回 "请填写 API Key" 的提示。

5.2 可选配置

  • 屏幕感知(智谱免费视觉):设置 → 视觉模型 → 填 API Key(https://bigmodel.cn 注册,GLM-4V-Flash 免费)。点工具栏 👁 立即截屏发问,或直接说 "看看我屏幕上是什么",她会自动截屏结合画面回答。截图只发给所选视觉接口,不落盘存储。

  • 本地大模型 Ollama:设置面板 → Provider 改为 Ollama,填写地址与模型名。先安装 https://ollama.com ,执行 ollama pull qwen3:4b、ollama serve。6GB 显存建议 4B 级别;24GB 显存可跑 27B+。

  • 本地语音 GPT-SoVITS(免 Key 全离线):设置 → 语音合成 → 服务选 GPT-SoVITS 本地。默认参考音频在 assets/voices/ref_default.wav;可录 5~10 秒中文女声 wav 替换并填写对应逐字文案。

  • 换装模型:从 https://hub.vroid.com 下载 VRM 文件放入 assets/costumes/,命名规则见下表;未放置文件的槽位自动使用材质配色变体。

文件名

对应语音指令

costume_casual.vrm

"换成日常装"

costume_school.vrm

"换成水手服" / "穿学生装"

costume_stylish.vrm

"换成时尚一点的"

costume_gothic.vrm

"穿洋装"

costume_seed.vrm

"换未来科技装"

  • 修改人格:角色名 / 你的称呼在设置面板 → 女友;性格 Prompt 编辑 prompts/system_prompt.txt。


六、目录结构

ai-girlfriend/

├─ scripts/

│ ├─ 启动AI女友.bat ← 一键启动脚本

│ ├─ 首次安装.bat

│ └─ 启动GPT-SoVITS.bat

├─ electron/

│ ├─ main.js ← 主进程(窗口/托盘/快捷键/协议)

│ └─ preload.js ← 安全 API 桥

├─ renderer/ ← Three.js 场景 / 角色 / 动画 / 表情 / 口型 / 交互 / 工具栏

├─ backend/

│ ├─ main.py ← 后端入口

│ ├─ core/ ← WebSocket 服务 / 配置 / 日程提醒引擎

│ ├─ llm/ ← DeepSeek + Ollama 双 Provider

│ ├─ stt/ ← Faster-Whisper 引擎

│ ├─ tts/ ← 五家语音 Provider

│ ├─ conversation/ ← 统一对话管道

│ ├─ actions/ ← 意图校验 + 动作定义

│ └─ vision/ ← 屏幕感知

├─ heart/

│ └─ heart.html ← 爱心挂件窗口

├─ assets/

│ ├─ models/ ← 默认 VRM 模型

│ ├─ costumes/ ← 5 套服装 VRM(按需放入)

│ └─ icons/ ← 托盘图标

├─ config/

│ ├─ config.json ← 默认配置(版本管理)

│ └─ user.json ← 用户覆盖(设置面板写入,git 忽略)

├─ prompts/

│ └─ system_prompt.txt ← 人格 System Prompt

├─ docs/ ← PRD、开发计划、测试用例等文档

└─ package.json


七、配置说明

所有配置集中在 config/config.json(默认值)与 config/user.json(设置面板自动写入)。关键字段如下:

配置项

默认值

说明

llm.provider

deepseek

可选 deepseek / ollama

llm.deepseek.api_key

空

对话必配

llm.deepseek.base_url

https://api.deepseek.com

DeepSeek 接口地址

llm.deepseek.model

deepseek-flash

对话模型

llm.ollama.base_url

http://127.0.0.1:11434

本地 Ollama 地址

llm.ollama.model

qwen3:4b

本地模型名

stt.model

small

tiny / base / small / medium / large-v3

stt.language

zh

识别语言

stt.device

auto

auto / cpu / cuda

stt.compute_type

auto

如 cpu + int8

tts.provider

edge

edge / azure / openai / elevenlabs / gptsovits

tts.edge.voice

zh-CN-XiaoxiaoNeural

晓晓 / 晓伊 / 云健 / 晓涵 / 晓梦

vision.model

glm-4v-flash

视觉模型

vision.api_key

空

可选,屏幕感知用

server.port

8765

后端 WebSocket 端口

hotkey

Control+Alt+G

召唤 / 隐藏全局快捷键

默认配置片段(节选自 config/config.json):

{

"llm": {

"provider": "deepseek",

"deepseek": { "api_key": "", "base_url": "https://api.deepseek.com", "model": "deepseek-flash" },

"ollama": { "base_url": "http://127.0.0.1:11434", "model": "qwen3:4b" }

},

"stt": { "model": "small", "language": "zh", "device": "auto", "compute_type": "auto", "vad_enabled": true },

"tts": { "provider": "edge", "edge": { "voice": "zh-CN-XiaoxiaoNeural" } },

"vision": { "base_url": "https://open.bigmodel.cn/api/paas/v4", "api_key": "", "model": "glm-4v-flash" },

"server": { "port": 8765 },

"hotkey": "Control+Alt+G"

}


八、操作指南

操作

效果

移动鼠标

角色看向鼠标(头部 + 颈部 + 眼球平滑跟随)

鼠标靠近角色身体

纵向功能栏淡入(角色右下角贴身竖排)

点击角色头部

摸头 → 害羞 + 爱心粒子 + 随机语音

按住角色拖动

移动窗口位置,重启后记住位置

🎤 按钮

开始 / 停止语音对话(VAD 自动断句)

💬 按钮

文字聊天(回复支持加粗、代码与可点击链接)

👁 按钮

截屏发问(屏幕感知,需先填视觉 Key)

👗 按钮

手动换装(5 套)

👥 按钮

切换角色(多档案)

👋 按钮

让她去休息(变为爱心挂件)

⚙️ 按钮

设置面板

Ctrl+Alt+G

召唤 / 隐藏(全局快捷键)

点粉色爱心 / 语音 "回来"

召回休息中的角色

托盘右键

唤醒 / 隐藏 / 换装 / 休息 / 设置 / 退出

Ctrl+Shift+I

开发者工具(调试)


九、常见问题

Q1:启动后角色没出现?

角色会在模型与纹理全部加载完成后才显示(首次约 3~5 秒)。若超过 15 秒仍未出现:按 Ctrl+Alt+G 尝试唤醒;检查后端是否启动成功(BAT 窗口是否显示 "后端已就绪");按 Ctrl+Shift+I 打开开发者工具查看 console 报错。

Q2:AI 对话报 "API Key 未设置"?

这是唯一必做配置。进入 设置 → AI 大模型 → 填写 DeepSeek API Key → 保存;Key 在 https://platform.deepseek.com 免费注册获取。

Q3:语音识别没反应?

首次启动需下载 Whisper small 模型(约 460MB,经 hf-mirror 约 5 分钟),之后缓存秒载;确认麦克风已连接且浏览器有权限;检查设置面板中 Whisper 模型与语言是否正确。

Q4:没有 GPU / CUDA 报错?

Whisper 会自动回退 CPU int8 模式。如需强制指定,编辑 config/config.json:

"stt": { "device": "cpu", "compute_type": "int8" }

Q5:想用本地模型离线跑?

设置面板 → Provider 改为 Ollama;先安装 Ollama 并拉取模型:

ollama pull qwen3:4b

ollama serve

本地模型质量取决于模型大小与显存:6GB 显存建议 4B 级别,24GB 可跑 27B+。

Q6:npm install 很慢或失败?

项目已配 .npmrc 使用 npmmirror 国内镜像。如仍失败,手动切换:

npm config set registry https://registry.npmmirror.com

Q7:点爱心召回后角色要等一下才出现?

正常行为:窗口隐藏期间显卡会回收角色纹理,召回时先静默等待约 0.7 秒,待纹理重新就绪后再以完整形象淡入,避免出现半透明、无面部纹理的异常画面。

Q8:功能栏怎么唤出?

鼠标移近角色身体(悬停腿部 / 头部都算),或直接把鼠标移到角色右侧贴身的功能栏区域(隐藏状态下也可唤出)。鼠标在功能栏和各面板上停留时不会消失,移开约 0.3 秒后自动淡出。

Q9:角色太占屏幕 / 想调整位置?

角色默认脚底站在 Windows 任务栏上沿;按住身体拖动可移动位置,重启后自动恢复上次摆放位置,托盘右键也可 "位置复位";重启后聊天记录自动回填。说 "去休息吧" 让她离开变成爱心,Ctrl+Alt+G 随时召唤 / 隐藏。


十、打包免安装目录版(可选)

npm install

npm run dist

# 产物:dist\win-unpacked\AI-Girlfriend.exe

  • 产物为免安装目录版:dist\win-unpacked\ 整个文件夹拷走即可,双击 AI-Girlfriend.exe,桌宠窗口 + 托盘 + 快捷键与开发版一致。

  • 语音 / 对话后端仍走本机 Python 环境(首次安装所装的 .venv);用户密钥 config/user.json 与聊天记录不会打进包。


十一、本机实测记录(D:\桌面女友,2026-10-23)

项目

状态

版本 / 说明

部署目录

—

D:\桌面女友

代码分支

✓

electron(Electron 34 壳,无需 Rust)

Node.js

✓

v22.23.2

npm

✓

10.9.8

Python 虚拟环境

✓

3.13.16(README 推荐 3.12;本机实测 3.13 依赖可正常安装)

Node 依赖

✓

335 个包,Electron 二进制已下载

后端依赖

✓

faster-whisper 1.2.1、ctranslate2 4.8.3、edge-tts 7.3.1、av 15.1.0、numpy 2.5.4、websockets 17.3、httpx 0.28.1

剩余待办:

  1. 设置面板填写 DeepSeek API Key;

  1. 双击 scripts\启动AI女友.bat 启动;

  1. 首次语音对话自动下载 Whisper small 模型(约 460MB)。


附:许可与说明

  • 源码许可:MIT(见仓库 LICENSE);项目标注 Private / Personal Use、AI 生成。

  • 本指南依据 electron 分支 README v1.0.0 与本机实际安装结果整理;如后续 main 分支(Tauri 2)启用,需另行安装 Rust ≥ 1.80 工具链。

评论交流

文章目录