docs/README.zh-CN.md
</picture>
</picture>
</picture>
</picture>
</picture>
</picture>
深受 Neuro-sama 启发
[!WARNING] 注意: 我们没有发行任何与本项目关联的加密货币或代币,请注意判断资讯并谨慎行事。
[!NOTE]
我们有一个专门的组织 @proj-airi 用于所有从 Project AIRI 诞生的子项目,快来看看吧!
RAG(检索增强生成)、记忆系统、嵌入式数据库、图标、Live2D 实用工具等等!
[!TIP] 我们在 Crowdin 上有翻译项目。如果你发现翻译不准确,欢迎在上面参与翻译并贡献修正。 <a href="https://crowdin.com/project/proj-airi" target="_blank" rel="nofollow"></a>
你是否梦想过拥有一个赛博生命(赛博 waifu、数字桌宠),或者能与你玩耍和交谈的数字伴侣?
借助现代大型语言模型的力量,像是 ChatGPT 和著名的 Claude 所能带来的,想要 LLM(大语言模型)和我们角色扮演、聊天已经超简单了,每个人都能上手。而像 Character.ai(又称 c.ai) 和 JanitorAI 这样的平台,以及本地应用如 SillyTavern(又称酒馆),已经是基于聊天或文字冒险游戏体验的相当不错的解决方案。
但是,如何赋予它们玩游戏的能力呢?让它们能看到你正在编写的代码?不仅能一边聊天一边玩游戏,也可以看视频,还能做很多其他事情?
你可能已经知道 Neuro-sama,她目前是最好的能够玩游戏、聊天并与你和参与者(在VTuber社区中)互动的 AI VTuber / 伴侣,有些人也称这种存在为"数字人"。可惜的是,她并不开源,当她从直播中下线后,你就无法与她互动了。
因此,这个项目 AIRI,在这里提供了另一种可能性:让你轻松拥有自己的数字生命、赛博生命,随时随地。
与其他 AI 和 LLM 驱动的 VTuber 开源项目不同,アイリ VTuber 从开始开发的第一天开始就支持多种 Web 技术,涵盖诸如 WebGPU、WebAudio、Web Workers、WebAssembly、WebSocket 等已经广泛应用或仍在大量实验的 API。
[!TIP] 担心使用 Web 技术会导致性能下降吗?
不用担心,浏览器版本旨在展示我们在浏览器和 webview 里能做到什么,但不会完全依赖它。AIRI 桌面版默认原生支持 NVIDIA CUDA 和 Apple Metal(多亏了 HuggingFace 与可爱的 candle 项目),且无需复杂的依赖管理。考虑到取舍,我们在图形、布局、动画和 WIP 插件系统上部分使用了 Web 技术,方便大家集成。
这意味着 アイリ VTuber 能够在现代浏览器和设备上运行,甚至能够在移动设备上运行(已经完成了 PWA 支持),这为我们(贡献者们)带来了更多的可能性,让我们得以更进一步构建和扩展 アイリ VTuber 的外部功能,而与此同时也不失配置的灵活性——可以有选择地在不同设备上启用需要 TCP 连接或其他非 Web 技术的功能,例如连接到 Discord 的语音频道一起开黑,或是和朋友们一起玩 Minecraft(我的世界)、Factorio(异星工厂)。
[!NOTE]
アイリ VTuber 仍处于早期开发阶段,我们欢迎优秀的开发者加入我们,一起将它变为现实。
即使不熟悉 Vue.js、TypeScript 和所需的其他开发工具也没关系,我们也欢迎艺术家、设计师、运营策划的加入,你甚至可以成为第一个用 アイリ VTuber 直播的博主。
如果你使用的是 React、Svelte,甚至 Solid 也没关系,您可以自己创建一个子目录,添加您希望在 アイリ VTuber 中看到的功能,或者想实验的功能。
我们非常期待以下领域的朋友加入:
- Live2D 模型师
- VRM 模型师
- VRChat 模型设计师
- 计算机视觉(CV)
- 强化学习(RL)
- 语音识别
- 语音合成
- ONNX 推理运行时
- Transformers.js
- vLLM
- WebGPU
- Three.js
- WebXR (也可以看看我们在 @moeru-ai 组织下另外的这个项目)
如果你已经感兴趣了,为什么不来这里和大家打个招呼呢?Would like to join part of us to build AIRI?
目前已经能做到:
pglite)开发本项目的详细指南请参阅 CONTRIBUTING.md
[!NOTE] 默认情况下
pnpm dev会启动 Stage Web(浏览器版)的开发服务器;如果你想尝试桌面版,请先阅读 CONTRIBUTING.md 正确完成环境配置。
pnpm i
pnpm dev
pnpm dev
pnpm dev:tamagotchi
我们提供了拓麻歌子的 Nix 包。先启用 flakes,然后可以直接运行:
nix run github:moeru-ai/airi
pnpm dev:docs
运行 bumpp 来更新 monorepo 版本:
npx bumpp --no-commit --no-tag
unspeech:通用的 /audio/transcriptions 与 /audio/speech 代理,类似 LiteLLM,但适用于任意 ASR 和 TTShfup:帮助部署与打包到 HuggingFace Spaces 的工具xsai-transformers:面向 xsAI 的实验性 🤗 Transformers.js provider@proj-airi/drizzle-duckdb-wasm:DuckDB WASM 的 Drizzle ORM 驱动@proj-airi/duckdb-wasm:好用的 @duckdb/duckdb-wasm 封装autorio: Factorio 自动化库tstl-plugin-reload-factorio-mod: 开发时支持热重载 Factorio 模组demodel:轻松加速不同推理引擎/下载器拉取模型与数据集inventory:集中式模型目录与默认 provider 配置的后端服务%%{ init: { 'flowchart': { 'curve': 'catmullRom' } } }%%
flowchart TD
Core("Core")
Unspeech("unspeech")
DBDriver("@proj-airi/drizzle-duckdb-wasm")
MemoryDriver("[WIP] Memory Alaya")
DB1("@proj-airi/duckdb-wasm")
SVRT("@proj-airi/server-runtime")
Memory("Memory")
STT("STT")
Stage("Stage")
StageUI("@proj-airi/stage-ui")
UI("@proj-airi/ui")
subgraph AIRI
DB1 --> DBDriver --> MemoryDriver --> Memory --> Core
UI --> StageUI --> Stage --> Core
Core --> STT
Core --> SVRT
end
subgraph UI_Components
UI --> StageUI
UITransitions("@proj-airi/ui-transitions") --> StageUI
UILoadingScreens("@proj-airi/ui-loading-screens") --> StageUI
FontCJK("@proj-airi/font-cjkfonts-allseto") --> StageUI
FontXiaolai("@proj-airi/font-xiaolai") --> StageUI
end
subgraph Apps
Stage --> StageWeb("@proj-airi/stage-web")
Stage --> StageTamagotchi("@proj-airi/stage-tamagotchi")
Core --> RealtimeAudio("@proj-airi/realtime-audio")
Core --> PromptEngineering("@proj-airi/playground-prompt-engineering")
end
subgraph Server_Components
Core --> ServerSDK("@proj-airi/server-sdk")
ServerShared("@proj-airi/server-shared") --> SVRT
ServerShared --> ServerSDK
end
STT -->|Speaking| Unspeech
SVRT -->|Playing Factorio| F_AGENT
SVRT -->|Playing Minecraft| MC_AGENT
subgraph Factorio_Agent
F_AGENT("Factorio Agent")
F_API("Factorio RCON API")
factorio-server("factorio-server")
F_MOD1("autorio")
F_AGENT --> F_API -.-> factorio-server
F_MOD1 -.-> factorio-server
end
subgraph Minecraft_Agent
MC_AGENT("Minecraft Agent")
Mineflayer("Mineflayer")
minecraft-server("minecraft-server")
MC_AGENT --> Mineflayer -.-> minecraft-server
end
XSAI("xsAI") --> Core
XSAI --> F_AGENT
XSAI --> MC_AGENT
Memory_PGVector("@proj-airi/memory-pgvector") --> Memory
style Core fill:#f9d4d4,stroke:#333,stroke-width:1px
style AIRI fill:#fcf7f7,stroke:#333,stroke-width:1px
style UI fill:#d4f9d4,stroke:#333,stroke-width:1px
style Stage fill:#d4f9d4,stroke:#333,stroke-width:1px
style UI_Components fill:#d4f9d4,stroke:#333,stroke-width:1px
style Server_Components fill:#d4e6f9,stroke:#333,stroke-width:1px
style Apps fill:#d4d4f9,stroke:#333,stroke-width:1px
style Factorio_Agent fill:#f9d4f2,stroke:#333,stroke-width:1px
style Minecraft_Agent fill:#f9d4f2,stroke:#333,stroke-width:1px
style DBDriver fill:#f9f9d4,stroke:#333,stroke-width:1px
style MemoryDriver fill:#f9f9d4,stroke:#333,stroke-width:1px
style DB1 fill:#f9f9d4,stroke:#333,stroke-width:1px
style Memory fill:#f9f9d4,stroke:#333,stroke-width:1px
style Memory_PGVector fill:#f9f9d4,stroke:#333,stroke-width:1px
xsai:实现了相当数量的包来与 LLM 和模型交互,像 Vercel AI SDK 但是更小特别感谢所有 Contributors 对 Project AIRI 的贡献 ❤️
<a href="https://github.com/moeru-ai/airi/graphs/contributors"> </a>