想在自己电脑上养一个会动、会聊天的二次元角色?AIRI 是一个开源的 AI 虚拟伙伴。浏览器里站着一个会眨眼、会晃动的 Live2D 角色(让 2D 立绘动起来的技术)。它接上本机 Ollama(在自己电脑上跑大模型的工具),就能用中文聊天。回复是流式的,也就是一个字一个字往外冒。角色还会跟着回复内容换表情和动作。不填任何云端密钥也能玩。本帖免费。
4 步上手
- 装环境:装 Node.js 26,执行
corepack enable,让 pnpm 自动对上 11.24.0。 - 装依赖:在项目目录执行
pnpm i,第一次要等一会儿。 - 起 Web 版:执行
pnpm dev --host 127.0.0.1,浏览器打开http://127.0.0.1:5173/。 - 接 Ollama 聊天:用
OLLAMA_ORIGINS=*启动 Ollama,拉一个 3B 小模型,在引导页选 Ollama,再选模型,然后发一句中文。

pnpm i 最后显示 37 个构建任务全部成功。pnpm dev 打出 VITE ready 和 Local: http://127.0.0.1:5173/,说明启动成功。最下面列出了本机 Ollama 里的模型。能做什么(只写本机实测过的)
- 角色会动:默认角色叫「伊噜」,打开页面就会眨眼、呼吸、轻轻晃动
- 中文聊天:接本机 Ollama,回复流式输出
- 跟着情绪换表情:等回复时会做「思考」动作,回复里再切换开心、疑问、好奇等表情
- 换角色:模型选择器里自带 2 个 Live2D 角色和 2 个 VRM 角色(VRM 是 3D 虚拟形象的通用文件格式),也能导入自己的模型
- 界面有简体中文:右上角地球图标切换
语音合成、语音识别、桌宠版和接游戏等功能,本篇都没有实测,就不展开了。
技术栈(压缩)
- 前端:Vue 3 + TypeScript,开发服务器用 Vite(前端的开发服务器和打包工具)
- 仓库:pnpm monorepo(一个仓库里装着很多子项目,用 pnpm 统一管理)
- 2D 角色:Live2D;3D 角色:VRM + Three.js
- 大模型:任意 OpenAI 兼容接口,本篇用本机 Ollama
本机实测版本 v0.15.2,Node 26.12.1,pnpm 11.24.0,Ollama 0.40,模型 qwen2.5:3b。
本机部署(已跑通)
corepack enable
pnpm -v # 应显示 11.24.0
pnpm i # 第一次较久
pnpm dev --host 127.0.0.1 # 只给本机访问
# 另开一个终端
OLLAMA_ORIGINS=* ollama serve # 允许浏览器直接访问 Ollama
ollama pull qwen2.5:3b
第一次 pnpm dev 会自动联网下载 Live2D 运行库和示例角色模型。下载失败就检查网络或代理,然后重跑。

第一次打开会弹出引导页,默认是英文。先点右上角地球图标切到简体中文,再点「配置您自己的 AI 服务来源」。

Base URL 填 http://127.0.0.1:11434/v1/。默认值写的是 localhost,有的系统会先解析到 IPv6,连不上,改成 127.0.0.1 更稳。


qwen2.5:3b,右上角显示「当前模型」。验收:中文对话 + 表情
发一句:「伊噜早上好!我今天考试拿了满分,你替我高兴吗?」



表情是怎么来的:AIRI 会让模型在回复里夹带情绪标记。页面把标记藏起来,再交给角色去换表情。小模型偶尔会把称呼弄混,比如上面它叫了用户「伊噜」,这是模型能力问题。
口型要跟着语音走。本篇没开语音合成,所以只有表情和动作,没有对口型。

实测踩坑
- 版本要对上:仓库指定 Node 26 和 pnpm 11.24。用
corepack enable让 pnpm 自动切版本。corepack 缓存目录没权限时,设COREPACK_HOME到自己能写的目录。 - 默认会对局域网开放:
pnpm dev默认带--host,局域网都能访问。只在本机玩就加--host 127.0.0.1。 - 不想下 Electron 就先跳过:装依赖时会顺带准备桌面版。只玩 Web 版可以先设
ELECTRON_SKIP_BINARY_DOWNLOAD=1。 - 报 Failed to fetch 或 CORS:CORS 是浏览器的跨域拦截。Ollama 要带
OLLAMA_ORIGINS=*启动,Base URL 端口也要写对。 ollama pull卡住不动:本机下载被 CDN 跳转拦了。改用 curl 从官方仓库下载模型文件,校验哈希后再ollama create注册。- 1.5B 模型太弱:
qwen2.5:1.5b能聊,但常常跑题,还会把控制标记当正文念出来。换成qwen2.5:3b后正常。 - 偶尔只换表情不说话:3B 模型偶尔只输出情绪标记、正文为空,也偶尔把标记写错、原样显示在对话里。点「新建对话」重发一次就好。
- 第一个字要等约 20 秒:系统提示词约 3000 字,纯 CPU 先要把它读完。之后出字就快了。
- 本地语音只有英文声线:设置里的 Kokoro 本地语音合成,这个版本只列出英文声线,中文口型本篇没测。
安全与合规
- 只在本机玩时,Vite 和 Ollama 都绑
127.0.0.1,不要直接暴露到公网。 - 接云端模型时,密钥只填在浏览器设置里,不要写进代码,也不要出现在截图里。
- 协议为 MIT:再分发请保留 LICENSE。
- Live2D 运行库是 Live2D 公司的专有许可。示例角色模型的版权归原作者。
- 源码包可在本帖下载区获取:MIT 源码 + 中文部署说明。已去掉 Live2D SDK 和示例角色模型,构建时自动下载,或需自行获取。也已去掉
node_modules、构建产物和.git,不含任何密钥。
装 Node 26 → pnpm i → pnpm dev → 接 Ollama,一个会动会聊的 AI 伙伴就在浏览器里站好了。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END














暂无评论内容