neuro-simulator 0.6.0__tar.gz → 0.6.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/PKG-INFO +37 -39
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/README.md +36 -38
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/client/README.md +9 -4
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/client/package-lock.json +2 -2
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/client/package.json +1 -1
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/client/src/core/appInitializer.ts +111 -37
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/client/src-tauri/Cargo.toml +4 -4
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/client/vite.config.ts +2 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/dashboard/package-lock.json +2 -2
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/dashboard/package.json +1 -1
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/dashboard/vite.config.ts +1 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/hatch_build.py +14 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/pyproject.toml +2 -2
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/README.md +40 -45
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/neuro_simulator/core/application.py +36 -1
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/.github/workflows/release.yml +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/.gitignore +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/LICENSE +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/client/index.html +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/client/public/avatar.webp +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/client/public/background.webp +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/client/public/background_old.webp +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/client/public/banner.jpeg +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/client/public/channel_points.png +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/client/public/error.mp3 +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/client/public/favicon.ico +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/client/public/fonts/causten.woff2 +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/client/public/fonts/comic.woff2 +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/client/public/fonts/first-coffee.woff2 +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/client/public/fonts/noto-sans-sc.woff2 +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/client/public/neuro_start.mp4 +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/client/public/neurosama.png +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/client/public/sc_pink.png +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/client/public/sc_purple.png +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/client/public/sub_badge.svg +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/client/public/user_avatar.jpg +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/client/src/core/layoutManager.ts +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/client/src/core/singletonManager.ts +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/client/src/javascript/tooltip.js +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/client/src/javascript/viewers.js +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/client/src/main.ts +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/client/src/services/apiClient.ts +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/client/src/services/audioPlayer.ts +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/client/src/services/bilibiliService.ts +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/client/src/services/websocketClient.ts +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/client/src/stream/neuroAvatar.ts +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/client/src/stream/videoPlayer.ts +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/client/src/style.css +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/client/src/styles/base.css +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/client/src/styles/chat.css +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/client/src/styles/header.css +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/client/src/styles/offline.css +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/client/src/styles/responsive.css +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/client/src/styles/settings.css +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/client/src/styles/stream-info.css +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/client/src/styles/stream.css +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/client/src/styles/tooltip.css +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/client/src/types/common.ts +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/client/src/ui/chatDisplay.ts +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/client/src/ui/chatSidebar.ts +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/client/src/ui/liveIndicator.ts +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/client/src/ui/muteButton.ts +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/client/src/ui/neuroCaption.ts +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/client/src/ui/settingsModal.ts +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/client/src/ui/streamInfoDisplay.ts +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/client/src/ui/streamTimer.ts +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/client/src/ui/userInput.ts +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/client/src/utils/wakeLockManager.ts +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/client/src/vite-env.d.ts +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/client/src-tauri/.cargo/config.toml +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/client/src-tauri/Cargo.lock +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/client/src-tauri/build.rs +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/client/src-tauri/capabilities/migrated.json +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/client/src-tauri/icons/icon.ico +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/client/src-tauri/icons/icon.png +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/client/src-tauri/src/lib.rs +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/client/src-tauri/src/main.rs +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/client/src-tauri/tauri.conf.json +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/client/tsconfig.json +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/dashboard/e2e/tsconfig.json +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/dashboard/e2e/vue.spec.ts +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/dashboard/env.d.ts +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/dashboard/eslint.config.ts +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/dashboard/index.html +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/dashboard/playwright.config.ts +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/dashboard/public/favicon.ico +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/dashboard/public/first-coffee.woff2 +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/dashboard/src/App.vue +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/dashboard/src/assets/base.css +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/dashboard/src/assets/fonts.css +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/dashboard/src/assets/logo.svg +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/dashboard/src/assets/main.css +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/dashboard/src/components/agent/ContextTab.vue +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/dashboard/src/components/agent/LogsTab.vue +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/dashboard/src/components/agent/MemoryTab.vue +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/dashboard/src/components/agent/ToolsTab.vue +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/dashboard/src/components/common/ConfirmDialog.vue +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/dashboard/src/components/config/FieldRenderer.vue +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/dashboard/src/locales/en.json +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/dashboard/src/locales/zh.json +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/dashboard/src/main.ts +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/dashboard/src/router/index.ts +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/dashboard/src/stores/agent.ts +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/dashboard/src/stores/config.ts +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/dashboard/src/stores/connection.ts +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/dashboard/src/stores/counter.ts +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/dashboard/src/stores/logs.ts +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/dashboard/src/stores/stream.ts +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/dashboard/src/stores/tools.ts +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/dashboard/src/stores/ui.ts +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/dashboard/src/views/AgentView.vue +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/dashboard/src/views/ChatBotView.vue +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/dashboard/src/views/ConfigView.vue +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/dashboard/src/views/ControlView.vue +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/dashboard/src/views/HomeView.vue +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/dashboard/src/views/LogsView.vue +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/dashboard/tsconfig.app.json +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/dashboard/tsconfig.json +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/dashboard/tsconfig.node.json +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/dashboard/tsconfig.vitest.json +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/dashboard/vitest.config.ts +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/docs/assets/start.gif +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/docs/letta_agents_example/LETTA_CLOUD_ONLY_neuro-sama.af +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/docs/letta_agents_example/README.md +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/docs/letta_agents_example/sys_prompt_for_sleeptime.txt +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/docs/working_dir_example/agents/memories/core_memory.json +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/docs/working_dir_example/agents/memories/init_memory.json +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/docs/working_dir_example/agents/memories/temp_memory.json +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/docs/working_dir_example/agents/memory_manager/history.jsonl +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/docs/working_dir_example/agents/memory_manager/memory_prompt.txt +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/docs/working_dir_example/agents/memory_manager/tools.json +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/docs/working_dir_example/agents/neuro/history.jsonl +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/docs/working_dir_example/agents/neuro/neuro_prompt.txt +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/docs/working_dir_example/agents/neuro/tools.json +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/docs/working_dir_example/agents/tools/builtin_tools/!!!NO-CHANGE-WILL-BE-SAVED-AFTER-RESTART!!! +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/docs/working_dir_example/agents/tools/builtin_tools/add_temp_memory.py +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/docs/working_dir_example/agents/tools/builtin_tools/add_to_core_memory_block.py +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/docs/working_dir_example/agents/tools/builtin_tools/base.py +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/docs/working_dir_example/agents/tools/builtin_tools/create_core_memory_block.py +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/docs/working_dir_example/agents/tools/builtin_tools/delete_core_memory_block.py +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/docs/working_dir_example/agents/tools/builtin_tools/get_core_memory_block.py +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/docs/working_dir_example/agents/tools/builtin_tools/get_core_memory_blocks.py +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/docs/working_dir_example/agents/tools/builtin_tools/model_spin.py +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/docs/working_dir_example/agents/tools/builtin_tools/model_zoom.py +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/docs/working_dir_example/agents/tools/builtin_tools/remove_from_core_memory_block.py +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/docs/working_dir_example/agents/tools/builtin_tools/speak.py +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/docs/working_dir_example/agents/tools/builtin_tools/update_core_memory_block.py +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/docs/working_dir_example/assets/neuro_start.mp4 +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/docs/working_dir_example/chatbot/chatbot/chatbot_prompt.txt +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/docs/working_dir_example/chatbot/chatbot/tools.json +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/docs/working_dir_example/chatbot/memories/core_memory.json +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/docs/working_dir_example/chatbot/memories/init_memory.json +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/docs/working_dir_example/chatbot/memories/temp_memory.json +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/docs/working_dir_example/chatbot/memory_agent/memory_prompt.txt +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/docs/working_dir_example/chatbot/memory_agent/tools.json +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/docs/working_dir_example/chatbot/nickname_gen/data/adjectives.txt +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/docs/working_dir_example/chatbot/nickname_gen/data/nouns.txt +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/docs/working_dir_example/chatbot/nickname_gen/data/special_users.txt +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/docs/working_dir_example/chatbot/tools/builtin_tools/add_temp_memory.py +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/docs/working_dir_example/chatbot/tools/builtin_tools/post_chat_message.py +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/WEBSOCKET_API.md +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/neuro_simulator/__init__.py +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/neuro_simulator/agent/__init__.py +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/neuro_simulator/agent/core.py +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/neuro_simulator/agent/llm.py +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/neuro_simulator/agent/memory/__init__.py +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/neuro_simulator/agent/memory/chat_history.json +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/neuro_simulator/agent/memory/core_memory.json +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/neuro_simulator/agent/memory/init_memory.json +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/neuro_simulator/agent/memory/manager.py +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/neuro_simulator/agent/memory/temp_memory.json +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/neuro_simulator/agent/memory_prompt.txt +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/neuro_simulator/agent/neuro_prompt.txt +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/neuro_simulator/agent/tools/__init__.py +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/neuro_simulator/agent/tools/add_temp_memory.py +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/neuro_simulator/agent/tools/add_to_core_memory_block.py +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/neuro_simulator/agent/tools/base.py +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/neuro_simulator/agent/tools/create_core_memory_block.py +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/neuro_simulator/agent/tools/delete_core_memory_block.py +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/neuro_simulator/agent/tools/get_core_memory_block.py +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/neuro_simulator/agent/tools/get_core_memory_blocks.py +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/neuro_simulator/agent/tools/manager.py +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/neuro_simulator/agent/tools/model_spin.py +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/neuro_simulator/agent/tools/model_zoom.py +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/neuro_simulator/agent/tools/remove_from_core_memory_block.py +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/neuro_simulator/agent/tools/speak.py +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/neuro_simulator/agent/tools/update_core_memory_block.py +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/neuro_simulator/api/__init__.py +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/neuro_simulator/api/system.py +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/neuro_simulator/assets/neuro_start.mp4 +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/neuro_simulator/chatbot/__init__.py +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/neuro_simulator/chatbot/core.py +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/neuro_simulator/chatbot/llm.py +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/neuro_simulator/chatbot/memory/__init__.py +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/neuro_simulator/chatbot/memory/core_memory.json +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/neuro_simulator/chatbot/memory/init_memory.json +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/neuro_simulator/chatbot/memory/manager.py +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/neuro_simulator/chatbot/memory/temp_memory.json +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/neuro_simulator/chatbot/nickname_gen/__init__.py +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/neuro_simulator/chatbot/nickname_gen/data/adjectives.txt +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/neuro_simulator/chatbot/nickname_gen/data/nouns.txt +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/neuro_simulator/chatbot/nickname_gen/data/special_users.txt +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/neuro_simulator/chatbot/nickname_gen/generator.py +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/neuro_simulator/chatbot/prompts/__init__.py +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/neuro_simulator/chatbot/prompts/chatbot_prompt.txt +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/neuro_simulator/chatbot/prompts/memory_prompt.txt +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/neuro_simulator/chatbot/tools/__init__.py +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/neuro_simulator/chatbot/tools/add_temp_memory.py +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/neuro_simulator/chatbot/tools/base.py +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/neuro_simulator/chatbot/tools/manager.py +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/neuro_simulator/chatbot/tools/post_chat_message.py +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/neuro_simulator/cli.py +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/neuro_simulator/core/__init__.py +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/neuro_simulator/core/agent_factory.py +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/neuro_simulator/core/agent_interface.py +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/neuro_simulator/core/config.py +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/neuro_simulator/core/path_manager.py +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/neuro_simulator/services/__init__.py +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/neuro_simulator/services/audio.py +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/neuro_simulator/services/builtin.py +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/neuro_simulator/services/stream.py +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/neuro_simulator/utils/__init__.py +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/neuro_simulator/utils/logging.py +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/neuro_simulator/utils/process.py +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/neuro_simulator/utils/queue.py +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/neuro_simulator/utils/state.py +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/neuro_simulator/utils/websocket.py +0 -0
- {neuro_simulator-0.6.0 → neuro_simulator-0.6.2}/server/requirements.txt +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: neuro_simulator
|
3
|
-
Version: 0.6.
|
3
|
+
Version: 0.6.2
|
4
4
|
Summary: Neuro Simulator Server
|
5
5
|
Project-URL: Homepage, https://github.com/Moha-Master/neuro-simulator
|
6
6
|
Project-URL: Repository, https://github.com/Moha-Master/neuro-simulator
|
@@ -41,14 +41,14 @@ Description-Content-Type: text/markdown
|
|
41
41
|
|
42
42
|
*本临时README和所有代码均由AI生成*
|
43
43
|
|
44
|
-
Neuro Simulator 是一个模拟 Neuro-sama
|
45
|
-
|
46
|
-
它能生成实时的虚拟聊天内容,并通过 TTS 合成语音,提供沉浸式的 Twitch vedal987
|
44
|
+
Neuro Simulator 是一个模拟 Neuro-sama 直播的项目。
|
45
|
+
它通过使用自带的有记忆 Agent,~~也可调用 Letta(一个为 LLM 添加自主记忆功能的项目)~~,以及相同构造的 Chatbot Agent 作为虚拟观众,模拟一场 Neuro-sama 的 Just Chatting 直播。
|
46
|
+
它能生成实时的虚拟聊天内容,并通过 TTS 合成语音,提供沉浸式的 Twitch vedal987 频道观看体验。
|
47
47
|
|
48
48
|
## 特性
|
49
49
|
|
50
|
-
|
51
|
-
后续有低成本低性能方法实现 Evil 音色模仿的时候,可能加入 Evil
|
50
|
+
和其他类似的 AI Vtuber 项目不同,本项目旨在尽可能模拟 Neuro-sama 于 Twitch 上的 Tuesday Stream,因此在 Vtuber 部分不会有太多的自定义部分,也不会考虑引入 Neuro/Evil 以外的 Live2D。
|
51
|
+
后续有低成本低性能方法实现 Evil 音色模仿的时候,可能加入 Evil Neuro。
|
52
52
|
|
53
53
|
### 预览
|
54
54
|
|
@@ -60,44 +60,44 @@ Neuro Simulator 是一个模拟 Neuro-sama 直播的项目
|
|
60
60
|
|
61
61
|
### 核心亮点
|
62
62
|
|
63
|
-
-
|
64
|
-
- **配置热重载**:通过 Web
|
65
|
-
-
|
66
|
-
- **Agent 记忆管理**:内建 Agent 支持多种记忆类型(初始化记忆、核心记忆、临时记忆、上下文)
|
63
|
+
- **多客户端支持**:支持多个客户端连接,实时广播内容。
|
64
|
+
- **配置热重载**:通过 Web 控制面板实时修改和热重载配置。
|
65
|
+
- ~~**双 Agent 模式**:支持 Letta Agent 和内建 Agent,提供更多自定义选项~~ 对 Letta Agent 的支持暂时下线,后续有缘再见。
|
67
66
|
|
68
67
|
## 快速开始
|
69
68
|
|
70
|
-
1. **准备外部服务**:确保你拥有必要的 API 密钥,包括 LLM(Gemini/OpenAI)和 Azure TTS
|
71
|
-
2.
|
69
|
+
1. **准备外部服务**:确保你拥有必要的 API 密钥,包括 LLM(Gemini/OpenAI)和 Azure TTS;~~如果使用 Letta,也请注册好相关的 API 。~~
|
70
|
+
2. **安装服务端**:已上传至 PyPi 作为可用 pip 安装的软件包,你可以用任何一个 pip 安装到全局或 venv 中。
|
72
71
|
```bash
|
73
72
|
pip install neuro-simulator
|
74
73
|
```
|
74
|
+
推荐使用 pipx,可以在不更改系统 Python 依赖的情况下直接安装为全局软件。
|
75
|
+
|
75
76
|
3. **运行服务端**:
|
76
77
|
```bash
|
77
78
|
neuro
|
78
79
|
```
|
79
|
-
|
80
|
-
- 不指定 `--dir` 则自动创建和默认使用 `~/.config/neuro-simulator/`
|
81
|
-
-
|
80
|
+
现在无需手动填写 `config.yaml`,程序在启动时会自动创建一份包含默认设置的配置文件,只需在管理面板中填写和为 Agent 分配 API 服务商即可。
|
81
|
+
- 不指定 `--dir, -D` 则自动创建和默认使用 `~/.config/neuro-simulator/` 作为工作目录。
|
82
|
+
- 程序会在工作目录下自动生成文件夹结构,拷贝需要的文件到目录内,保持程序包本体只读。
|
82
83
|
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
```
|
84
|
+
程序启动后,如果工作正常,会默认在 `http://127.0.0.1:8000` 提供对外服务,你可以在设置中修改这个端口。
|
85
|
+
|
86
|
+
4. **打开管理面板**:现在程序已经内置管理面板,直接在浏览器中打开 `http://127.0.0.1:8000/dashboard/` 即可,内置面板会自动连接到服务端。
|
87
|
+
|
88
|
+
**配置流程**:
|
89
|
+
1. 在管理面板中打开“配置”页面。
|
90
|
+
2. 在“LLM服务商”中添加一个以上的选项。
|
91
|
+
3. 在“TTS服务商”中添加一个以上的 Azure TTS 服务。
|
92
|
+
4. 在“Neuro”中分配一个 LLM 服务商和一个 TTS 服务商。
|
93
|
+
5. 在“Chatbot”中分配一个 LLM 服务商。
|
94
|
+
|
95
|
+
5. **打开客户端**:现在程序已经内置客户端,在浏览器中访问 `<http协议>://<服务端地址>/` 即可。
|
96
|
+
但是这种方式下自动从哔哩哔哩获取最近回放的功能似乎不工作,需要对哔哩哔哩 API 进行反代。如果你安装了 nodejs,则可以使用 npm 运行开发服务器的方式使用客户端。
|
97
97
|
|
98
98
|
更多更复杂或者更简单的使用方式,请参见三个部分的详细文档
|
99
99
|
|
100
|
-
##
|
100
|
+
## 项目结构(稍微过时,待更新)
|
101
101
|
|
102
102
|
```
|
103
103
|
Neuro-Simulator/
|
@@ -117,7 +117,6 @@ Neuro-Simulator/
|
|
117
117
|
|
118
118
|
- [服务端 README](server/README.md)
|
119
119
|
- [客户端 README](client/README.md)
|
120
|
-
- [控制面板 README](dashboard_web/README.md)
|
121
120
|
|
122
121
|
## 开发计划和已实现功能
|
123
122
|
|
@@ -141,7 +140,7 @@ Neuro-Simulator/
|
|
141
140
|
- [ ] 模块化热插拔工具
|
142
141
|
- [ ] 连接到 MCP 服务器
|
143
142
|
- [ ] 兼容 Offical [Neuro SDK](https://github.com/VedalAI/neuro-sdk)
|
144
|
-
- [ ]
|
143
|
+
- [ ] 拉起 Evil Agent 并进行对话
|
145
144
|
- [ ] Evil Agent 模块,~~卖掉了~~ 待 Neuro Agent 完善、有低成本低性能方法实现 Evil 音色模仿的时候加入
|
146
145
|
- [ ] 对 Neuroverse 更多成员的 AI Agent 复现,进而允许 Neuro Agent 向其发送 DM(语音聊天可能不太现实)
|
147
146
|
- [x] Chatbot 模块
|
@@ -150,8 +149,8 @@ Neuro-Simulator/
|
|
150
149
|
- [x] prompt 编辑
|
151
150
|
- [x] 调用 Gemini 和 OpenAI API 格式的LLM
|
152
151
|
- [x] 基于 Neuro Agent 的上一句内容而做出 Reaction
|
153
|
-
- [ ] ~~在 prompt 中包含直播标题等更多信息~~
|
154
|
-
- [x] ~~实现更长的上下文~~
|
152
|
+
- [ ] ~~在 prompt 中包含直播标题等更多信息~~ 将在更强大的 Chatbot Agent 中实现
|
153
|
+
- [x] ~~实现更长的上下文~~ 将在更强大的 Chatbot Agent 中实现
|
155
154
|
- [x] Chatbot Agent
|
156
155
|
- [x] 更好的用户名生成逻辑
|
157
156
|
- [x] 更长的上下文,包括自身输出和 Neuro Agent 内容
|
@@ -171,7 +170,7 @@ Neuro-Simulator/
|
|
171
170
|
- [x] TTS 合成和推送
|
172
171
|
- [x] Azure TTS
|
173
172
|
- [ ] 待定 TTS
|
174
|
-
- [
|
173
|
+
- [X] 剔除 Emoji 等特殊字符
|
175
174
|
- [x] 进行直播和直播环节
|
176
175
|
- [x] Just Chatting 单人直播
|
177
176
|
- [x] Neuro Stream
|
@@ -191,8 +190,8 @@ Neuro-Simulator/
|
|
191
190
|
- [x] 直播标题和标签等信息
|
192
191
|
- [ ] 在非直播的空闲时间自动获取真实世界中 Neuro 的近期直播内容,更新完善记忆内容(不是微调训练)
|
193
192
|
- [ ] 对 Ollama 等本地 LLM 的优化
|
194
|
-
- [
|
195
|
-
- [
|
193
|
+
- [x] 服务端托管管理面板
|
194
|
+
- [x] Web 控制面板
|
196
195
|
- [ ] 使用 PyInquiry 的命令行面板
|
197
196
|
- 客户端
|
198
197
|
- [ ] 仅包含直播区域的客户端,适用于希望使用 OBS 或其他软件推流画面的用户
|
@@ -237,6 +236,7 @@ Neuro-Simulator/
|
|
237
236
|
- [ ] 真实的主播首页竖屏模式界面(目前沿用针对竖屏优化过的横屏样式)
|
238
237
|
- [ ] 下滑的更多主播信息
|
239
238
|
- [ ] 其他次级页面
|
239
|
+
- [x] 服务端托管客户端
|
240
240
|
- [ ] 更多客户端(若实现原生客户端则弃用 tauri)
|
241
241
|
- [x] 可托管的 Web 静态页面
|
242
242
|
- [x] Windows 客户端
|
@@ -260,7 +260,6 @@ Neuro-Simulator/
|
|
260
260
|
- [x] 对话方式展现
|
261
261
|
- [x] 上下文方式展现
|
262
262
|
- [x] 实时更新
|
263
|
-
- [x] 更好的界面
|
264
263
|
- [ ] 可视化展现 Agent 的详细执行流程
|
265
264
|
- [x] 实时日志查看
|
266
265
|
- [ ] 按照等级进行日志筛选
|
@@ -270,7 +269,6 @@ Neuro-Simulator/
|
|
270
269
|
- [ ] 工具管理取决于服务端开发进度
|
271
270
|
- 杂项,有一些可能永远不会实现,有一些可能很快就能完成
|
272
271
|
- [ ] 一键启动器和整合包,适用于不需要分开部署的情况,或者面向普通小白用户
|
273
|
-
- [ ] 把三个项目模块整合为一个
|
274
272
|
- [ ] 基于静态立绘制作的简易Live2D,能动就行
|
275
273
|
- [x] 目前不会考虑语音输入
|
276
274
|
|
@@ -4,14 +4,14 @@
|
|
4
4
|
|
5
5
|
*本临时README和所有代码均由AI生成*
|
6
6
|
|
7
|
-
Neuro Simulator 是一个模拟 Neuro-sama
|
8
|
-
|
9
|
-
它能生成实时的虚拟聊天内容,并通过 TTS 合成语音,提供沉浸式的 Twitch vedal987
|
7
|
+
Neuro Simulator 是一个模拟 Neuro-sama 直播的项目。
|
8
|
+
它通过使用自带的有记忆 Agent,~~也可调用 Letta(一个为 LLM 添加自主记忆功能的项目)~~,以及相同构造的 Chatbot Agent 作为虚拟观众,模拟一场 Neuro-sama 的 Just Chatting 直播。
|
9
|
+
它能生成实时的虚拟聊天内容,并通过 TTS 合成语音,提供沉浸式的 Twitch vedal987 频道观看体验。
|
10
10
|
|
11
11
|
## 特性
|
12
12
|
|
13
|
-
|
14
|
-
后续有低成本低性能方法实现 Evil 音色模仿的时候,可能加入 Evil
|
13
|
+
和其他类似的 AI Vtuber 项目不同,本项目旨在尽可能模拟 Neuro-sama 于 Twitch 上的 Tuesday Stream,因此在 Vtuber 部分不会有太多的自定义部分,也不会考虑引入 Neuro/Evil 以外的 Live2D。
|
14
|
+
后续有低成本低性能方法实现 Evil 音色模仿的时候,可能加入 Evil Neuro。
|
15
15
|
|
16
16
|
### 预览
|
17
17
|
|
@@ -23,44 +23,44 @@ Neuro Simulator 是一个模拟 Neuro-sama 直播的项目
|
|
23
23
|
|
24
24
|
### 核心亮点
|
25
25
|
|
26
|
-
-
|
27
|
-
- **配置热重载**:通过 Web
|
28
|
-
-
|
29
|
-
- **Agent 记忆管理**:内建 Agent 支持多种记忆类型(初始化记忆、核心记忆、临时记忆、上下文)
|
26
|
+
- **多客户端支持**:支持多个客户端连接,实时广播内容。
|
27
|
+
- **配置热重载**:通过 Web 控制面板实时修改和热重载配置。
|
28
|
+
- ~~**双 Agent 模式**:支持 Letta Agent 和内建 Agent,提供更多自定义选项~~ 对 Letta Agent 的支持暂时下线,后续有缘再见。
|
30
29
|
|
31
30
|
## 快速开始
|
32
31
|
|
33
|
-
1. **准备外部服务**:确保你拥有必要的 API 密钥,包括 LLM(Gemini/OpenAI)和 Azure TTS
|
34
|
-
2.
|
32
|
+
1. **准备外部服务**:确保你拥有必要的 API 密钥,包括 LLM(Gemini/OpenAI)和 Azure TTS;~~如果使用 Letta,也请注册好相关的 API 。~~
|
33
|
+
2. **安装服务端**:已上传至 PyPi 作为可用 pip 安装的软件包,你可以用任何一个 pip 安装到全局或 venv 中。
|
35
34
|
```bash
|
36
35
|
pip install neuro-simulator
|
37
36
|
```
|
37
|
+
推荐使用 pipx,可以在不更改系统 Python 依赖的情况下直接安装为全局软件。
|
38
|
+
|
38
39
|
3. **运行服务端**:
|
39
40
|
```bash
|
40
41
|
neuro
|
41
42
|
```
|
42
|
-
|
43
|
-
- 不指定 `--dir` 则自动创建和默认使用 `~/.config/neuro-simulator/`
|
44
|
-
-
|
43
|
+
现在无需手动填写 `config.yaml`,程序在启动时会自动创建一份包含默认设置的配置文件,只需在管理面板中填写和为 Agent 分配 API 服务商即可。
|
44
|
+
- 不指定 `--dir, -D` 则自动创建和默认使用 `~/.config/neuro-simulator/` 作为工作目录。
|
45
|
+
- 程序会在工作目录下自动生成文件夹结构,拷贝需要的文件到目录内,保持程序包本体只读。
|
45
46
|
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
```
|
47
|
+
程序启动后,如果工作正常,会默认在 `http://127.0.0.1:8000` 提供对外服务,你可以在设置中修改这个端口。
|
48
|
+
|
49
|
+
4. **打开管理面板**:现在程序已经内置管理面板,直接在浏览器中打开 `http://127.0.0.1:8000/dashboard/` 即可,内置面板会自动连接到服务端。
|
50
|
+
|
51
|
+
**配置流程**:
|
52
|
+
1. 在管理面板中打开“配置”页面。
|
53
|
+
2. 在“LLM服务商”中添加一个以上的选项。
|
54
|
+
3. 在“TTS服务商”中添加一个以上的 Azure TTS 服务。
|
55
|
+
4. 在“Neuro”中分配一个 LLM 服务商和一个 TTS 服务商。
|
56
|
+
5. 在“Chatbot”中分配一个 LLM 服务商。
|
57
|
+
|
58
|
+
5. **打开客户端**:现在程序已经内置客户端,在浏览器中访问 `<http协议>://<服务端地址>/` 即可。
|
59
|
+
但是这种方式下自动从哔哩哔哩获取最近回放的功能似乎不工作,需要对哔哩哔哩 API 进行反代。如果你安装了 nodejs,则可以使用 npm 运行开发服务器的方式使用客户端。
|
60
60
|
|
61
61
|
更多更复杂或者更简单的使用方式,请参见三个部分的详细文档
|
62
62
|
|
63
|
-
##
|
63
|
+
## 项目结构(稍微过时,待更新)
|
64
64
|
|
65
65
|
```
|
66
66
|
Neuro-Simulator/
|
@@ -80,7 +80,6 @@ Neuro-Simulator/
|
|
80
80
|
|
81
81
|
- [服务端 README](server/README.md)
|
82
82
|
- [客户端 README](client/README.md)
|
83
|
-
- [控制面板 README](dashboard_web/README.md)
|
84
83
|
|
85
84
|
## 开发计划和已实现功能
|
86
85
|
|
@@ -104,7 +103,7 @@ Neuro-Simulator/
|
|
104
103
|
- [ ] 模块化热插拔工具
|
105
104
|
- [ ] 连接到 MCP 服务器
|
106
105
|
- [ ] 兼容 Offical [Neuro SDK](https://github.com/VedalAI/neuro-sdk)
|
107
|
-
- [ ]
|
106
|
+
- [ ] 拉起 Evil Agent 并进行对话
|
108
107
|
- [ ] Evil Agent 模块,~~卖掉了~~ 待 Neuro Agent 完善、有低成本低性能方法实现 Evil 音色模仿的时候加入
|
109
108
|
- [ ] 对 Neuroverse 更多成员的 AI Agent 复现,进而允许 Neuro Agent 向其发送 DM(语音聊天可能不太现实)
|
110
109
|
- [x] Chatbot 模块
|
@@ -113,8 +112,8 @@ Neuro-Simulator/
|
|
113
112
|
- [x] prompt 编辑
|
114
113
|
- [x] 调用 Gemini 和 OpenAI API 格式的LLM
|
115
114
|
- [x] 基于 Neuro Agent 的上一句内容而做出 Reaction
|
116
|
-
- [ ] ~~在 prompt 中包含直播标题等更多信息~~
|
117
|
-
- [x] ~~实现更长的上下文~~
|
115
|
+
- [ ] ~~在 prompt 中包含直播标题等更多信息~~ 将在更强大的 Chatbot Agent 中实现
|
116
|
+
- [x] ~~实现更长的上下文~~ 将在更强大的 Chatbot Agent 中实现
|
118
117
|
- [x] Chatbot Agent
|
119
118
|
- [x] 更好的用户名生成逻辑
|
120
119
|
- [x] 更长的上下文,包括自身输出和 Neuro Agent 内容
|
@@ -134,7 +133,7 @@ Neuro-Simulator/
|
|
134
133
|
- [x] TTS 合成和推送
|
135
134
|
- [x] Azure TTS
|
136
135
|
- [ ] 待定 TTS
|
137
|
-
- [
|
136
|
+
- [X] 剔除 Emoji 等特殊字符
|
138
137
|
- [x] 进行直播和直播环节
|
139
138
|
- [x] Just Chatting 单人直播
|
140
139
|
- [x] Neuro Stream
|
@@ -154,8 +153,8 @@ Neuro-Simulator/
|
|
154
153
|
- [x] 直播标题和标签等信息
|
155
154
|
- [ ] 在非直播的空闲时间自动获取真实世界中 Neuro 的近期直播内容,更新完善记忆内容(不是微调训练)
|
156
155
|
- [ ] 对 Ollama 等本地 LLM 的优化
|
157
|
-
- [
|
158
|
-
- [
|
156
|
+
- [x] 服务端托管管理面板
|
157
|
+
- [x] Web 控制面板
|
159
158
|
- [ ] 使用 PyInquiry 的命令行面板
|
160
159
|
- 客户端
|
161
160
|
- [ ] 仅包含直播区域的客户端,适用于希望使用 OBS 或其他软件推流画面的用户
|
@@ -200,6 +199,7 @@ Neuro-Simulator/
|
|
200
199
|
- [ ] 真实的主播首页竖屏模式界面(目前沿用针对竖屏优化过的横屏样式)
|
201
200
|
- [ ] 下滑的更多主播信息
|
202
201
|
- [ ] 其他次级页面
|
202
|
+
- [x] 服务端托管客户端
|
203
203
|
- [ ] 更多客户端(若实现原生客户端则弃用 tauri)
|
204
204
|
- [x] 可托管的 Web 静态页面
|
205
205
|
- [x] Windows 客户端
|
@@ -223,7 +223,6 @@ Neuro-Simulator/
|
|
223
223
|
- [x] 对话方式展现
|
224
224
|
- [x] 上下文方式展现
|
225
225
|
- [x] 实时更新
|
226
|
-
- [x] 更好的界面
|
227
226
|
- [ ] 可视化展现 Agent 的详细执行流程
|
228
227
|
- [x] 实时日志查看
|
229
228
|
- [ ] 按照等级进行日志筛选
|
@@ -233,7 +232,6 @@ Neuro-Simulator/
|
|
233
232
|
- [ ] 工具管理取决于服务端开发进度
|
234
233
|
- 杂项,有一些可能永远不会实现,有一些可能很快就能完成
|
235
234
|
- [ ] 一键启动器和整合包,适用于不需要分开部署的情况,或者面向普通小白用户
|
236
|
-
- [ ] 把三个项目模块整合为一个
|
237
235
|
- [ ] 基于静态立绘制作的简易Live2D,能动就行
|
238
236
|
- [x] 目前不会考虑语音输入
|
239
237
|
|
@@ -34,9 +34,10 @@ frontend_twitch/
|
|
34
34
|
|
35
35
|
### 直接使用(无需二次开发)
|
36
36
|
|
37
|
-
|
37
|
+
若无需二次开发,可以直接在浏览器中打开 `<http协议>://<服务端地址>/` 使用服务端托管的客户端。
|
38
|
+
- 每一个客户端页面在浏览器中都是独立运行的,因此如果有多个观众,访问同一个地址即可。
|
38
39
|
|
39
|
-
|
40
|
+
如果硬盘空间太大/电脑里垃圾太少/想要自己独立托管客户端对外服务(这是好习惯,避免暴露服务端地址),可以直接从 `Releases` 下载和使用编译好的文件(仅支持Win/Linux/Web托管)
|
40
41
|
|
41
42
|
### 二次开发
|
42
43
|
|
@@ -117,9 +118,11 @@ npm run preview
|
|
117
118
|
|
118
119
|
设置参数使用浏览器的 `LocalStorage` 进行持久存储
|
119
120
|
|
121
|
+
当客户端由服务端托管时,会尝试自动连接到服务端,一般无需设置
|
122
|
+
|
120
123
|
## 哔哩哔哩直播回放
|
121
124
|
|
122
|
-
客户端现在支持从哔哩哔哩动态拉取最新的直播回放视频。由于B站的API
|
125
|
+
客户端现在支持从哔哩哔哩动态拉取最新的直播回放视频。由于B站的 API 相关限制,需要通过代理来访问。
|
123
126
|
|
124
127
|
- **Tauri 桌面端**: 客户端已内置反向代理,无需额外配置。
|
125
128
|
- **Vite 开发服务器**: 在 `vite.config.ts` 中已经配置了代理,开发时可直接使用。
|
@@ -146,4 +149,6 @@ location /bilibili-api/ {
|
|
146
149
|
- 确认 `WebSocket` 连接状态
|
147
150
|
- 验证配置设置是否正确
|
148
151
|
|
149
|
-
|
152
|
+
> 都是些 AI 生成的垃圾话,看看就好
|
153
|
+
|
154
|
+
*作为看这篇💩文档的奖励,可以直接使用我部署的 https://neuro.jiahui.cafe 连接到你的服务端,但是不保证始终能用,而且无法修改neuro_start.mp4*
|
@@ -1,12 +1,12 @@
|
|
1
1
|
{
|
2
2
|
"name": "Neuro Simulator Client",
|
3
|
-
"version": "0.
|
3
|
+
"version": "0.2.12",
|
4
4
|
"lockfileVersion": 3,
|
5
5
|
"requires": true,
|
6
6
|
"packages": {
|
7
7
|
"": {
|
8
8
|
"name": "Neuro Simulator Client",
|
9
|
-
"version": "0.
|
9
|
+
"version": "0.2.12",
|
10
10
|
"dependencies": {
|
11
11
|
"@fontsource/inter": "^5.2.6",
|
12
12
|
"@tauri-apps/api": "^2.6.0",
|
@@ -19,7 +19,7 @@ import { MuteButton } from '../ui/muteButton';
|
|
19
19
|
import { getLatestReplayVideo, buildBilibiliIframeUrl } from '../services/bilibiliService';
|
20
20
|
|
21
21
|
export class AppInitializer {
|
22
|
-
private wsClient: WebSocketClient;
|
22
|
+
private wsClient: WebSocketClient | null;
|
23
23
|
private audioPlayer: AudioPlayer;
|
24
24
|
private videoPlayer: VideoPlayer;
|
25
25
|
private neuroAvatar: NeuroAvatar;
|
@@ -48,21 +48,9 @@ export class AppInitializer {
|
|
48
48
|
|
49
49
|
this.currentSettings = SettingsModal.getSettings();
|
50
50
|
this.settingsModal = new SettingsModal((newSettings) => this.handleSettingsUpdate(newSettings));
|
51
|
-
|
52
|
-
const backendWsUrl = this.currentSettings.backendUrl
|
53
|
-
? `${this.currentSettings.backendUrl}/ws/stream`
|
54
|
-
: '';
|
55
51
|
|
56
|
-
|
57
|
-
|
58
|
-
this.wsClient = new WebSocketClient({
|
59
|
-
url: backendWsUrl,
|
60
|
-
autoReconnect: true,
|
61
|
-
maxReconnectAttempts: this.currentSettings.reconnectAttempts,
|
62
|
-
onMessage: universalMessageHandler,
|
63
|
-
onOpen: () => this.goOnline(),
|
64
|
-
onDisconnect: () => this.goOffline(),
|
65
|
-
});
|
52
|
+
// 初始化 wsClient 为 null,等待 start 方法中的探测逻辑
|
53
|
+
this.wsClient = null;
|
66
54
|
|
67
55
|
this.audioPlayer = new AudioPlayer();
|
68
56
|
this.videoPlayer = new VideoPlayer();
|
@@ -90,17 +78,14 @@ export class AppInitializer {
|
|
90
78
|
if (this.isStarted) return;
|
91
79
|
this.isStarted = true;
|
92
80
|
|
81
|
+
// First, probe for an integrated server
|
82
|
+
this.probeForIntegratedServer();
|
83
|
+
|
84
|
+
// Then start the layout manager and go offline
|
93
85
|
this.layoutManager.start();
|
94
|
-
this.goOffline(); // Start in offline state
|
95
|
-
|
86
|
+
this.goOffline(); // Start in offline state, connection status will update UI via goOnline
|
96
87
|
this.updateUiWithSettings();
|
97
|
-
|
98
|
-
if (this.wsClient.getUrl()) {
|
99
|
-
this.wsClient.connect();
|
100
|
-
} else {
|
101
|
-
console.warn("Backend URL is not configured. Opening settings modal.");
|
102
|
-
this.settingsModal.open();
|
103
|
-
}
|
88
|
+
// Connection logic is handled by probeForIntegratedServer
|
104
89
|
}
|
105
90
|
|
106
91
|
private setupSettingsModalTrigger(): void {
|
@@ -142,21 +127,106 @@ export class AppInitializer {
|
|
142
127
|
|
143
128
|
this.updateUiWithSettings();
|
144
129
|
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
130
|
+
if (this.wsClient) {
|
131
|
+
const newUrl = newSettings.backendUrl ? `${newSettings.backendUrl}/ws/stream` : '';
|
132
|
+
this.wsClient.updateOptions({
|
133
|
+
url: newUrl,
|
134
|
+
maxReconnectAttempts: newSettings.reconnectAttempts,
|
135
|
+
});
|
150
136
|
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
137
|
+
this.wsClient.disconnect();
|
138
|
+
|
139
|
+
setTimeout(() => {
|
140
|
+
if(this.wsClient && this.wsClient.getUrl()) {
|
141
|
+
this.wsClient.connect();
|
142
|
+
} else {
|
143
|
+
console.warn("Cannot connect: Backend URL is empty after update or WebSocket client not ready.");
|
144
|
+
}
|
145
|
+
}, 500);
|
146
|
+
} else {
|
147
|
+
console.warn("WebSocket client not initialized, cannot update settings.");
|
148
|
+
}
|
149
|
+
}
|
150
|
+
|
151
|
+
private initWebSocketClient(backendUrl: string): void {
|
152
|
+
const url = backendUrl ? `${backendUrl}/ws/stream` : '';
|
153
|
+
const universalMessageHandler = (message: WebSocketMessage) => this.handleWebSocketMessage(message);
|
154
|
+
|
155
|
+
// If wsClient already exists, update its configuration; otherwise, create a new instance
|
156
|
+
if (this.wsClient) {
|
157
|
+
this.wsClient.updateOptions({
|
158
|
+
url: url,
|
159
|
+
autoReconnect: true,
|
160
|
+
maxReconnectAttempts: this.currentSettings.reconnectAttempts,
|
161
|
+
onMessage: universalMessageHandler,
|
162
|
+
onOpen: () => this.goOnline(),
|
163
|
+
onDisconnect: () => this.goOffline(),
|
164
|
+
});
|
165
|
+
// If the new URL is valid, disconnect the old connection and try the new one
|
166
|
+
if (url) {
|
167
|
+
this.wsClient.disconnect();
|
168
|
+
setTimeout(() => {
|
169
|
+
this.wsClient!.connect();
|
170
|
+
}, 500);
|
171
|
+
}
|
172
|
+
} else {
|
173
|
+
this.wsClient = new WebSocketClient({
|
174
|
+
url: url,
|
175
|
+
autoReconnect: true,
|
176
|
+
maxReconnectAttempts: this.currentSettings.reconnectAttempts,
|
177
|
+
onMessage: universalMessageHandler,
|
178
|
+
onOpen: () => this.goOnline(),
|
179
|
+
onDisconnect: () => this.goOffline(),
|
180
|
+
});
|
181
|
+
}
|
182
|
+
}
|
183
|
+
|
184
|
+
private async probeForIntegratedServer(): Promise<void> {
|
185
|
+
// First, load the currently stored settings
|
186
|
+
const storedSettings = SettingsModal.getSettings();
|
187
|
+
console.log("Probing for integrated server. Stored settings:", storedSettings);
|
188
|
+
|
189
|
+
// Try to connect to the local Server's health check endpoint
|
190
|
+
try {
|
191
|
+
// Construct the health check URL using the current page's origin
|
192
|
+
const healthUrl = new URL('/api/system/health', window.location.origin).toString();
|
193
|
+
console.log("Probing integrated server at:", healthUrl);
|
194
|
+
|
195
|
+
const response = await fetch(healthUrl);
|
196
|
+
|
197
|
+
if (response.ok) {
|
198
|
+
console.log("Integrated server detected via health check. Auto-connecting...");
|
199
|
+
// 1. Set to integrated mode, using the current origin
|
200
|
+
const integratedBackendUrl = window.location.origin;
|
201
|
+
// 2. Update the current settings' backendUrl
|
202
|
+
this.currentSettings = { ...this.currentSettings, backendUrl: integratedBackendUrl };
|
203
|
+
// 3. Save to localStorage for future use
|
204
|
+
localStorage.setItem('neuro_settings', JSON.stringify(this.currentSettings));
|
205
|
+
// 4. Initialize or update the WebSocket client
|
206
|
+
this.initWebSocketClient(integratedBackendUrl);
|
207
|
+
// 5. Try to connect if the client and URL are valid
|
208
|
+
if (this.wsClient && integratedBackendUrl) {
|
209
|
+
this.wsClient.connect();
|
210
|
+
}
|
211
|
+
return; // Success, exit
|
156
212
|
} else {
|
157
|
-
console.
|
213
|
+
console.log("Health check failed, not an integrated server. Status:", response.status);
|
158
214
|
}
|
159
|
-
}
|
215
|
+
} catch (error) {
|
216
|
+
console.log("Failed to probe for integrated server, assuming standalone mode.", error);
|
217
|
+
}
|
218
|
+
|
219
|
+
// If probing fails, fall back to using the stored settings
|
220
|
+
console.log("Falling back to stored backend URL:", storedSettings.backendUrl);
|
221
|
+
this.initWebSocketClient(storedSettings.backendUrl);
|
222
|
+
|
223
|
+
// Attempt to connect if the client and URL are valid
|
224
|
+
if (this.wsClient && storedSettings.backendUrl) {
|
225
|
+
this.wsClient.connect();
|
226
|
+
} else if (!storedSettings.backendUrl) {
|
227
|
+
console.warn("Backend URL is not configured via probe or stored settings. Opening settings modal.");
|
228
|
+
this.settingsModal.open();
|
229
|
+
}
|
160
230
|
}
|
161
231
|
|
162
232
|
private updateUiWithSettings(): void {
|
@@ -366,7 +436,11 @@ export class AppInitializer {
|
|
366
436
|
username: this.currentSettings.username,
|
367
437
|
...payload
|
368
438
|
};
|
369
|
-
this.wsClient
|
439
|
+
if (this.wsClient) {
|
440
|
+
this.wsClient.send(message);
|
441
|
+
} else {
|
442
|
+
console.warn("Cannot send message: WebSocket client is not initialized.");
|
443
|
+
}
|
370
444
|
}
|
371
445
|
|
372
446
|
private showStreamContent(): void {
|
@@ -1,10 +1,10 @@
|
|
1
1
|
[package]
|
2
2
|
name = "neuro-simulator"
|
3
|
-
version = "0.
|
3
|
+
version = "0.2.11"
|
4
4
|
description = "Neuro Simulator Tauri Client"
|
5
|
-
authors = ["
|
6
|
-
license = ""
|
7
|
-
repository = ""
|
5
|
+
authors = ["Moha-Master"]
|
6
|
+
license = "MIT"
|
7
|
+
repository = "https://github.com/Moha-Master/Neuro-Simulator"
|
8
8
|
edition = "2021"
|
9
9
|
[lib]
|
10
10
|
name = "neuro_lib"
|
@@ -1,12 +1,12 @@
|
|
1
1
|
{
|
2
2
|
"name": "neuro-simulator-dashboard",
|
3
|
-
"version": "0.6.
|
3
|
+
"version": "0.6.2",
|
4
4
|
"lockfileVersion": 3,
|
5
5
|
"requires": true,
|
6
6
|
"packages": {
|
7
7
|
"": {
|
8
8
|
"name": "neuro-simulator-dashboard",
|
9
|
-
"version": "0.6.
|
9
|
+
"version": "0.6.2",
|
10
10
|
"dependencies": {
|
11
11
|
"@mdi/font": "^7.4.47",
|
12
12
|
"pinia": "^3.0.3",
|
@@ -35,3 +35,17 @@ class CustomBuildHook(BuildHookInterface):
|
|
35
35
|
stderr.write("\n### npm run build\n")
|
36
36
|
subprocess.run([npm, "run", "build"], check=True, cwd=dashboard_dir)
|
37
37
|
|
38
|
+
stderr.write("\n>>> Building client frontend\n")
|
39
|
+
|
40
|
+
client_dir = os.path.join(self.root, 'client')
|
41
|
+
if not os.path.isdir(client_dir):
|
42
|
+
stderr.write(f">>> Client directory not found at {client_dir}\n")
|
43
|
+
# Note: This does not raise an error to allow building server-only in some scenarios
|
44
|
+
return
|
45
|
+
|
46
|
+
stderr.write("### npm install\n")
|
47
|
+
subprocess.run([npm, "install"], check=True, cwd=client_dir)
|
48
|
+
|
49
|
+
stderr.write("\n### npm run build\n")
|
50
|
+
subprocess.run([npm, "run", "build"], check=True, cwd=client_dir)
|
51
|
+
|