关注Vedal喵,关注Vedal谢谢喵
本临时README和所有代码均由AI生成
Neuro Simulator 是一个模拟 Neuro-sama 直播的项目。
它通过使用自带的有记忆 Agent,也可调用 Letta(一个为 LLM 添加自主记忆功能的项目),以及相同构造的 Chatbot Agent 作为虚拟观众,模拟一场 Neuro-sama 的 Just Chatting 直播。
它能生成实时的虚拟聊天内容,并通过 TTS 合成语音,提供沉浸式的 Twitch vedal987 频道观看体验。
和其他类似的 AI Vtuber 项目不同,本项目旨在尽可能模拟 Neuro-sama 于 Twitch 上的 Tuesday Stream,因此在 Vtuber 部分不会有太多的自定义部分,也不会考虑引入 Neuro/Evil 以外的 Live2D。
后续有低成本低性能方法实现 Evil 音色模仿的时候,可能加入 Evil Neuro。
这图是较旧版本的,现在小牛已经和现实中一样换新家了
演示视频:哔哩哔哩
- 多客户端支持:支持多个客户端连接,实时广播内容。
- 配置热重载:通过 Web 控制面板实时修改和热重载配置。
双 Agent 模式:支持 Letta Agent 和内建 Agent,提供更多自定义选项对 Letta Agent 的支持暂时下线,后续有缘再见。
-
准备外部服务:确保你拥有必要的 API 密钥,包括 LLM(Gemini/OpenAI)和 Azure TTS;
如果使用 Letta,也请注册好相关的 API 。 -
安装服务端:已上传至 PyPi 作为可用 pip 安装的软件包,你可以用任何一个 pip 安装到全局或 venv 中。
pip install neuro-simulator
推荐使用 pipx,可以在不更改系统 Python 依赖的情况下直接安装为全局软件。
-
运行服务端:
neuro
现在无需手动填写
config.yaml,程序在启动时会自动创建一份包含默认设置的配置文件,只需在管理面板中填写和为 Agent 分配 API 服务商即可。- 不指定
--dir, -D则自动创建和默认使用~/.config/neuro-simulator/作为工作目录。 - 程序会在工作目录下自动生成文件夹结构,拷贝需要的文件到目录内,保持程序包本体只读。
程序启动后,如果工作正常,会默认在
http://127.0.0.1:8000提供对外服务,你可以在设置中修改这个端口。 - 不指定
-
打开管理面板:现在程序已经内置管理面板,直接在浏览器中打开
http://127.0.0.1:8000/dashboard/即可,内置面板会自动连接到服务端。配置流程:
- 在管理面板中打开“配置”页面。
- 在“LLM服务商”中添加一个以上的选项。
- 在“TTS服务商”中添加一个以上的 Azure TTS 服务。
- 在“Neuro”中分配一个 LLM 服务商和一个 TTS 服务商。
- 在“Chatbot”中分配一个 LLM 服务商。
-
打开客户端:现在程序已经内置客户端,在浏览器中访问
<http协议>://<服务端地址>/即可。
但是这种方式下自动从哔哩哔哩获取最近回放的功能似乎不工作,需要对哔哩哔哩 API 进行反代。如果你安装了 nodejs,则可以使用 npm 运行开发服务器的方式使用客户端。
更多更复杂或者更简单的使用方式,请参见三个部分的详细文档
Neuro-Simulator/
├── server/ # 服务端
├── client/ # 客户端
├── dashboard_web/ # Web控制面板
├── docs/ # 文档和示例文件
│ ├── letta_agents_example/ # Letta Agent 模板示例
│ ├── assets/ # README中使用的媒体文件
│ └── working_dir_example/ # 工作目录示例
└── README.md # 项目说明文档
有关安装、配置和使用的详细信息,请参阅详细的 README 文件:
- 服务端
- Neuro Agent 模块
- 基于 Letta 的 Neuro Agent
- 内建的 Neuro Agent
- 基本的对话和上下文功能
- 自动和手动记忆管理,包括系统提示、核心记忆、临时记忆
- prompt 完整内容编辑
- 工具调用
- 内建工具及调用
- 记忆管理
- 直播标题修改
- 对外发言
- 发起投票和查看结果
- 旋转和缩放模型
- 调整 TTS 语速
- 禁言指定名称用户
- 播放音效
- 模块化热插拔工具
- 连接到 MCP 服务器
- 兼容 Offical Neuro SDK
- 内建工具及调用
- 拉起 Evil Agent 并进行对话
- Evil Agent 模块,
卖掉了待 Neuro Agent 完善、有低成本低性能方法实现 Evil 音色模仿的时候加入 - 对 Neuroverse 更多成员的 AI Agent 复现,进而允许 Neuro Agent 向其发送 DM(语音聊天可能不太现实)
- Chatbot 模块
- 无状态 Chatbot(即将弃用)
- Username 的自动生成和预置替换补充
- prompt 编辑
- 调用 Gemini 和 OpenAI API 格式的LLM
- 基于 Neuro Agent 的上一句内容而做出 Reaction
-
在 prompt 中包含直播标题等更多信息将在更强大的 Chatbot Agent 中实现 -
实现更长的上下文将在更强大的 Chatbot Agent 中实现
- Chatbot Agent
- 更好的用户名生成逻辑
- 更长的上下文,包括自身输出和 Neuro Agent 内容
- 在 prompt 中包含直播标题、Neuro 和 Twitch 相关背景知识等更多信息
- 类似 Neuro Agent 的记忆系统,实现有状态 Chatbot Agent
- 无状态 Chatbot(即将弃用)
- 真实的 Filter 模块,取代 Agent prompt 中的自我 Filtered.
- 对外 API 接口,包括常规的 http 和 ws 端点
- Twitch Chat 及管理
- 普通 Chat
- 随机池机制,从中抽取消息注入 Neuro
- 醒目留言 Highlight Messages
- 队列机制,先进先出
- 可选的 TTS Guy
- Subs 和 Donations 相关机制
- 禁言指定名称用户
- 普通 Chat
- 配置管理和热重载
- TTS 合成和推送
- Azure TTS
- 待定 TTS
- 剔除 Emoji 等特殊字符
- 进行直播和直播环节
- Just Chatting 单人直播
- Neuro Stream
- Evil Stream
- Karaoke 歌回直播
- Twin 闲聊或主题直播
- 艺术鉴赏直播环节
- Just Chatting 单人直播
- 多客户端连接和广播
- 动态推送开场 Starting Soon 视频
- 直播阶段
- Starting Soon
- 神の上升
- 常规直播
- Ending
- 直播和聊天室内容
- 醒目留言 Highlight Messages
- 直播标题和标签等信息
- 在非直播的空闲时间自动获取真实世界中 Neuro 的近期直播内容,更新完善记忆内容(不是微调训练)
- 对 Ollama 等本地 LLM 的优化
- 服务端托管管理面板
- Web 控制面板
- 使用 PyInquiry 的命令行面板
- Neuro Agent 模块
- 客户端
- 仅包含直播区域的客户端,适用于希望使用 OBS 或其他软件推流画面的用户
- 可自定义的用户信息和服务端地址
- 仿 Twitch 直播界面
- 响应式设计
- 主要界面元素
- 次级页面
- Twitch Chat 和其他互动
- 普通聊天的发送和查看
- 使用 Bits 和 Channel Points 发送醒目留言 Highlight Messages
- 表情发送
- Bits & Channel Points 逻辑
- 小牛最爱的 Subs 和 Donations 相关逻辑
- 参与投票
- 主播和直播信息
- 头像、名称信息
- 动态更新的直播标题、分区、标签
- 动态更新的人数和直播时长
- 下滑的更多主播信息
- 使用 html 模拟的直播场景
- 仿真字幕样式
- 字体和描边效果
- 逐字跳出效果
- 随内容量的字号调整效果
- 仿真 Twitch Chat Overlay
- Neuro 立绘
- 开场上升
- 表情差分
- 旋转缩放
- 自然晃动
- 音效播放
- Evil 立绘
- 醒目留言 Highlight Messages Overlay
- 根据来源(Bits 或 Channel Points)显示不同颜色背景
- 展示用户名和内容
- 更真实的进入/退出动画
- 仿真字幕样式
- 仿 Twitch 离线界面(主播首页)
- 响应式设计
- 自动获取最新哔哩哔哩官号回放
- 自动获取上一场哔哩哔哩直播回放对应的时间、分区、回放视频链接
- 真实的主播首页竖屏模式界面(目前沿用针对竖屏优化过的横屏样式)
- 下滑的更多主播信息
- 其他次级页面
- 服务端托管客户端
- 更多客户端(若实现原生客户端则弃用 tauri)
- 可托管的 Web 静态页面
- Windows 客户端
- 基于 Tauri
- 原生
- Linux 客户端
- 基于 Tauri
- 原生
- Android 客户端
- 基于 Tauri
- 原生
- Web 控制面板
- 更加便捷的启动器/启动脚本
- 指定服务端 URL 进行连接
- 直播的开始、停止、重启
- 配置的查看、编辑、热重载
- 服务端实时日志查看
- 按照等级进行日志筛选
- Agent管理
- 对话上下文查看
- 对话方式展现
- 上下文方式展现
- 实时更新
- 可视化展现 Agent 的详细执行流程
- 实时日志查看
- 按照等级进行日志筛选
- 记忆查看和手动管理
- 工具
- 简易的内建工具查看
- 工具管理取决于服务端开发进度
- 对话上下文查看
- 杂项,有一些可能永远不会实现,有一些可能很快就能完成
-
一键启动器和整合包,适用于不需要分开部署的情况,或者面向普通小白用户
-
基于静态立绘制作的简易Live2D,能动就行
-
目前不会考虑语音输入
除非你和 Neuro 在直播中有过语音联动,那我可以叫上 Gemini 一起,给你单独定制一个(
-
等待补充…
-
欢迎提交 Issue 和 Pull Request 来帮助改进项目,虽然大概率会是 Gemini 2.5 或者 Qwen Coder 来处理🤣
