Giter VIP home page Giter VIP logo

muvtuber's Introduction

muvtuber

README in English

Makes your AI vtuber.

让 AI 成为虚拟主播:看懂弹幕,妙语连珠,悲欢形于色,以一种简单的实现

obs

[TOC]

项目构成

muvtuber-impl

服务 说明 基于
blivechat 获取直播间弹幕消息。 xfgryujk/blivechat
Live2dView 前端:显示 Live2D 模型 guansss/pixi-live2d-display
Live2dDriver 驱动前端 Live2D 模型动作表情 -
ChatGPTChatbot 基于 ChatGPT 的优质聊天机器人 acheong08/ChatGPT
MusharingChatbot 基于 ChatterBot 的简单聊天机 RaSan147/ChatterBot_update
musharing-team/chatbot_api
Emotext 中文文本情感分析 cdfmlr/murecom-verse-1
externalsayer 调用公开的 API (external API)进行 TTS 文本语音合成。 Azure: TTS
audioview 基于 Web 的音频播放。用于从 docker 中输出音频到 OBS -
muvtuberdriver 组装各模块,驱动整个流程 -

非服务模块:

模块 说明
muvtuber-proto proto 定义
sayerapigo Go 语言的 Sayer (TTS) 接口服务端+客户端框架
chatbotapipy Python 语言的 Chatbot API 服务端框架

快速开始

v0.3.0 版本已实现了完全 Docker 化,所以应该支持任意常用操作系统了。现在只需要几个命令即可启动整个项目:

  1. 安装 Docker 以及 Docker Compose。

  2. 拉取代码:

# 拉取代码
git clone --recursive https://github.com/cdfmlr/muvtuber.git
cd muvtuber

⚠️ 由于使用了 git 子模块,一定要递归拉取。不能下载 zip,或不带 --recursive 参数的 clone。

🚧 默认的 main 分支是开发中的最新版本,不保证能运行。请使用打了 tag 个版本:点这里

  1. 修改配置:(详见 配置详解
vim docker-compose.yml
# 按照你的实际情况修改 HTTP_PROXY、HTTPS_PROXY、API_URL 的配置

vim configs/externalsayer/config.yaml
# 配置 TTS 文本语音合成: 
# 配置 azure 语音合成服务的 key、region 和 role (SSML 模板)

vim configs/muvtuberdriver/config.yaml
# 主程序的配置:
#  你的房间号(roomid)、ChatGPT 的 apiKey 以及 initialprompt.
#  口型同步的策略:lipsyncstrategy
# 各种 server 的地址都不用改,已经配合 docker-compose.yml 设好了.
  1. 启动服务:
docker compose up -d      # 自动下载或构建、启动各种服务

# docker compose ps       # 查看服务状态
# docker compose logs -f  # 查看日志(Ctrl+C 停止)
  • 可以直接从 Docker Hub 拉取镜像啦 🎉
    • 在 v0.3.5 中,加入了 CI 机制。所有 Docker 镜像均由 GitHub Actions 自动构建,并推送到 Docker Hub (所有镜像都在 murchinroom 名下)。
    • 镜像较多,请保持网络通畅。在较差的网络情况下测试(校园网直连 Docker Hub),需要约 252.4s 拉取全部镜像。
  • 亦可在本地自行构建各种镜像:
    • 请确保网络环境能访问 Docker Hub 和 GitHub.
    • 在**大陆或其他网络环境受限的地区,请使用 Dockerfile。其他地区推荐使用 gh.Dockerfile
  • 请保证至少有 1 GB 可用硬盘空间。
  • 如果遇到问题,可以先看一看 Troubleshooting
  1. 配置 OBS,开始直播:(下面三个都是新建浏览器源)

配置详解

ChatGPT 配置

你可以为 ChatGPTChatbot 配置替代的 Chat API 和 HTTP 代理。其关系如下:

ChatGPTChatbot <--> HTTP Proxy <--> Chat API
                    默认: 无        默认: api.openai.com

Use an alternative Chat API

ChatGPTChatbot 默认使用 OpenAI 的 Chat 接口: https://api.openai.com/v1/chat/completions接口文档

但也支持使用任何类似 ChatGPT的 API 接口。所以你可以使用一些本地的模型(例如 GPT4All)或者一些代理 OpenAI 的服务。

如果要使用这种替代接口,请修改 docker-compose.yml

 chatgpt_chatbot:
   ...
   environment:
     - API_URL=https://api.openai.com/v1/chat/completions

API_URL 替换为你的 API 端点。

Use a HTTP Proxy

If you can access ChatGPT (api.openai.com) directly, please remove all lines about HTTP(S)_PROXY in the docker-compose.yml and skip following steps.

如果你的网络环境不好,直连 ChatGPT 或你配置的替代 Chat API 服务有困难,就需要做一些代理配置。

预先条件:你拥有一个可以让网络变好的魔法道具(行业黑话:代理)。

在你的代理设置中(可能还藏的比较深,如高级设置中),可以找到类似「本机 http 监听端口」之类的值,下面假设这个值为 http://0.0.0.0:1000

接下来根据你的实际情况:

  1. 你使用 Docker Desktop:

    • 在 Docker Desktop 里 Settings -> Resources -> Proxies 设置代理地址(宿主机以太网下的本地 IPv4 地址+代理软件设置的端口)
    • doccker-compose.yml 文件中的有关 proxy 的内容注释掉或删除。

    (这个方法在 Windows 和 macOS 下验证可用,详见 #51#30 的讨论,感谢 @RAINighty@JackChow6 的帮助。)

  2. 你使用 Docker 服务器环境或 Colima 之类的其他容器运行环境:

    • docker-compose.yml 中:
      chatgpt_chatbot:
        ...
        environment:
          - HTTP_PROXY=http://host.docker.internal:1000
          - HTTPS_PROXY=http://host.docker.internal:1000

    请按照自己的实际情况,替换掉端口号 1000。也有可能需要将 host.docker.internal 修改为容器眼里宿主机的 IP,具体要看你的运行时是否为你提供了一个容器访问宿主的域名或地址。如果你发现操作中有困难无法解决,建议尝试 Docker Desktop。

externalsayer 配置详解

这里将配置使用免费、高质量的 Azure 的 TTS 服务。(目前也只支持这一种。) 该服务的介绍: https://azure.microsoft.com/zh-cn/products/cognitive-services/text-to-speech/

这一块的配置在 configs/externalsayer/config.yaml 中:

SrvAddr: "localhost:50010"
EnabledSayer: "azure"
AzureSayer:
  SpeechKey: "your-key"
  SpeechRegion: "eastus"
  FormatMicrosoft: "audio-16khz-32kbitrate-mono-mp3"
  FormatMimeSubtype: "mp3"
  Roles:
    "default": '<speak version="1.0" xml:lang="zh-CN"><voice name="zh-CN-XiaoxiaoNeural">{{.}}</voice></speak>'

你需要更改:SpeechKey, SpeechRegion 以及 Roles。

  • SpeechKey, SpeechRegion: 你在 Azure 上申请的 TTS 服务的 key 和 region。
  • Roles:<voice name="xx-XX-Xxx">这里的 name 应该填写 voice,即“发音人”的名字。具体的列表可以通过以下命令获取:
curl https://eastus.tts.speech.microsoft.com/cognitiveservices/voices/list --header 'Ocp-Apim-Subscription-Key: xxx'

我把请求的结果格式化放到了这个文件里,方便查找:externalsayer/azuresayer/voices /voices-list.json

你可以在网页上的「Speech Studio」里试听、选择声音。然后在文件里找到对应 voice 的 "ShortName": "xx-XX-Xxx" 填写到 <voice name="xx-XX-Xxx">

🌟 更推荐的一种方式是,在「Speech Studio」中随便写点内容,选择声音让它说,并微调各种参数,满意之后,把 SSML 导出出来,把内容替换为 {{.}},去掉换行(我写了个脚本帮助做这件事,可以点这里找到)写到配置里。

口型同步

有三种 Live2D 口型同步策略可选:

  • audio_analyze: 基于音频分析的口型同步。此法对 Live2D 模型的要求更少,更加通用,推荐。
  • keep_motion: 在说话期间反复播放预制 live2d 动作,以达到类似“说话”的效果。此法要求预先为模型制作一些“说话”的 motion。
  • none: 不进行口型同步。

在配置文件 configs/muvtuberdriver/config.yaml 中进行配置,从上述种策略中任选一个作为 sayer 下面的 lipsyncstrategy 的值:

sayer:
    ...
    lipsyncstrategy: audio_analyze

OBS 配置详解

给新手的 OBS 配置详解:

  • 虚拟形象(Live2DView):来源 > + > 浏览器 > 新建 > URL: http://localhost:9000/#/
    • 注意把「通过 OBS 控制音频」勾上哦,然后把那条声音关掉,不然有机会听到可爱捏鬼畜日语。
  • 弹幕框(blivechat):来源 > + > 浏览器 > 新建 > URL:
    • 先用浏览器打开 http://localhost:12450
    • 首页 > 房间号:设置为你的房间号 > 进入房间
    • 弹出的窗口 -> 拷贝地址
    • 粘贴到 OBS 的 URL
  • 主播说话的音频(audioview):
    • 来源 > + > 浏览器 > 新建 > URL
    • 填入 http://127.0.0.1:51082/?controller=ws://127.0.0.1:51081/
    • 建议把「通过 OBS 控制音频」勾上,方便按需调节音量。
  • 其他音频(BGM):来源 > + >音频输入采集 > 新建 > 设备:BlackHole 2ch
    • 要先安装一个虚拟声卡,这里以 mac 系统使用 BlackHole 为例。
    • 在开始直播前,控制中心 > 声音> 右边 AirPlay 图标 > 选 BlackHole。
    • 然后电脑输出的声音就会 -> BlackHole -> OBS。
  • B 站推流:设置(Preferences)> 直播 > 服务:选 Bilibili Live ...,推流码填「B 站首页 > 头像 > 推荐服务 > 直播中心 > 左侧“我的直播间”> 填好直播分类、房间标题 > 开始直播,然后会显示的串流密钥」

Troubleshooting

暂无。

配置开发环境

目前仍不支持用 docker 作为开发环境。需要在本地开发,然后 docker 构建部署。

-1. 本地开发环境:

$ uname -mrs
Darwin 22.3.0 arm64
# 目前 TTS 模块还依赖于 macOS,其他系统可能不行。
$ go version  
go version go1.20.1 darwin/arm64
$ python3 --version
Python 3.9.16  # blivechat
Python 3.10.10 # others
$ poetry --version
Poetry (version 1.4.0)
$ node --version
v18.14.2
$ pyenv --version
pyenv 2.3.14
$ pnpm --version
7.29.0

Node.js 和 Python 的包管理配置:

# 前端统一使用 pnpm (珍爱硬盘,远离 npm)
pnpm config set auto-install-peers true -g
# python统一使用 pyenv + poetry
poetry config virtualenvs.prefer-active-python true
poetry config virtualenvs.in-project true  # 只是个人的保守偏好
  1. 现在可用 git submodule 一次性拉取整个项目,无需手动 clone 各个模块了:
git clone --recursive https://github.com/cdfmlr/muvtuber.git

接下来编译运行各个模块,可以预先开 7 个终端页,然后:

  1. blivechat
cd blivechat

# 编译前端
cd frontend
pnpm install
pnpm run build
cd ..

# 运行服务
pyenv local 3.9.16
poetry install
poetry run python main.py
# 服务运行在 http://localhost:12450,会自动在默认浏览器打开
  1. Emotext
cd emotext

pyenv local 3.10.10
poetry install
poetry run python emotext/httpapi.py --port 9003
# emotext server: http://localhost:9003
  1. ChatGPTChatbot
cd chatgpt_chatbot

pyenv local 3.10.10
poetry install
poetry run python chatgpt
# ChatGPTChatbot gRPC server: localhost:50052
  1. MusharingChatbot
cd musharing_chatbot

pyenv local 3.10.10
poetry install
poetry run python -m spacy download en_core_web_sm  # 一个执行不到的依赖,但是不装跑不起来。
PYTHONPATH=$PYTHONPATH:. poetry run python musharing_chatbot
# MusharingChatbot gRPC server: localhost:50051
  1. Live2dDriver
#git clone https://github.com/cdfmlr/live2ddriver.git
cd live2ddriver

go run . -shizuku localhost:9004 -verbose
# live2d shizuku driver: localhost:9004
# websocket message forwarder: localhost:9001 # 前端会连这个

# 不开发该模块也可以 build 出来再运行
  1. Live2dView
#git clone https://github.com/cdfmlr/live2dview.git
cd live2dview

pnpm install
pnpm exec quasar dev
# 浏览器访问: 调试(戏)页: http://localhost:9000/#/debug
# 生产环境: OBS 添加浏览器源: http://localhost:9000/

# 如果不开发这个模块可以 build & serve:
pnpm exec quasar build
httpstatic -d dist/spa/ -l :9000  # 你的某种静态网页服务工具,如 python -m http.server,如果开发环境最好有宽松的 CROS。这里用的是 https://github.com/cdfmlr/tools/#httpstatic
  1. audioview
cd audioview

pnpm install
pnpm run dev
# pnpm run build
  1. externalsayer
cd externalsayer

go run . -h
  1. muvtuberdriver

muvtuberdriver 必须在前面所有服务正确启动后才能启动,否则会 panic 退出。

#git clone https://github.com/cdfmlr/muvtuberdriver.git
cd muvtuberdriver

go run . -c config.yaml
# chatgpt_access_token: 浏览器访问https://chat.openai.com/api/auth/session获取
# roomid 你的 b 站直播间 id,https://live.bilibili.com/000000?... 中的000000

# 不开发该模块也可以 build 出来再运行
  1. OBS
brew install obs
# 或:https://obsproject.com

# 启动 OBS,设置:
# - blivechat 的弹幕框:localhost:12450/...
# - Live2DView:localhost:9000
# - 音频(say)的输出:你使用的音频设备
# 【开始直播】

本地构建镜像

从 v0.3.5 开始,本项目各个服务模块均采用 GitHub Actions 自动完成镜像构建、推送,终端用户直接从 Docker Hub 拉取镜像即可。

如果出于开发或其他理由,需要手动构建镜像的话:

cd muvtuberdriver   # 或其他服务
docker build -t cdfmlr/muvtuber-muvtuberdriver:v0.0.12-alpha.0 .
  • ⚠️ The default Dockerfile is designed for Chinese mainland users. Please use gh.Dockerfile instead if you are in other regions.
  • 💥 构建 musharing_chatbot 镜像时如果出现 ProxyError,或者 Cannot connect to proxy: Name or service not known.,之类的网络代理问题,请参考 [#网络环境配置] 修改 musharing_chatbot/Dockerfile 中的代理设置。这个东西必须访问 GitHub,如果你的网络环境不允许直接访问 GitHub,可以使用代理。

然后在 docker-compose.yml 里将对应镜像修改成新构建镜像的 tag 即可。

部署

使用前文的 docker compose 方式部署。不再提供散装微服务的部署文档了。

FAQ

我(个人/商业/以及任意情况)可以使用这个项目嘛?

  • 可以。在 MIT 协议下开放源代码,没有任何限制。
    • Permissions:✅ Commercial use ✅ Modification ✅ Distribution ✅ Private use
    • Limitations:❌ Liability ❌ Warranty

在 Microsoft Windows 系统中可以运行嘛?

  • 可以。v0.3.0 完成了完全 Docker 化,只要宿主机能装 docker 就行:所有服务都跑在容器中,所有客户端都是浏览器(可以嵌入 OBS)。

作者寻求合作嘛?

  • ✅ 你要和我一起写代码(贡献)
  • ✅ 你要给我钱让我写我想写的东西(捐赠)
  • ❌ 你要给我钱让我写你想要的东西(外包)
    • 非常抱歉,我的时间精力和能力有限。

为何如此复杂?|| 这个项目的意义是什么?

  • Just for fun.

TODO

开放源代码

所有下属项目除非特别说明,一律在 MIT 协议下开放源代码。

欢迎任何有关 Issue 问题、PR 贡献以及讨论。

muvtuber's People

Contributors

cdfmlr avatar nicolapanegos avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

muvtuber's Issues

情感表情动作被“开口说话”覆盖

来自 live2ddriver + emotext 的「情感表情动作」会被紧随其后的来自 muvtuberdriver 的「开口说话」覆盖😭

muvtuber-live2ddriver-1  | 2023/04/19 10:03:12 INFO fwd msg: {"motion":"tap_body","expression":"f01"} -> http://localhost:51070 (chan 0x4000096420).
muvtuber-live2ddriver-1  | 2023/04/19 10:03:12 INFO fwd msg: {"motion":"flick_head"} -> http://localhost:51070 (chan 0x4000096420).

muvtuberdriver: reconnect to blivechat if lost ws.

Bug

观察到 muvtuberdriver 与 blivechat 的 WebSocket 链接偶尔会断开(大概开几个小时就会遇到,并且比较随机):

2023/03/12 19:09:25 [PrioritizedChatbot] Chat(B站V8大会员): 红红火火恍恍惚惚 => (ChatGPTChatbot): 这是一句有趣的诗句呢!它似乎表达了一种热闹而又恍惚的感觉,让人感觉既兴奋又有些迷糊。
2023/03/12 19:09:29 PriorityReduceFilter outputMaxPriorityOnes [Priority -> Highest]: &{Author:ChatGPTChatbot Content:这是一句有趣的诗句呢!它似乎表达了一种热闹而又恍惚的感觉,让人感觉既兴奋又有些迷糊。 Priority:2}
{ChatGPTChatbot 这是一句有趣的诗句呢!它似乎表达了一种热闹而又恍惚的感觉,让人感觉既兴奋又有些迷糊。 2}
2023/03/12 19:09:29 SendMessage: {"motion":"pinch_out"}
[GIN] 2023/03/12 - 19:09:29 | 200 |   52.153709ms |       127.0.0.1 | POST     "/driver"
2023/03/12 19:09:29 fwd msg: {"motion":"pinch_out"} -> http://localhost:9000 (chan 0x14000494360).
2023-03-12 19:09:33 WARNING [api.chat]: client=127.0.0.1 timed out
2023-03-12 19:09:38 INFO [api.chat]: client=127.0.0.1 disconnected, room=26949229
2023-03-12 19:09:38 INFO [services.chat]: room=26949229 removed client 127.0.0.1, 1 clients
2023-03-12 19:10:25 INFO [services.avatar]: Failed to fetch avatar: code=-401 非法访问 uid=19525734
2023-03-12 19:13:01 INFO [services.avatar]: Failed to fetch avatar: code=-401 非法访问 uid=19525734
2023-03-12 19:42:35 INFO [services.avatar]: Failed to fetch avatar: code=-401 非法访问 uid=11144280
2023-03-12 19:43:51 INFO [services.avatar]: Failed to fetch avatar: code=-401 非法访问 uid=11144280
2023-03-12 19:54:34 INFO [services.avatar]: Failed to fetch avatar: code=-401 非法访问 uid=346314896
2023-03-12 20:28:07 WARNING [blivedm]: room=26949229 unknown cmd=GUARD_HONOR_THOUSAND, command={'cmd': 'GUARD_HONOR_THOUSAND', 'data': {'add': [], 'del': [2051617240, 1501380958, 1484169431, 1398337493, 1084222017, 672353429, 672346917, 672342685, 672328094, 480680646, 401315430, 387636363, 226102317, 194484313, 8881297, 8739477, 1521415, 745493, 114866, 67141]}}

然后就完全卡住了啥输出都没了(主要就是 muvtuberdriver 死了),必须要重启一系列服务:blivechat, live2ddriver, muvtuberdriver, 以及 chatgpt_chatbot (cdfmlr/chatgpt_chatbot#3 解决后就不用了)。

Solution

muvtuberdriver 继续改池化的、无状态的连接(继续做 cdfmlr/muvtuberdriver#1 ):惰性建立与 blivechat 的连接,错误后重建。

muvtuberdriver PriorityReduceFilter panic: invalid memory address or nil pointer dereference

2023/04/10 14:32:31 INFO [PrioritizedChatbot] Chat(USER): "打call" => (ChatGPTChatbot): "哇哇哇,谢谢你给派蒙打call呢!派蒙非常感激你的支持和鼓励,有了你们的陪伴,派蒙才能够更加努力地做好直播,让大家开心和快乐!嘿嘿~"
2023/04/10 14:32:31 INFO [PrioritizedChatbot] Chat(USER): "妙啊"
2023/04/10 14:32:31 WARN [PrioritizedChatbot] *chatbot.ChatGPTChatbot.Chat(&{USER 妙啊 2}) failed: ChatGPTChatbot is cooling down (15s), try next chatbot
2023/04/10 14:32:31 INFO [PrioritizedChatbot] Chat(USER): "妙啊" => (MusharingChatbot): "what is teknolust"
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x10 pc=0x5dc2f8] 
goroutine 14 [running]:
main.(*PriorityReduceFilter).outputMaxPriorityOnes(0x4000382300, 0x4000393f68?)
	/app/filter.go:214 +0x4e8
main.(*PriorityReduceFilter).filter.func1()
	/app/filter.go:118 +0x9c
created by main.(*PriorityReduceFilter).filter
	/app/filter.go:108 +0xdc

  • PriorityReduceFilter 的 nil 判断还是不全。
  • 目测错误起源跟 MusharingChatbot 用 v1 的老接口输出不规范有关。

blivechat 接收弹幕失败

好像收到一些人(目前似乎除了我都会😭)的弹幕会发生:

muvtuber-blivechat-1          | 2023-05-01 07:54:02 ERROR [asyncio]: Task exception was never retrieved
muvtuber-blivechat-1          | future: <Task finished name='Task-2061' coro=<LiveMsgHandler.__on_danmaku() done, defined at /root/blivechat/services/chat.py:284> exception=JSONDecodeError('Extra data: line 1 column 47 (char 46)')>
muvtuber-blivechat-1          | Traceback (most recent call last):
muvtuber-blivechat-1          |   File "/root/blivechat/services/chat.py", line 286, in __on_danmaku
muvtuber-blivechat-1          |     avatar_url = await services.avatar.get_avatar_url(message.uid)
muvtuber-blivechat-1          |   File "/root/blivechat/services/avatar.py", line 41, in get_avatar_url
muvtuber-blivechat-1          |     avatar_url = await get_avatar_url_or_none(user_id)
muvtuber-blivechat-1          |   File "/root/blivechat/services/avatar.py", line 54, in get_avatar_url_or_none
muvtuber-blivechat-1          |     return await get_avatar_url_from_web(user_id)
muvtuber-blivechat-1          |   File "/root/blivechat/services/avatar.py", line 141, in _get_avatar_url_from_web_coroutine
muvtuber-blivechat-1          |     avatar_url = await _do_get_avatar_url_from_web(user_id)
muvtuber-blivechat-1          |   File "/root/blivechat/services/avatar.py", line 172, in _do_get_avatar_url_from_web
muvtuber-blivechat-1          |     data = await r.json()
muvtuber-blivechat-1          |   File "/usr/local/lib/python3.8/site-packages/aiohttp/client_reqrep.py", line 1113, in json
muvtuber-blivechat-1          |     return loads(stripped.decode(encoding))
muvtuber-blivechat-1          |   File "/usr/local/lib/python3.8/json/__init__.py", line 357, in loads
muvtuber-blivechat-1          |     return _default_decoder.decode(s)
muvtuber-blivechat-1          |   File "/usr/local/lib/python3.8/json/decoder.py", line 340, in decode
muvtuber-blivechat-1          |     raise JSONDecodeError("Extra data", s, end)
muvtuber-blivechat-1          | json.decoder.JSONDecodeError: Extra data: line 1 column 47 (char 46)

live2d motion flow question

Hi!
what is the signal flow for the lipsync and the others motion? i try to translate the redme.md but i cant see nothing about. The character does not currently play any action. Maybe this function is only vincolated by musharing_chatbot response insted of the azure response (i use chatgpt for response)?

live2ddriver

2023/05/30 19:48:17 INFO fwd msg: {"motion":"idle"} -> http://localhost:51070 (chan 0xc000486240).
2023/05/30 19:48:17 WARN may be a OpenMouth after emo-motion, ignore: {"motion":"flick_head"}
2023/05/30 19:48:17 INFO fwd msg: {} -> http://localhost:51070 (chan 0xc000486240).

fwd msg: {} -> http://localhost:51070 should not be empty right? should be {motion:flick_head}?
Who decides this string?

Some time i get flick_head but its not perfect synced and have delay.

2023/05/30 20:11:54 INFO fwd msg: {"motion":"flick_head"} -> http://localhost:51070 (chan 0xc000114de0).
2023/05/30 20:11:54 INFO fwd msg: {"motion":"flick_head"} -> http://localhost:51070 (chan 0xc000486240).
2023/05/30 20:12:04 INFO fwd msg: {"motion":"idle"} -> http://localhost:51070 (chan 0xc000114de0).
2023/05/30 20:12:04 INFO fwd msg: {"motion":"idle"} -> http://localhost:51070 (chan 0xc000486240).

another little problem is that if I enable ReadDm (from muvtuberdriver config file) it would seem that a motion request is not made, but only the chatgpt response

[muvtuberdriver] DeadlineExceeded

Hi!
I often encounter this error and I have to restart the container to get everything working again

muvtuberdriver-1     | 2023/06/24 17:44:18 INFO [chatbot] SessionClient Chat: got textIn: chatbotName=ChatGPTChatbot textin=misa...yan?
muvtuberdriver-1     | 2023/06/24 17:45:18 WARN [chatbot] ChatGPTChatbot Chat() failed. The SessionClient will be released if successive failures: serAddr=chatgpt_chatbot:50052 failures=2/3 err=Chat(addr=chatgpt_chatbot:50052) failed: rpc error: code = DeadlineExceeded desc = Deadline Exceeded
muvtuberdriver-1     | 2023/06/24 17:45:18 ERROR [PrioritizedChatbot] all Chatbots failed: Chat() failed. The SessionClient will be released if successive failures: serAddr=chatgpt_chatbot:50052 failures=2/3 err=Chat(addr=chatgpt_chatbot:50052) failed: rpc error: code = DeadlineExceeded desc = Deadline Exceeded, return nil
muvtuberdriver-1     | 2023/06/24 17:45:18 ERROR chatbot.Chat(&{user test 2}) failed: Chat() failed. The SessionClient will be released if successive failures: serAddr=chatgpt_chatbot:50052 failures=2/3 err=Chat(addr=chatgpt_chatbot:50052) failed: rpc error: code = DeadlineExceeded desc = Deadline Exceeded

Any Idea?

pnpm run build报错

D:\AI Vtuber\muvtuber\blivechat\frontend> pnpm -v
7.27.1

D:\AI Vtuber\muvtuber\blivechat\frontend> pnpm run build

[email protected] build D:\AI Vtuber\muvtuber\blivechat\frontend
vue-cli-service build

/ Building for production...Error: error:0308010C:digital envelope routines::unsupported
at new Hash (node:internal/crypto/hash:71:19)
at Object.createHash (node:crypto:133:10)
at module.exports (D:\AI Vtuber\muvtuber\blivechat\frontend\node_modules.pnpm\[email protected]\node_modules\webpack\lib\util\createHash.js:135:53)
at NormalModule._initBuildHash (D:\AI Vtuber\muvtuber\blivechat\frontend\node_modules.pnpm\[email protected]\node_modules\webpack\lib\NormalModule.js:417:16)
at handleParseError (D:\AI Vtuber\muvtuber\blivechat\frontend\node_modules.pnpm\[email protected]\node_modules\webpack\lib\NormalModule.js:471:10)
at D:\AI Vtuber\muvtuber\blivechat\frontend\node_modules.pnpm\[email protected]\node_modules\webpack\lib\NormalModule.js:503:5
at D:\AI Vtuber\muvtuber\blivechat\frontend\node_modules.pnpm\[email protected]\node_modules\webpack\lib\NormalModule.js:358:12
at D:\AI Vtuber\muvtuber\blivechat\frontend\node_modules.pnpm\[email protected]\node_modules\loader-runner\lib\LoaderRunner.js:373:3
at iterateNormalLoaders (D:\AI Vtuber\muvtuber\blivechat\frontend\node_modules.pnpm\[email protected]\node_modules\loader-runner\lib\LoaderRunner.js:214:10)
at iterateNormalLoaders (D:\AI Vtuber\muvtuber\blivechat\frontend\node_modules.pnpm\[email protected]\node_modules\loader-runner\lib\LoaderRunner.js:221:10)
at D:\AI Vtuber\muvtuber\blivechat\frontend\node_modules.pnpm\[email protected]\node_modules\loader-runner\lib\LoaderRunner.js:236:3
at runSyncOrAsync (D:\AI Vtuber\muvtuber\blivechat\frontend\node_modules.pnpm\[email protected]\node_modules\loader-runner\lib\LoaderRunner.js:130:11)
at iterateNormalLoaders (D:\AI Vtuber\muvtuber\blivechat\frontend\node_modules.pnpm\[email protected]\node_modules\loader-runner\lib\LoaderRunner.js:232:2)
at Array. (D:\AI Vtuber\muvtuber\blivechat\frontend\node_modules.pnpm\[email protected]\node_modules\loader-runner\lib\LoaderRunner.js:205:4)
at Storage.finished (D:\AI Vtuber\muvtuber\blivechat\frontend\node_modules.pnpm\[email protected]\node_modules\enhanced-resolve\lib\CachedInputFileSystem.js:55:16)
at D:\AI Vtuber\muvtuber\blivechat\frontend\node_modules.pnpm\[email protected]\node_modules\enhanced-resolve\lib\CachedInputFileSystem.js:91:9
D:\AI Vtuber\muvtuber\blivechat\frontend\node_modules.pnpm\[email protected]\node_modules\loader-runner\lib\LoaderRunner.js:114
throw e;
^

Error: error:0308010C:digital envelope routines::unsupported
at new Hash (node:internal/crypto/hash:71:19)
at Object.createHash (node:crypto:133:10)
at module.exports (D:\AI Vtuber\muvtuber\blivechat\frontend\node_modules.pnpm\[email protected]\node_modules\webpack\lib\util\createHash.js:135:53)
at NormalModule._initBuildHash (D:\AI Vtuber\muvtuber\blivechat\frontend\node_modules.pnpm\[email protected]\node_modules\webpack\lib\NormalModule.js:417:16)
at handleParseError (D:\AI Vtuber\muvtuber\blivechat\frontend\node_modules.pnpm\[email protected]\node_modules\webpack\lib\NormalModule.js:471:10)
at D:\AI Vtuber\muvtuber\blivechat\frontend\node_modules.pnpm\[email protected]\node_modules\webpack\lib\NormalModule.js:503:5
at D:\AI Vtuber\muvtuber\blivechat\frontend\node_modules.pnpm\[email protected]\node_modules\webpack\lib\NormalModule.js:358:12
at D:\AI Vtuber\muvtuber\blivechat\frontend\node_modules.pnpm\[email protected]\node_modules\loader-runner\lib\LoaderRunner.js:373:3
at iterateNormalLoaders (D:\AI Vtuber\muvtuber\blivechat\frontend\node_modules.pnpm\[email protected]\node_modules\loader-runner\lib\LoaderRunner.js:214:10)
at D:\AI Vtuber\muvtuber\blivechat\frontend\node_modules.pnpm\[email protected]\node_modules\loader-runner\lib\LoaderRunner.js:186:6
at context.callback (D:\AI Vtuber\muvtuber\blivechat\frontend\node_modules.pnpm\[email protected]\node_modules\loader-runner\lib\LoaderRunner.js:111:13)
at D:\AI Vtuber\muvtuber\blivechat\frontend\node_modules.pnpm\[email protected][email protected]\node_modules\cache-loader\dist\index.js:240:7
at D:\AI Vtuber\muvtuber\blivechat\frontend\node_modules.pnpm\[email protected]\node_modules\neo-async\async.js:2830:7
at done (D:\AI Vtuber\muvtuber\blivechat\frontend\node_modules.pnpm\[email protected]\node_modules\neo-async\async.js:2865:11)
at D:\AI Vtuber\muvtuber\blivechat\frontend\node_modules.pnpm\[email protected]\node_modules\neo-async\async.js:2818:7
at Array. (D:\AI Vtuber\muvtuber\blivechat\frontend\node_modules.pnpm\[email protected][email protected]\node_modules\cache-loader\dist\index.js:229:9) {
opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],
library: 'digital envelope routines',
reason: 'unsupported',
code: 'ERR_OSSL_EVP_UNSUPPORTED'
}

Node.js v18.14.1
 ELIFECYCLE  Command failed with exit code 1.

D:\AI Vtuber\muvtuber\blivechat\frontend>

能在ChatterBot中加入注意力机制吗?

我不太了解编程不过试着问了chatgpt。
这是chatgpt的代碼纪录:

from chatterbot import ChatBot
from chatterbot.trainers import ListTrainer
from chatterbot.conversation import Statement
import numpy as np

# Define a function to calculate the dot product attention score
def dot_product_attention(query, values):
    # Calculate the dot product between the query and each value
    scores = np.dot(query, values.T)
    # Apply softmax to the scores to get the attention weights
    attention_weights = np.softmax(scores)
    # Calculate the weighted average of the values using the attention weights
    weighted_values = np.dot(attention_weights, values)
    return weighted_values
def multihead_attention(query, keys, values, num_heads):
    # Split the query, keys, and values into multiple heads
    query_heads = np.array_split(query, num_heads, axis=-1)
    key_heads = np.array_split(keys, num_heads, axis=-1)
    value_heads = np.array_split(values, num_heads, axis=-1)

    # Concatenate the heads along the last axis
    query_heads = np.concatenate(query_heads, axis=-1)
    key_heads = np.concatenate(key_heads, axis=-1)
    value_heads = np.concatenate(value_heads, axis=-1)

    # Calculate the dot product between the query and each key head
    scores = np.dot(query_heads, key_heads.T)
    # Scale the scores by the square root of the number of features
    scores = scores / np.sqrt(query.shape[-1])

    # Apply softmax to the scores to get the attention weights
    attention_weights = np.softmax(scores, axis=-1)

    # Calculate the weighted average of the value heads using the attention weights
    weighted_values = np.dot(attention_weights, value_heads)

    # Concatenate the weighted value heads along the last axis
    weighted_values = np.concatenate(np.split(weighted_values, num_heads, axis=-1), axis=-1)

    return weighted_values

# Read the conversation corpus file
with open('db.txt', 'r', encoding='utf-8') as f:
    corpus = f.readlines()

# Create a ChatBot instance and train it
my_bot = ChatBot(input('请输入ChatBot名称:'))
trainer = ListTrainer(my_bot)

print('开始训练!')

# Train the ChatBot instance with each conversation in the corpus
for conversation in corpus:
    # Split the conversation into two statements
    statements = conversation.strip().split('\t')
    if len(statements) == 2:
        # Create a Statement object for each statement
        statement_1 = Statement(text=statements[0])
        statement_2 = Statement(text=statements[1])
        # Train the ChatBot with the two statements as a pair
        trainer.train([statement_1, statement_2])
    else:
        # If the conversation is not in the expected format, skip it
        continue

print('训练完毕!')

docker compose up -d时出现问题

 => ERROR [builder 7/9] RUN POETRY run python -m spacy download en_core_web_sm                                     2.5s
------
 > [builder 7/9] RUN    POETRY run python -m spacy download en_core_web_sm:
#0 1.360 Skipping virtualenv creation, as specified in config file.
#0 2.380 Traceback (most recent call last):
#0 2.380   File "/usr/local/lib/python3.10/site-packages/urllib3/connection.py", line 174, in _new_conn
#0 2.380     conn = connection.create_connection(
#0 2.380   File "/usr/local/lib/python3.10/site-packages/urllib3/util/connection.py", line 72, in create_connection
#0 2.380     for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
#0 2.380   File "/usr/local/lib/python3.10/socket.py", line 955, in getaddrinfo
#0 2.380     for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
#0 2.380 socket.gaierror: [Errno -2] Name or service not known
#0 2.380
#0 2.380 During handling of the above exception, another exception occurred:
#0 2.380
#0 2.380 Traceback (most recent call last):
#0 2.380   File "/usr/local/lib/python3.10/site-packages/urllib3/connectionpool.py", line 703, in urlopen
#0 2.380     httplib_response = self._make_request(
#0 2.380   File "/usr/local/lib/python3.10/site-packages/urllib3/connectionpool.py", line 386, in _make_request
#0 2.380     self._validate_conn(conn)
#0 2.380   File "/usr/local/lib/python3.10/site-packages/urllib3/connectionpool.py", line 1042, in _validate_conn
#0 2.380     conn.connect()
#0 2.380   File "/usr/local/lib/python3.10/site-packages/urllib3/connection.py", line 358, in connect
#0 2.380     self.sock = conn = self._new_conn()
#0 2.380   File "/usr/local/lib/python3.10/site-packages/urllib3/connection.py", line 186, in _new_conn
#0 2.380     raise NewConnectionError(
#0 2.380 urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPSConnection object at 0x7f4134786ef0>: Failed to establish a new connection: [Errno -2] Name or service not known
#0 2.380
#0 2.380 During handling of the above exception, another exception occurred:
#0 2.380
#0 2.380 Traceback (most recent call last):
#0 2.380   File "/usr/local/lib/python3.10/site-packages/requests/adapters.py", line 489, in send
#0 2.381     resp = conn.urlopen(
#0 2.381   File "/usr/local/lib/python3.10/site-packages/urllib3/connectionpool.py", line 787, in urlopen
#0 2.381     retries = retries.increment(
#0 2.381   File "/usr/local/lib/python3.10/site-packages/urllib3/util/retry.py", line 592, in increment
#0 2.381     raise MaxRetryError(_pool, url, error or ResponseError(cause))
#0 2.381 urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='raw.githubusercontent.com', port=443): Max retries exceeded with url: /explosion/spacy-models/master/compatibility.json (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7f4134786ef0>: Failed to establish a new connection: [Errno -2] Name or service not known'))
#0 2.381
#0 2.381 During handling of the above exception, another exception occurred:
#0 2.381
#0 2.381 Traceback (most recent call last):
#0 2.381   File "/usr/local/lib/python3.10/runpy.py", line 196, in _run_module_as_main
#0 2.381     return _run_code(code, main_globals, None,
#0 2.381   File "/usr/local/lib/python3.10/runpy.py", line 86, in _run_code
#0 2.381     exec(code, run_globals)
#0 2.381   File "/usr/local/lib/python3.10/site-packages/spacy/__main__.py", line 4, in <module>
#0 2.381     setup_cli()
#0 2.381   File "/usr/local/lib/python3.10/site-packages/spacy/cli/_util.py", line 74, in setup_cli
#0 2.381     command(prog_name=COMMAND)
#0 2.381   File "/usr/local/lib/python3.10/site-packages/click/core.py", line 1130, in __call__
#0 2.381     return self.main(*args, **kwargs)
#0 2.381   File "/usr/local/lib/python3.10/site-packages/typer/core.py", line 778, in main
#0 2.381     return _main(
#0 2.381   File "/usr/local/lib/python3.10/site-packages/typer/core.py", line 216, in _main
#0 2.381     rv = self.invoke(ctx)
#0 2.381   File "/usr/local/lib/python3.10/site-packages/click/core.py", line 1657, in invoke
#0 2.382     return _process_result(sub_ctx.command.invoke(sub_ctx))
#0 2.382   File "/usr/local/lib/python3.10/site-packages/click/core.py", line 1404, in invoke
#0 2.382     return ctx.invoke(self.callback, **ctx.params)
#0 2.382   File "/usr/local/lib/python3.10/site-packages/click/core.py", line 760, in invoke
#0 2.382     return __callback(*args, **kwargs)
#0 2.382   File "/usr/local/lib/python3.10/site-packages/typer/main.py", line 683, in wrapper
#0 2.382     return callback(**use_params)  # type: ignore
#0 2.382   File "/usr/local/lib/python3.10/site-packages/spacy/cli/download.py", line 36, in download_cli
=> CANCELED [builder 4/6] RUN npm i --registry=https://registry.npm.taobao.org                                    2.2s
failed to solve: executor failed running [/bin/sh -c poetry run python -m spacy download en_core_web_sm]: exit code: 1

使用docker搭建后,没有音频输出

2023-06-05 14:38:38 2023/06/05 06:38:38 INFO set COOLDOWN_INTERVAL from config value. COOLDOWN_INTERVAL=15s
2023-06-05 14:38:38 2023/06/05 06:38:38 INFO [dm] TextInFromDm: create newBlivedmClient to room. roomid=23391720
2023-06-05 14:38:38 2023/06/05 06:38:38 INFO [dm] chatClient started
2023-06-05 14:38:39 2023/06/05 06:38:39 INFO audioController websocket client connected remoteAddr=172.20.0.1:40780
2023-06-05 14:38:41 2023/06/05 06:38:41 INFO audioController websocket client connected remoteAddr=172.20.0.1:40794
2023-06-05 14:38:54 2023/06/05 06:38:54 INFO [dm] TextInFromDm: author=牛牛爱吃土豆呀 priority=0 content=怎么回事啊
2023-06-05 14:38:58 2023/06/05 06:38:58 INFO [PriorityReduceFilter] outputMaxPriorityOne boost Priority -> Highest author=牛牛爱吃土豆呀 content=怎么回事啊 priority=2
2023-06-05 14:38:58 2023/06/05 06:38:58 ERROR [SayerClient] Say (RPC) failed role=miku text=怎么回...回事啊 err="rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing: dial tcp 172.20.0.4:50010: connect: connection refused""
2023-06-05 14:38:58 2023/06/05 06:38:58 INFO [audioController] sendPlayCmd to audioview cmd=playVocal track=d41d8cd...
2023-06-05 14:39:28 2023/06/05 06:39:28 WARN [allInOneSayer] start playing audio timeout: Canceling... text=怎么回事啊
2023-06-05 14:39:28 2023/06/05 06:39:28 ERROR [sayer] wait END report from audioview failed text=怎么回...回事啊 trackID=d41d8cd98f00b204e9800998ecf8427e err="context canceled"
2023-06-05 14:39:28 2023/06/05 06:39:28 WARN [allInOneSayer] AudioPlayStatusErr: Failed! text=怎么回事啊
2023-06-05 14:39:28 2023/06/05 06:39:28 ERROR [sayer] wait START report from audioview failed text=怎么回...回事啊 trackID=d41d8cd98f00b204e9800998ecf8427e err="context canceled"
2023-06-05 14:39:28 2023/06/05 06:39:28 INFO [PrioritizedChatbot] Chat(牛牛爱吃土豆呀): "怎么回事啊"
2023-06-05 14:39:28 2023/06/05 06:39:28 INFO [chatbot] SessionClient Chat: got textIn: chatbotName=ChatGPTChatbot textin=怎么回事...么回事啊
2023-06-05 14:39:28 2023/06/05 06:39:28 INFO [chatbot] SessionClient Chat: NewClient created. chatbot=ChatGPTChatbot addr=chatgpt_chatbot:50052
2023-06-05 14:39:30 2023/06/05 06:39:30 WARN [chatbot] ChatGPTChatbot Chat() failed. The SessionClient will be released if successive failures: serAddr=chatgpt_chatbot:50052 failures=0/3 err=NewSession(addr=chatgpt_chatbot:50052) failed: rpc error: code = Unknown desc = Exception calling application: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /encodings/cl100k_base.tiktoken (Caused by ProxyError('Cannot connect to proxy.', NewConnectionError('<urllib3.connection.HTTPSConnection object at 0xffffa1b09840>: Failed to establish a new connection: [Errno -2] Name or service not known')))
2023-06-05 14:39:30 2023/06/05 06:39:30 WARN [PrioritizedChatbot] *chatbot.chatGPTChatbot.Chat(&{牛牛爱吃土豆呀 怎么回事啊 2}) failed: Chat() failed. The SessionClient will be released if successive failures: serAddr=chatgpt_chatbot:50052 failures=0/3 err=NewSession(addr=chatgpt_chatbot:50052) failed: rpc error: code = Unknown desc = Exception calling application: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /encodings/cl100k_base.tiktoken (Caused by ProxyError('Cannot connect to proxy.', NewConnectionError('<urllib3.connection.HTTPSConnection object at 0xffffa1b09840>: Failed to establish a new connection: [Errno -2] Name or service not known'))), try next chatbot
2023-06-05 14:39:30 2023/06/05 06:39:30 INFO [chatbot] SessionClient Chat: got textIn: chatbotName=MusharingChatbot textin=怎么回事...么回事啊
2023-06-05 14:39:30 2023/06/05 06:39:30 INFO [chatbot] SessionClient Chat: NewClient created. chatbot=MusharingChatbot addr=musharing_chatbot:50051
2023-06-05 14:39:30 2023/06/05 06:39:30 INFO [chatbot] SessionClient Chat: NewSession created. chatbot=MusharingChatbot addr=musharing_chatbot:50051 sessionID=4a1843f2-f7d0-4c91-8d54-10c5aa8cbbe2
2023-06-05 14:39:30 2023/06/05 06:39:30 INFO [chatbot] SessionClient Chat success. chatbot=MusharingChatbot sessionID=4a1843f... textin=怎么回事...么回事啊 textout=肯尼迪总...刺身亡?
2023-06-05 14:39:30 2023/06/05 06:39:30 INFO [PrioritizedChatbot] Chat(牛牛爱吃土豆呀): "怎么回事啊" => (MusharingChatbot): "肯尼迪总统哪年遇刺身亡?"
2023-06-05 14:39:33 2023/06/05 06:39:33 INFO [PriorityReduceFilter] outputMaxPriorityOne boost Priority -> Highest author=MusharingChatbot content=肯尼迪总统哪年...哪年遇刺身亡? priority=2
2023-06-05 14:39:33 2023/06/05 06:39:33 INFO [textOut] author=MusharingChatbot priority=2 content=肯尼迪总统哪年遇刺身亡?
2023-06-05 14:39:33 2023/06/05 06:39:33 ERROR [SayerClient] Say (RPC) failed role=miku text=肯尼迪...身亡? err="rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing: dial tcp 172.20.0.4:50010: connect: connection refused""
2023-06-05 14:39:33 2023/06/05 06:39:33 INFO [audioController] sendPlayCmd to audioview cmd=playVocal track=d41d8cd...

使用docker搭建后,没有音频输出

如题,obs添加浏览器的时候,勾选了“通过OBS控制音频”,url为:http://127.0.0.1:51082/?controller=ws://127.0.0.1:51081/

以下是日志信息:

2023-06-01 18:08:49 muvtuber-live2ddriver-1       | 2023/06/01 10:08:49 INFO fwd msg: {"motion":"flick_head"} -> http://localhost:51070 (chan 0xc00011e420).
2023-06-01 18:08:49 muvtuber-live2ddriver-1       | 2023/06/01 10:08:49 WARN may be a OpenMouth after emo-motion, ignore: {"motion":"flick_head"}
2023-06-01 18:09:19 muvtuber-live2ddriver-1       | 2023/06/01 10:09:19 INFO fwd msg: {"motion":"idle"} -> http://localhost:51070 (chan 0xc00011e420).
2023-06-01 18:09:24 muvtuber-live2ddriver-1       | 2023/06/01 10:09:24 INFO fwd msg: {} -> http://localhost:51070 (chan 0xc00011e420).
2023-06-01 18:12:04 muvtuber-externalsayer-1      | 2023/06/01 10:12:04 Receive term signal. Gracefully shutdown...
2023-06-01 18:09:19 muvtuber-musharing_chatbot-1  | 2023-06-01 10:09:19 INFO [chatterbot.response_selection]: Selecting first response from list of 3 options.
2023-06-01 18:09:24 muvtuber-live2ddriver-1       | 2023/06/01 10:09:24 INFO fwd msg: {"motion":"flick_head"} -> http://localhost:51070 (chan 0xc00011e420).
2023-06-01 18:08:46 muvtuber-muvtuberdriver-1     | 2023/06/01 10:08:46 INFO [dm] TextInFromDm:  author=繁星Starry_Q priority=0 content=hello
2023-06-01 18:08:46 muvtuber-blivechat-1          | 2023-06-01 10:08:46 INFO [services.avatar]: Failed to fetch avatar: code=-799 请求过于频繁,请稍后再试 uid=40115114
2023-06-01 18:09:19 muvtuber-musharing_chatbot-1  | 2023-06-01 10:09:19 INFO [root]: ChatbotGrpcServer.Chat: (OK) Hi
2023-06-01 18:08:49 muvtuber-muvtuberdriver-1     | 2023/06/01 10:08:49 INFO [PriorityReduceFilter] outputMaxPriorityOne boost Priority -> Highest author=繁星Starry_Q content=hello priority=2
2023-06-01 18:12:04 muvtuber-audioview-1          | 2023/06/01 10:12:04 [notice] 1#1: signal 3 (SIGQUIT) received, shutting down
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    | ERROR:grpc._server:Exception calling application: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /encodings/cl100k_base.tiktoken (Caused by ProxyError('Cannot connect to proxy.', NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7fdc3a0e6a40>: Failed to establish a new connection: [Errno -2] Name or service not known')))
2023-06-01 18:08:49 muvtuber-muvtuberdriver-1     | 2023/06/01 10:08:49 INFO [audioController] sendPlayCmd to audioview cmd=playVocal track=d41d8cd...
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    | Traceback (most recent call last):
2023-06-01 18:12:04 muvtuber-blivechat-1          | 2023-06-01 10:12:04 INFO [api.chat]: client=172.18.0.10 disconnected, room=24402566
2023-06-01 18:09:19 muvtuber-muvtuberdriver-1     | 2023/06/01 10:09:19 INFO [allInOneSayer] say: done. text=hello
2023-06-01 18:09:19 muvtuber-muvtuberdriver-1     | 2023/06/01 10:09:19 INFO [PrioritizedChatbot] Chat(繁星Starry_Q): "hello"
2023-06-01 18:12:04 muvtuber-blivechat-1          | 2023-06-01 10:12:04 INFO [services.chat]: room=24402566 removed client 172.18.0.10, 0 clients
2023-06-01 18:09:19 muvtuber-muvtuberdriver-1     | 2023/06/01 10:09:19 INFO [chatbot] SessionClient Chat: got textIn: chatbotName=ChatGPTChatbot textin=hello
2023-06-01 18:09:54 muvtuber-live2ddriver-1       | 2023/06/01 10:09:54 INFO fwd msg: {"motion":"idle"} -> http://localhost:51070 (chan 0xc00011e420).
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    |   File "/usr/local/lib/python3.10/site-packages/urllib3/connection.py", line 174, in _new_conn
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    |     conn = connection.create_connection(
2023-06-01 18:12:04 muvtuber-audioview-1          | 2023/06/01 10:12:04 [notice] 25#25: gracefully shutting down
2023-06-01 18:12:04 muvtuber-live2dview-1         | 2023/06/01 10:12:04 [notice] 1#1: signal 3 (SIGQUIT) received, shutting down
2023-06-01 18:12:04 muvtuber-audioview-1          | 2023/06/01 10:12:04 [notice] 26#26: gracefully shutting down
2023-06-01 18:12:04 muvtuber-audioview-1          | 2023/06/01 10:12:04 [notice] 25#25: exiting
2023-06-01 18:12:04 muvtuber-audioview-1          | 2023/06/01 10:12:04 [notice] 26#26: exiting
2023-06-01 18:12:04 muvtuber-audioview-1          | 2023/06/01 10:12:04 [notice] 27#27: gracefully shutting down
2023-06-01 18:12:20 muvtuber-live2ddriver-1       | 2023/06/01 10:12:20 (out) Listening WebSocket on 0.0.0.0:9001/live2d...
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    |   File "/usr/local/lib/python3.10/site-packages/urllib3/util/connection.py", line 72, in create_connection
2023-06-01 18:12:20 muvtuber-live2ddriver-1       | 2023/06/01 10:12:20 (in) Shizuku Driver Listening on 0.0.0.0:9004...
2023-06-01 18:12:20 muvtuber-live2ddriver-1       | 2023/06/01 10:12:20 (in) Forwarding messages from HTTP (0.0.0.0:9002/live2d) to WebSocket clients...
2023-06-01 18:12:14 muvtuber-blivechat-1          | 2023-06-01 10:12:14 INFO [services.chat]: room=24402566 removing client room
2023-06-01 18:12:04 muvtuber-live2dview-1         | 2023/06/01 10:12:04 [notice] 23#23: gracefully shutting down
2023-06-01 18:12:20 muvtuber-musharing_chatbot-1  | 2023-06-01 10:12:20 INFO [root]: gRPC reflection enabled.
2023-06-01 18:12:04 muvtuber-live2dview-1         | 2023/06/01 10:12:04 [notice] 26#26: gracefully shutting down
2023-06-01 18:12:04 muvtuber-live2dview-1         | 2023/06/01 10:12:04 [notice] 24#24: gracefully shutting down
2023-06-01 18:12:04 muvtuber-live2dview-1         | 2023/06/01 10:12:04 [notice] 27#27: gracefully shutting down
2023-06-01 18:12:04 muvtuber-live2dview-1         | 2023/06/01 10:12:04 [notice] 23#23: exiting
2023-06-01 18:12:04 muvtuber-audioview-1          | 2023/06/01 10:12:04 [notice] 23#23: gracefully shutting down
2023-06-01 18:12:04 muvtuber-live2dview-1         | 2023/06/01 10:12:04 [notice] 26#26: exiting
2023-06-01 18:12:04 muvtuber-audioview-1          | 2023/06/01 10:12:04 [notice] 28#28: gracefully shutting down
2023-06-01 18:09:19 muvtuber-muvtuberdriver-1     | 2023/06/01 10:09:19 WARN [chatbot] ChatGPTChatbot Chat() failed. The SessionClient will be released if successive failures: serAddr=chatgpt_chatbot:50052 failures=0/3 err=NewSession(addr=chatgpt_chatbot:50052) failed: rpc error: code = Unknown desc = Exception calling application: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /encodings/cl100k_base.tiktoken (Caused by ProxyError('Cannot connect to proxy.', NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7fdc3a0e6a40>: Failed to establish a new connection: [Errno -2] Name or service not known')))
2023-06-01 18:09:19 muvtuber-muvtuberdriver-1     | 2023/06/01 10:09:19 WARN [PrioritizedChatbot] *chatbot.chatGPTChatbot.Chat(&{繁星Starry_Q hello 2}) failed: Chat() failed. The SessionClient will be released if successive failures: serAddr=chatgpt_chatbot:50052 failures=0/3 err=NewSession(addr=chatgpt_chatbot:50052) failed: rpc error: code = Unknown desc = Exception calling application: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /encodings/cl100k_base.tiktoken (Caused by ProxyError('Cannot connect to proxy.', NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7fdc3a0e6a40>: Failed to establish a new connection: [Errno -2] Name or service not known'))), try next chatbot
2023-06-01 18:09:19 muvtuber-muvtuberdriver-1     | 2023/06/01 10:09:19 INFO [chatbot] SessionClient Chat: got textIn: chatbotName=MusharingChatbot textin=hello
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    |     for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    |   File "/usr/local/lib/python3.10/socket.py", line 955, in getaddrinfo
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    |     for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    | socket.gaierror: [Errno -2] Name or service not known
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    | 
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    | During handling of the above exception, another exception occurred:
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    | 
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    | Traceback (most recent call last):
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    |   File "/usr/local/lib/python3.10/site-packages/urllib3/connectionpool.py", line 700, in urlopen
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    |     self._prepare_proxy(conn)
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    |   File "/usr/local/lib/python3.10/site-packages/urllib3/connectionpool.py", line 996, in _prepare_proxy
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    |     conn.connect()
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    |   File "/usr/local/lib/python3.10/site-packages/urllib3/connection.py", line 363, in connect
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    |     self.sock = conn = self._new_conn()
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    |   File "/usr/local/lib/python3.10/site-packages/urllib3/connection.py", line 186, in _new_conn
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    |     raise NewConnectionError(
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    | urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPSConnection object at 0x7fdc3a0e6a40>: Failed to establish a new connection: [Errno -2] Name or service not known
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    | 
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    | During handling of the above exception, another exception occurred:
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    | 
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    | Traceback (most recent call last):
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    |   File "/usr/local/lib/python3.10/site-packages/requests/adapters.py", line 489, in send
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    |     resp = conn.urlopen(
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    |   File "/usr/local/lib/python3.10/site-packages/urllib3/connectionpool.py", line 787, in urlopen
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    |     retries = retries.increment(
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    |   File "/usr/local/lib/python3.10/site-packages/urllib3/util/retry.py", line 592, in increment
2023-06-01 18:12:19 muvtuber-externalsayer-1      | 2023/06/01 10:12:19 INFO gRPC API server started. addr=localhost:50010 sayer=*azuresayer.AzureSayer pid=1
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    |     raise MaxRetryError(_pool, url, error or ResponseError(cause))
2023-06-01 18:12:04 muvtuber-audioview-1          | 2023/06/01 10:12:04 [notice] 27#27: exiting
2023-06-01 18:12:14 muvtuber-blivechat-1          | 2023-06-01 10:12:14 INFO [services.chat]: room=24402566 clearing 0 clients
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    | urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /encodings/cl100k_base.tiktoken (Caused by ProxyError('Cannot connect to proxy.', NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7fdc3a0e6a40>: Failed to establish a new connection: [Errno -2] Name or service not known')))
2023-06-01 18:09:19 muvtuber-muvtuberdriver-1     | 2023/06/01 10:09:19 INFO [chatbot] SessionClient Chat success. chatbot=MusharingChatbot sessionID=eae0310... textin=hello textout=Hi
2023-06-01 18:09:19 muvtuber-muvtuberdriver-1     | 2023/06/01 10:09:19 INFO [PrioritizedChatbot] Chat(繁星Starry_Q): "hello" => (MusharingChatbot): "Hi"
2023-06-01 18:12:04 muvtuber-audioview-1          | 2023/06/01 10:12:04 [notice] 28#28: exiting
2023-06-01 18:09:24 muvtuber-muvtuberdriver-1     | 2023/06/01 10:09:24 INFO [PriorityReduceFilter] outputMaxPriorityOne boost Priority -> Highest author=MusharingChatbot content=Hi priority=2
2023-06-01 18:12:14 muvtuber-blivechat-1          | 2023-06-01 10:12:14 INFO [services.chat]: room=24402566 client room removed, 0 client rooms
2023-06-01 18:12:14 muvtuber-blivechat-1          | 2023-06-01 10:12:14 INFO [services.chat]: room=24402566 removing live client
2023-06-01 18:12:14 muvtuber-blivechat-1          | 2023-06-01 10:12:14 INFO [services.chat]: room=24402566 live client removed, 0 live clients
2023-06-01 18:12:04 muvtuber-live2dview-1         | 2023/06/01 10:12:04 [notice] 24#24: exiting
2023-06-01 18:12:04 muvtuber-live2dview-1         | 2023/06/01 10:12:04 [notice] 27#27: exiting
2023-06-01 18:12:04 muvtuber-live2dview-1         | 2023/06/01 10:12:04 [notice] 24#24: exit
2023-06-01 18:12:04 muvtuber-live2dview-1         | 2023/06/01 10:12:04 [notice] 27#27: exit
2023-06-01 18:12:04 muvtuber-live2dview-1         | 2023/06/01 10:12:04 [notice] 26#26: exit
2023-06-01 18:12:04 muvtuber-live2dview-1         | 2023/06/01 10:12:04 [notice] 23#23: exit
2023-06-01 18:12:04 muvtuber-live2dview-1         | 2023/06/01 10:12:04 [notice] 25#25: gracefully shutting down
2023-06-01 18:12:04 muvtuber-live2dview-1         | 2023/06/01 10:12:04 [notice] 25#25: exiting
2023-06-01 18:12:04 muvtuber-live2dview-1         | 2023/06/01 10:12:04 [notice] 25#25: exit
2023-06-01 18:12:04 muvtuber-live2dview-1         | 2023/06/01 10:12:04 [notice] 22#22: gracefully shutting down
2023-06-01 18:12:04 muvtuber-live2dview-1         | 2023/06/01 10:12:04 [notice] 22#22: exiting
2023-06-01 18:12:04 muvtuber-live2dview-1         | 2023/06/01 10:12:04 [notice] 22#22: exit
2023-06-01 18:12:04 muvtuber-live2dview-1         | 2023/06/01 10:12:04 [notice] 1#1: signal 17 (SIGCHLD) received from 23
2023-06-01 18:12:04 muvtuber-live2dview-1         | 2023/06/01 10:12:04 [notice] 1#1: worker process 23 exited with code 0
2023-06-01 18:12:04 muvtuber-live2dview-1         | 2023/06/01 10:12:04 [notice] 1#1: worker process 25 exited with code 0
2023-06-01 18:12:04 muvtuber-live2dview-1         | 2023/06/01 10:12:04 [notice] 1#1: worker process 26 exited with code 0
2023-06-01 18:12:04 muvtuber-live2dview-1         | 2023/06/01 10:12:04 [notice] 1#1: signal 29 (SIGIO) received
2023-06-01 18:12:04 muvtuber-live2dview-1         | 2023/06/01 10:12:04 [notice] 1#1: signal 17 (SIGCHLD) received from 27
2023-06-01 18:12:04 muvtuber-live2dview-1         | 2023/06/01 10:12:04 [notice] 1#1: worker process 27 exited with code 0
2023-06-01 18:12:04 muvtuber-live2dview-1         | 2023/06/01 10:12:04 [notice] 1#1: signal 29 (SIGIO) received
2023-06-01 18:12:04 muvtuber-audioview-1          | 2023/06/01 10:12:04 [notice] 23#23: exiting
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    | 
2023-06-01 18:12:04 muvtuber-live2dview-1         | 2023/06/01 10:12:04 [notice] 1#1: signal 17 (SIGCHLD) received from 22
2023-06-01 18:12:04 muvtuber-audioview-1          | 2023/06/01 10:12:04 [notice] 25#25: exit
2023-06-01 18:09:24 muvtuber-muvtuberdriver-1     | 2023/06/01 10:09:24 INFO [textOut] author=MusharingChatbot priority=2 content=Hi
2023-06-01 18:12:04 muvtuber-audioview-1          | 2023/06/01 10:12:04 [notice] 26#26: exit
2023-06-01 18:12:20 muvtuber-blivechat-1          | 2023-06-01 10:12:20 INFO [__main__]: Server started: 0.0.0.0:12450
2023-06-01 18:09:24 muvtuber-muvtuberdriver-1     | 2023/06/01 10:09:24 INFO [audioController] sendPlayCmd to audioview cmd=playVocal track=d41d8cd...
2023-06-01 18:12:04 muvtuber-audioview-1          | 2023/06/01 10:12:04 [notice] 27#27: exit
2023-06-01 18:12:04 muvtuber-live2dview-1         | 2023/06/01 10:12:04 [notice] 1#1: worker process 22 exited with code 0
2023-06-01 18:12:04 muvtuber-audioview-1          | 2023/06/01 10:12:04 [notice] 28#28: exit
2023-06-01 18:12:04 muvtuber-live2dview-1         | 2023/06/01 10:12:04 [notice] 1#1: worker process 24 exited with code 0
2023-06-01 18:12:04 muvtuber-live2dview-1         | 2023/06/01 10:12:04 [notice] 1#1: exit
2023-06-01 18:12:20 muvtuber-blivechat-1          | 2023-06-01 10:12:20 INFO [api.chat]: client=172.18.0.10 connected
2023-06-01 18:12:19 muvtuber-live2dview-1         | /docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
2023-06-01 18:12:04 muvtuber-audioview-1          | 2023/06/01 10:12:04 [notice] 23#23: exit
2023-06-01 18:12:04 muvtuber-audioview-1          | 2023/06/01 10:12:04 [notice] 24#24: gracefully shutting down
2023-06-01 18:12:04 muvtuber-audioview-1          | 2023/06/01 10:12:04 [notice] 24#24: exiting
2023-06-01 18:12:04 muvtuber-audioview-1          | 2023/06/01 10:12:04 [notice] 24#24: exit
2023-06-01 18:12:04 muvtuber-audioview-1          | 2023/06/01 10:12:04 [notice] 1#1: signal 17 (SIGCHLD) received from 28
2023-06-01 18:12:04 muvtuber-audioview-1          | 2023/06/01 10:12:04 [notice] 1#1: worker process 23 exited with code 0
2023-06-01 18:12:04 muvtuber-audioview-1          | 2023/06/01 10:12:04 [notice] 1#1: worker process 25 exited with code 0
2023-06-01 18:12:04 muvtuber-audioview-1          | 2023/06/01 10:12:04 [notice] 1#1: worker process 27 exited with code 0
2023-06-01 18:12:04 muvtuber-audioview-1          | 2023/06/01 10:12:04 [notice] 1#1: worker process 28 exited with code 0
2023-06-01 18:12:04 muvtuber-audioview-1          | 2023/06/01 10:12:04 [notice] 1#1: signal 29 (SIGIO) received
2023-06-01 18:12:04 muvtuber-audioview-1          | 2023/06/01 10:12:04 [notice] 1#1: signal 17 (SIGCHLD) received from 26
2023-06-01 18:12:04 muvtuber-audioview-1          | 2023/06/01 10:12:04 [notice] 1#1: worker process 26 exited with code 0
2023-06-01 18:12:04 muvtuber-audioview-1          | 2023/06/01 10:12:04 [notice] 1#1: signal 29 (SIGIO) received
2023-06-01 18:12:04 muvtuber-audioview-1          | 2023/06/01 10:12:04 [notice] 1#1: signal 17 (SIGCHLD) received from 24
2023-06-01 18:12:04 muvtuber-audioview-1          | 2023/06/01 10:12:04 [notice] 1#1: worker process 24 exited with code 0
2023-06-01 18:12:04 muvtuber-audioview-1          | 2023/06/01 10:12:04 [notice] 1#1: exit
2023-06-01 18:12:19 muvtuber-audioview-1          | /docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
2023-06-01 18:12:19 muvtuber-audioview-1          | /docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
2023-06-01 18:12:19 muvtuber-audioview-1          | /docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
2023-06-01 18:12:19 muvtuber-audioview-1          | 10-listen-on-ipv6-by-default.sh: info: IPv6 listen already enabled
2023-06-01 18:12:19 muvtuber-audioview-1          | /docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
2023-06-01 18:12:19 muvtuber-audioview-1          | /docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
2023-06-01 18:12:19 muvtuber-audioview-1          | /docker-entrypoint.sh: Configuration complete; ready for start up
2023-06-01 18:12:19 muvtuber-audioview-1          | 2023/06/01 10:12:19 [notice] 1#1: using the "epoll" event method
2023-06-01 18:12:19 muvtuber-audioview-1          | 2023/06/01 10:12:19 [notice] 1#1: nginx/1.23.3
2023-06-01 18:12:19 muvtuber-audioview-1          | 2023/06/01 10:12:19 [notice] 1#1: built by gcc 12.2.1 20220924 (Alpine 12.2.1_git20220924-r4) 
2023-06-01 18:12:19 muvtuber-audioview-1          | 2023/06/01 10:12:19 [notice] 1#1: OS: Linux 5.15.49-linuxkit-pr
2023-06-01 18:12:19 muvtuber-audioview-1          | 2023/06/01 10:12:19 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1048576:1048576
2023-06-01 18:12:19 muvtuber-audioview-1          | 2023/06/01 10:12:19 [notice] 1#1: start worker processes
2023-06-01 18:12:19 muvtuber-audioview-1          | 2023/06/01 10:12:19 [notice] 1#1: start worker process 22
2023-06-01 18:12:19 muvtuber-audioview-1          | 2023/06/01 10:12:19 [notice] 1#1: start worker process 23
2023-06-01 18:12:19 muvtuber-audioview-1          | 2023/06/01 10:12:19 [notice] 1#1: start worker process 24
2023-06-01 18:12:19 muvtuber-audioview-1          | 2023/06/01 10:12:19 [notice] 1#1: start worker process 25
2023-06-01 18:12:19 muvtuber-audioview-1          | 2023/06/01 10:12:19 [notice] 1#1: start worker process 26
2023-06-01 18:12:19 muvtuber-audioview-1          | 2023/06/01 10:12:19 [notice] 1#1: start worker process 27
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    | During handling of the above exception, another exception occurred:
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    | 
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    | Traceback (most recent call last):
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    |   File "/usr/local/lib/python3.10/site-packages/grpc/_server.py", line 444, in _call_behavior
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    |     response_or_iterator = behavior(argument, context)
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    |   File "/app/chatgpt/grpcapi.py", line 37, in NewSession
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    |     session_id = self.multiChatGPT.new_session(config)
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    |   File "/app/chatgpt/chatbot.py", line 289, in new_session
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    |     self.chatgpts[session_id] = ChatGPTProxy(
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    |   File "/app/chatgpt/chatbot.py", line 189, in __init__
2023-06-01 18:09:54 muvtuber-muvtuberdriver-1     | 2023/06/01 10:09:54 INFO [allInOneSayer] say: done. text=Hi
2023-06-01 18:12:20 muvtuber-blivechat-1          | 2023-06-01 10:12:20 INFO [api.chat]: client=172.18.0.10 joining room 24402566
2023-06-01 18:12:20 muvtuber-blivechat-1          | 2023-06-01 10:12:20 INFO [services.chat]: room=24402566 creating client room
2023-06-01 18:12:20 muvtuber-blivechat-1          | 2023-06-01 10:12:20 INFO [services.chat]: room=24402566 client room created, 1 client rooms
2023-06-01 18:12:19 muvtuber-live2dview-1         | /docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
2023-06-01 18:12:19 muvtuber-live2dview-1         | /docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
2023-06-01 18:12:19 muvtuber-live2dview-1         | 10-listen-on-ipv6-by-default.sh: info: IPv6 listen already enabled
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    |     self.renew()
2023-06-01 18:12:19 muvtuber-live2dview-1         | /docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
2023-06-01 18:12:20 muvtuber-blivechat-1          | 2023-06-01 10:12:20 INFO [services.chat]: room=24402566 creating live client
2023-06-01 18:12:19 muvtuber-live2dview-1         | /docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
2023-06-01 18:12:20 muvtuber-blivechat-1          | 2023-06-01 10:12:20 INFO [services.chat]: room=24402566 live client created, 1 live clients
2023-06-01 18:12:20 muvtuber-blivechat-1          | 2023-06-01 10:12:20 INFO [services.chat]: room=24402566 addding client 172.18.0.10
2023-06-01 18:12:20 muvtuber-blivechat-1          | 2023-06-01 10:12:20 INFO [services.chat]: room=24402566 added client 172.18.0.10, 1 clients
2023-06-01 18:12:19 muvtuber-live2dview-1         | /docker-entrypoint.sh: Configuration complete; ready for start up
2023-06-01 18:12:20 muvtuber-muvtuberdriver-1     | 2023/06/01 10:12:20 INFO Reading config file. configFile=/app/config/config.yaml
2023-06-01 18:12:20 muvtuber-muvtuberdriver-1     | 2023/06/01 10:12:20 INFO Config loaded:
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    |   File "/app/chatgpt/chatbot.py", line 193, in renew
2023-06-01 18:12:20 muvtuber-muvtuberdriver-1     | blivedm:
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    |     self.chatgpt = self._new_chatgpt(self.config)
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    |   File "/app/chatgpt/chatbot.py", line 207, in _new_chatgpt
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    |     new_chatgpt = ChatGPTv3(config={
2023-06-01 18:12:20 muvtuber-muvtuberdriver-1     |     server: ws://blivechat:12450/api/chat
2023-06-01 18:12:20 muvtuber-muvtuberdriver-1     |     roomid: 24402566
2023-06-01 18:12:20 muvtuber-muvtuberdriver-1     | textouthttp:
2023-06-01 18:12:20 muvtuber-muvtuberdriver-1     |     server: ""
2023-06-01 18:12:20 muvtuber-muvtuberdriver-1     |     droprate: 0
2023-06-01 18:12:20 muvtuber-muvtuberdriver-1     | live2d:
2023-06-01 18:12:20 muvtuber-muvtuberdriver-1     |     driver: http://live2ddriver:9004/driver
2023-06-01 18:12:20 muvtuber-muvtuberdriver-1     |     forwarder: http://live2ddriver:9002/live2d
2023-06-01 18:12:20 muvtuber-muvtuberdriver-1     | chatbot:
2023-06-01 18:12:20 muvtuber-muvtuberdriver-1     |     musharing:
2023-06-01 18:12:20 muvtuber-muvtuberdriver-1     |         server: musharing_chatbot:50051
2023-06-01 18:12:20 muvtuber-muvtuberdriver-1     |         disabled: false
2023-06-01 18:12:20 muvtuber-muvtuberdriver-1     |     chatgpt:
2023-06-01 18:12:20 muvtuber-muvtuberdriver-1     |         server: chatgpt_chatbot:50052
2023-06-01 18:12:20 muvtuber-muvtuberdriver-1     |         configs:
2023-06-01 18:12:20 muvtuber-muvtuberdriver-1     |             - version: 3
2023-06-01 18:12:20 muvtuber-muvtuberdriver-1     |               accesstoken: ""
2023-06-01 18:12:20 muvtuber-muvtuberdriver-1     |               apikey: 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
2023-06-01 18:12:20 muvtuber-muvtuberdriver-1     |               initialprompt: You are muli, an AI VTuber live streaming.
2023-06-01 18:12:20 muvtuber-muvtuberdriver-1     |         cooldown: 15
2023-06-01 18:12:20 muvtuber-muvtuberdriver-1     |         disabled: false
2023-06-01 18:12:20 muvtuber-muvtuberdriver-1     | sayer:
2023-06-01 18:12:20 muvtuber-muvtuberdriver-1     |     server: externalsayer:50010
2023-06-01 18:12:20 muvtuber-muvtuberdriver-1     |     role: miku
2023-06-01 18:12:20 muvtuber-muvtuberdriver-1     | listen:
2023-06-01 18:12:20 muvtuber-muvtuberdriver-1     |     textinhttp: 0.0.0.0:51080
2023-06-01 18:12:20 muvtuber-muvtuberdriver-1     |     audiocontrollerws: 0.0.0.0:51081
2023-06-01 18:12:20 muvtuber-muvtuberdriver-1     | readdm: true
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    |   File "/app/chatgpt/chatbot.py", line 94, in __init__
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    |     self.chatbot = ChatbotV3(
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    |   File "/usr/local/lib/python3.10/site-packages/revChatGPT/V3.py", line 68, in __init__
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    |     if self.get_token_count("default") > self.max_tokens:
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    |   File "/usr/local/lib/python3.10/site-packages/revChatGPT/V3.py", line 116, in get_token_count
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    |     encoding = tiktoken.encoding_for_model(self.engine)
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    |   File "/usr/local/lib/python3.10/site-packages/tiktoken/model.py", line 75, in encoding_for_model
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    |     return get_encoding(encoding_name)
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    |   File "/usr/local/lib/python3.10/site-packages/tiktoken/registry.py", line 63, in get_encoding
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    |     enc = Encoding(**constructor())
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    |   File "/usr/local/lib/python3.10/site-packages/tiktoken_ext/openai_public.py", line 64, in cl100k_base
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    |     mergeable_ranks = load_tiktoken_bpe(
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    |   File "/usr/local/lib/python3.10/site-packages/tiktoken/load.py", line 114, in load_tiktoken_bpe
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    |     contents = read_file_cached(tiktoken_bpe_file)
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    |   File "/usr/local/lib/python3.10/site-packages/tiktoken/load.py", line 46, in read_file_cached
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    |     contents = read_file(blobpath)
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    |   File "/usr/local/lib/python3.10/site-packages/tiktoken/load.py", line 24, in read_file
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    |     return requests.get(blobpath).content
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    |   File "/usr/local/lib/python3.10/site-packages/requests/api.py", line 73, in get
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    |     return request("get", url, params=params, **kwargs)
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    |   File "/usr/local/lib/python3.10/site-packages/requests/api.py", line 59, in request
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    |     return session.request(method=method, url=url, **kwargs)
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    |   File "/usr/local/lib/python3.10/site-packages/requests/sessions.py", line 587, in request
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    |     resp = self.send(prep, **send_kwargs)
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    |   File "/usr/local/lib/python3.10/site-packages/requests/sessions.py", line 701, in send
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    |     r = adapter.send(request, **kwargs)
2023-06-01 18:12:20 muvtuber-muvtuberdriver-1     | reduceduration: 5
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    |   File "/usr/local/lib/python3.10/site-packages/requests/adapters.py", line 559, in send
2023-06-01 18:12:20 muvtuber-muvtuberdriver-1     | toolong:
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    |     raise ProxyError(e, request=request)
2023-06-01 18:12:20 muvtuber-muvtuberdriver-1     |     maxwords: 500
2023-06-01 18:09:19 muvtuber-chatgpt_chatbot-1    | requests.exceptions.ProxyError: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /encodings/cl100k_base.tiktoken (Caused by ProxyError('Cannot connect to proxy.', NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7fdc3a0e6a40>: Failed to establish a new connection: [Errno -2] Name or service not known')))
2023-06-01 18:12:20 muvtuber-chatgpt_chatbot-1    | INFO:root:gRPC reflection enabled.
2023-06-01 18:12:19 muvtuber-live2dview-1         | 2023/06/01 10:12:19 [notice] 1#1: using the "epoll" event method
2023-06-01 18:12:19 muvtuber-live2dview-1         | 2023/06/01 10:12:19 [notice] 1#1: nginx/1.23.3
2023-06-01 18:12:19 muvtuber-live2dview-1         | 2023/06/01 10:12:19 [notice] 1#1: built by gcc 12.2.1 20220924 (Alpine 12.2.1_git20220924-r4) 
2023-06-01 18:12:19 muvtuber-live2dview-1         | 2023/06/01 10:12:19 [notice] 1#1: OS: Linux 5.15.49-linuxkit-pr
2023-06-01 18:12:20 muvtuber-muvtuberdriver-1     |     quibbles:
2023-06-01 18:12:19 muvtuber-live2dview-1         | 2023/06/01 10:12:19 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1048576:1048576
2023-06-01 18:12:19 muvtuber-live2dview-1         | 2023/06/01 10:12:19 [notice] 1#1: start worker processes
2023-06-01 18:12:20 muvtuber-muvtuberdriver-1     |         - 太长了,不想说。
2023-06-01 18:12:19 muvtuber-live2dview-1         | 2023/06/01 10:12:19 [notice] 1#1: start worker process 21
2023-06-01 18:12:20 muvtuber-muvtuberdriver-1     |         - 禁則事項です。
2023-06-01 18:12:19 muvtuber-live2dview-1         | 2023/06/01 10:12:19 [notice] 1#1: start worker process 22
2023-06-01 18:12:19 muvtuber-live2dview-1         | 2023/06/01 10:12:19 [notice] 1#1: start worker process 23
2023-06-01 18:12:20 muvtuber-muvtuberdriver-1     |         - 爬。
2023-06-01 18:12:20 muvtuber-muvtuberdriver-1     | 2023/06/01 10:12:20 INFO set COOLDOWN_INTERVAL from config value. COOLDOWN_INTERVAL=15s
2023-06-01 18:12:20 muvtuber-muvtuberdriver-1     | 2023/06/01 10:12:20 INFO [dm] TextInFromDm: create newBlivedmClient to room. roomid=24402566
2023-06-01 18:12:20 muvtuber-muvtuberdriver-1     | 2023/06/01 10:12:20 INFO [dm] chatClient started
2023-06-01 18:12:19 muvtuber-live2dview-1         | 2023/06/01 10:12:19 [notice] 1#1: start worker process 24
2023-06-01 18:12:19 muvtuber-live2dview-1         | 2023/06/01 10:12:19 [notice] 1#1: start worker process 25
2023-06-01 18:12:19 muvtuber-live2dview-1         | 2023/06/01 10:12:19 [notice] 1#1: start worker process 26
2023-06-01 18:12:21 muvtuber-blivechat-1          | 2023-06-01 10:12:21 INFO [services.chat]: room=24402566 (24402566) live client init succeeded
2023-06-01 18:12:27 muvtuber-live2ddriver-1       | 2023/06/01 10:12:27 Start ForwardMessageTo: http://localhost:51070 by chan 0xc00009c1e0.
2023-06-01 18:12:53 muvtuber-blivechat-1          | 2023-06-01 10:12:53 INFO [services.avatar]: Failed to fetch avatar: code=-799 请求过于频繁,请稍后再试 uid=40115114
2023-06-01 18:12:53 muvtuber-muvtuberdriver-1     | 2023/06/01 10:12:53 INFO [dm] TextInFromDm:  author=繁星Starry_Q priority=0 content=你好
2023-06-01 18:12:55 muvtuber-muvtuberdriver-1     | 2023/06/01 10:12:55 INFO [PriorityReduceFilter] outputMaxPriorityOne boost Priority -> Highest author=繁星Starry_Q content=你好 priority=2
2023-06-01 18:12:55 muvtuber-live2ddriver-1       | 2023/06/01 10:12:55 INFO fwd msg: {"motion":"flick_head"} -> http://localhost:51070 (chan 0xc00009c1e0).
2023-06-01 18:12:55 muvtuber-live2ddriver-1       | 2023/06/01 10:12:55 WARN may be a OpenMouth after emo-motion, ignore: {"motion":"flick_head"}
2023-06-01 18:12:55 muvtuber-muvtuberdriver-1     | 2023/06/01 10:12:55 INFO [audioController] sendPlayCmd to audioview cmd=playVocal track=d41d8cd...
2023-06-01 18:13:03 muvtuber-live2dview-1         | 172.18.0.1 - - [01/Jun/2023:10:13:03 +0000] "GET /shizuku/sounds/flickHead_01.mp3 HTTP/1.1" 304 0 "http://localhost:51070/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" "-"
2023-06-01 18:13:07 muvtuber-live2dview-1         | 172.18.0.1 - - [01/Jun/2023:10:13:07 +0000] "GET /shizuku/sounds/flickHead_00.mp3 HTTP/1.1" 304 0 "http://localhost:51070/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" "-"
2023-06-01 18:13:18 muvtuber-live2dview-1         | 172.18.0.1 - - [01/Jun/2023:10:13:18 +0000] "GET /shizuku/sounds/flickHead_02.mp3 HTTP/1.1" 304 0 "http://localhost:51070/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" "-"
2023-06-01 18:13:25 muvtuber-muvtuberdriver-1     | 2023/06/01 10:13:25 INFO [allInOneSayer] say: done. text=你好
2023-06-01 18:13:25 muvtuber-muvtuberdriver-1     | 2023/06/01 10:13:25 INFO [PrioritizedChatbot] Chat(繁星Starry_Q): "你好"
2023-06-01 18:13:25 muvtuber-muvtuberdriver-1     | 2023/06/01 10:13:25 INFO [chatbot] SessionClient Chat: got textIn: chatbotName=ChatGPTChatbot textin=你好
2023-06-01 18:13:25 muvtuber-live2ddriver-1       | 2023/06/01 10:13:25 INFO fwd msg: {"motion":"idle"} -> http://localhost:51070 (chan 0xc00009c1e0).
2023-06-01 18:13:25 muvtuber-muvtuberdriver-1     | 2023/06/01 10:13:25 INFO [chatbot] SessionClient Chat: NewClient created. chatbot=ChatGPTChatbot addr=chatgpt_chatbot:50052
2023-06-01 18:13:25 muvtuber-muvtuberdriver-1     | 2023/06/01 10:13:25 WARN [chatbot] ChatGPTChatbot Chat() failed. The SessionClient will be released if successive failures: serAddr=chatgpt_chatbot:50052 failures=0/3 err=NewSession(addr=chatgpt_chatbot:50052) failed: rpc error: code = Unknown desc = Exception calling application: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /encodings/cl100k_base.tiktoken (Caused by ProxyError('Cannot connect to proxy.', NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7fa8f622a2f0>: Failed to establish a new connection: [Errno -2] Name or service not known')))
2023-06-01 18:13:25 muvtuber-muvtuberdriver-1     | 2023/06/01 10:13:25 WARN [PrioritizedChatbot] *chatbot.chatGPTChatbot.Chat(&{繁星Starry_Q 你好 2}) failed: Chat() failed. The SessionClient will be released if successive failures: serAddr=chatgpt_chatbot:50052 failures=0/3 err=NewSession(addr=chatgpt_chatbot:50052) failed: rpc error: code = Unknown desc = Exception calling application: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /encodings/cl100k_base.tiktoken (Caused by ProxyError('Cannot connect to proxy.', NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7fa8f622a2f0>: Failed to establish a new connection: [Errno -2] Name or service not known'))), try next chatbot
2023-06-01 18:13:25 muvtuber-muvtuberdriver-1     | 2023/06/01 10:13:25 INFO [chatbot] SessionClient Chat: got textIn: chatbotName=MusharingChatbot textin=你好
2023-06-01 18:13:25 muvtuber-muvtuberdriver-1     | 2023/06/01 10:13:25 INFO [chatbot] SessionClient Chat: NewClient created. chatbot=MusharingChatbot addr=musharing_chatbot:50051
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    | ERROR:grpc._server:Exception calling application: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /encodings/cl100k_base.tiktoken (Caused by ProxyError('Cannot connect to proxy.', NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7fa8f622a2f0>: Failed to establish a new connection: [Errno -2] Name or service not known')))
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    | Traceback (most recent call last):
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    |   File "/usr/local/lib/python3.10/site-packages/urllib3/connection.py", line 174, in _new_conn
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    |     conn = connection.create_connection(
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    |   File "/usr/local/lib/python3.10/site-packages/urllib3/util/connection.py", line 72, in create_connection
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    |     for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    |   File "/usr/local/lib/python3.10/socket.py", line 955, in getaddrinfo
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    |     for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    | socket.gaierror: [Errno -2] Name or service not known
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    | 
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    | During handling of the above exception, another exception occurred:
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    | 
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    | Traceback (most recent call last):
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    |   File "/usr/local/lib/python3.10/site-packages/urllib3/connectionpool.py", line 700, in urlopen
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    |     self._prepare_proxy(conn)
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    |   File "/usr/local/lib/python3.10/site-packages/urllib3/connectionpool.py", line 996, in _prepare_proxy
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    |     conn.connect()
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    |   File "/usr/local/lib/python3.10/site-packages/urllib3/connection.py", line 363, in connect
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    |     self.sock = conn = self._new_conn()
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    |   File "/usr/local/lib/python3.10/site-packages/urllib3/connection.py", line 186, in _new_conn
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    |     raise NewConnectionError(
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    | urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPSConnection object at 0x7fa8f622a2f0>: Failed to establish a new connection: [Errno -2] Name or service not known
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    | 
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    | During handling of the above exception, another exception occurred:
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    | 
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    | Traceback (most recent call last):
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    |   File "/usr/local/lib/python3.10/site-packages/requests/adapters.py", line 489, in send
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    |     resp = conn.urlopen(
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    |   File "/usr/local/lib/python3.10/site-packages/urllib3/connectionpool.py", line 787, in urlopen
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    |     retries = retries.increment(
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    |   File "/usr/local/lib/python3.10/site-packages/urllib3/util/retry.py", line 592, in increment
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    |     raise MaxRetryError(_pool, url, error or ResponseError(cause))
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    | urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /encodings/cl100k_base.tiktoken (Caused by ProxyError('Cannot connect to proxy.', NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7fa8f622a2f0>: Failed to establish a new connection: [Errno -2] Name or service not known')))
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    | 
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    | During handling of the above exception, another exception occurred:
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    | 
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    | Traceback (most recent call last):
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    |   File "/usr/local/lib/python3.10/site-packages/grpc/_server.py", line 444, in _call_behavior
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    |     response_or_iterator = behavior(argument, context)
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    |   File "/app/chatgpt/grpcapi.py", line 37, in NewSession
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    |     session_id = self.multiChatGPT.new_session(config)
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    |   File "/app/chatgpt/chatbot.py", line 289, in new_session
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    |     self.chatgpts[session_id] = ChatGPTProxy(
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    |   File "/app/chatgpt/chatbot.py", line 189, in __init__
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    |     self.renew()
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    |   File "/app/chatgpt/chatbot.py", line 193, in renew
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    |     self.chatgpt = self._new_chatgpt(self.config)
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    |   File "/app/chatgpt/chatbot.py", line 207, in _new_chatgpt
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    |     new_chatgpt = ChatGPTv3(config={
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    |   File "/app/chatgpt/chatbot.py", line 94, in __init__
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    |     self.chatbot = ChatbotV3(
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    |   File "/usr/local/lib/python3.10/site-packages/revChatGPT/V3.py", line 68, in __init__
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    |     if self.get_token_count("default") > self.max_tokens:
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    |   File "/usr/local/lib/python3.10/site-packages/revChatGPT/V3.py", line 116, in get_token_count
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    |     encoding = tiktoken.encoding_for_model(self.engine)
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    |   File "/usr/local/lib/python3.10/site-packages/tiktoken/model.py", line 75, in encoding_for_model
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    |     return get_encoding(encoding_name)
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    |   File "/usr/local/lib/python3.10/site-packages/tiktoken/registry.py", line 63, in get_encoding
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    |     enc = Encoding(**constructor())
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    |   File "/usr/local/lib/python3.10/site-packages/tiktoken_ext/openai_public.py", line 64, in cl100k_base
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    |     mergeable_ranks = load_tiktoken_bpe(
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    |   File "/usr/local/lib/python3.10/site-packages/tiktoken/load.py", line 114, in load_tiktoken_bpe
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    |     contents = read_file_cached(tiktoken_bpe_file)
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    |   File "/usr/local/lib/python3.10/site-packages/tiktoken/load.py", line 46, in read_file_cached
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    |     contents = read_file(blobpath)
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    |   File "/usr/local/lib/python3.10/site-packages/tiktoken/load.py", line 24, in read_file
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    |     return requests.get(blobpath).content
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    |   File "/usr/local/lib/python3.10/site-packages/requests/api.py", line 73, in get
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    |     return request("get", url, params=params, **kwargs)
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    |   File "/usr/local/lib/python3.10/site-packages/requests/api.py", line 59, in request
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    |     return session.request(method=method, url=url, **kwargs)
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    |   File "/usr/local/lib/python3.10/site-packages/requests/sessions.py", line 587, in request
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    |     resp = self.send(prep, **send_kwargs)
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    |   File "/usr/local/lib/python3.10/site-packages/requests/sessions.py", line 701, in send
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    |     r = adapter.send(request, **kwargs)
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    |   File "/usr/local/lib/python3.10/site-packages/requests/adapters.py", line 559, in send
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    |     raise ProxyError(e, request=request)
2023-06-01 18:13:25 muvtuber-chatgpt_chatbot-1    | requests.exceptions.ProxyError: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /encodings/cl100k_base.tiktoken (Caused by ProxyError('Cannot connect to proxy.', NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7fa8f622a2f0>: Failed to establish a new connection: [Errno -2] Name or service not known')))
2023-06-01 18:13:26 muvtuber-musharing_chatbot-1  | 2023-06-01 10:13:26 INFO [root]: ChatbotGrpcServer.NewSession: (OK) session_id=52a11990-1145-4af0-91c7-0e9eff509b7e
2023-06-01 18:13:26 muvtuber-muvtuberdriver-1     | 2023/06/01 10:13:26 INFO [chatbot] SessionClient Chat: NewSession created. chatbot=MusharingChatbot addr=musharing_chatbot:50051 sessionID=52a11990-1145-4af0-91c7-0e9eff509b7e
2023-06-01 18:13:26 muvtuber-musharing_chatbot-1  | 2023-06-01 10:13:26 INFO [chatterbot.response_selection]: Selecting first response from list of 4 options.
2023-06-01 18:13:26 muvtuber-musharing_chatbot-1  | 2023-06-01 10:13:26 INFO [root]: ChatbotGrpcServer.Chat: (OK) 你好
2023-06-01 18:13:26 muvtuber-muvtuberdriver-1     | 2023/06/01 10:13:26 INFO [chatbot] SessionClient Chat success. chatbot=MusharingChatbot sessionID=52a1199... textin=你好 textout=你好
2023-06-01 18:13:26 muvtuber-muvtuberdriver-1     | 2023/06/01 10:13:26 INFO [PrioritizedChatbot] Chat(繁星Starry_Q): "你好" => (MusharingChatbot): "你好"
2023-06-01 18:13:30 muvtuber-muvtuberdriver-1     | 2023/06/01 10:13:30 INFO [PriorityReduceFilter] outputMaxPriorityOne boost Priority -> Highest author=MusharingChatbot content=你好 priority=2
2023-06-01 18:13:30 muvtuber-muvtuberdriver-1     | 2023/06/01 10:13:30 INFO [textOut] author=MusharingChatbot priority=2 content=你好
2023-06-01 18:13:30 muvtuber-emotext-1            | Building prefix dict from the default dictionary ...
2023-06-01 18:13:30 muvtuber-emotext-1            | Loading model from cache /tmp/jieba.cache
2023-06-01 18:13:30 muvtuber-emotext-1            | Loading model cost 0.454 seconds.
2023-06-01 18:13:30 muvtuber-emotext-1            | Prefix dict has been built successfully.
2023-06-01 18:13:30 muvtuber-live2ddriver-1       | 2023/06/01 10:13:30 INFO fwd msg: {} -> http://localhost:51070 (chan 0xc00009c1e0).
2023-06-01 18:13:30 muvtuber-live2ddriver-1       | 2023/06/01 10:13:30 INFO fwd msg: {"motion":"flick_head"} -> http://localhost:51070 (chan 0xc00009c1e0).
2023-06-01 18:13:30 muvtuber-muvtuberdriver-1     | 2023/06/01 10:13:30 INFO [audioController] sendPlayCmd to audioview cmd=playVocal track=d41d8cd...
2023-06-01 18:14:00 muvtuber-live2ddriver-1       | 2023/06/01 10:14:00 INFO fwd msg: {"motion":"idle"} -> http://localhost:51070 (chan 0xc00009c1e0).
2023-06-01 18:14:00 muvtuber-muvtuberdriver-1     | 2023/06/01 10:14:00 INFO [allInOneSayer] say: done. text=你好

使用go执行go run时报错

D:\AI Vtuber\muvtuberdriver>go run . -chatgpt_access_token='ey***HA' -chatgpt_prompt="请扮演一个正在直播的 vtuber,之后我的输入均为用户评论,用简短的一句话回答它们" -roomid 000000 -reduce_duration=2s
2023/03/08 18:44:58 start receiving text from room 0
2023/03/08 18:45:00 websocket dial error: websocket.Dial ws://localhost:12450/api/chat: dial tcp [::1]:12450: connectex: No connection could be made because the target machine actively refused it.
2023/03/08 18:45:00 NewMusharingChatbot ping failed: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing: dial tcp [::1]:50051: connectex: No connection could be made because the target machine actively refused it."
2023/03/08 18:45:00 rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing: dial tcp [::1]:50051: connectex: No connection could be made because the target machine actively refused it."
exit status 1

D:\AI Vtuber\muvtuberdriver>
我是个新手什么都不懂qwq

chatbots: opt in

不强制要求使用 chatgpt_chatbot + musharing_chatbot。

有助于解决网络环境不好导致无法启动的问题: #30#22

使用poetry运行emotext报错

D:\AI Vtuber\emotext>poetry run python emotext/httpapi.py --port 9003
[emotext] pkl file unavailable, loading words from D:\AI Vtuber\emotext\emotext\data\dict.csv...
Traceback (most recent call last):
File "D:\AI Vtuber\emotext\emotext\httpapi.py", line 61, in
server = EmotextServer(host=args.host, port=args.port)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\AI Vtuber\emotext\emotext\httpapi.py", line 25, in init
self.emotext = Emotions()
^^^^^^^^^^
File "D:\AI Vtuber\emotext\emotext\emotext.py", line 160, in init
self._words_from_dict()
File "D:\AI Vtuber\emotext\emotext\emotext.py", line 168, in _words_from_dict
self._read_dict(f)
File "D:\AI Vtuber\emotext\emotext\emotext.py", line 172, in _read_dict
reader.next() # skip header
^^^^^^^^^^^^^^^^^
UnicodeDecodeError: 'gbk' codec can't decode byte 0xaf in position 4: illegal multibyte sequence

D:\AI Vtuber\emotext>

Cant get back audio TTS from Azure (audioview)

Hello,
I can't get audio. ChatGPT answers me correctly. I can't figure out where to see if the response to Azure and if it responds with some error.
same for the live2d of course
Any suggestions?

Here are the logs

Main Logs

muvtuber-live2ddriver-1       | 2023/05/26 18:29:54 WARN may be a OpenMouth after emo-motion, ignore: {"motion":"flick_head"}
muvtuber-muvtuberdriver-1     | 2023/05/26 18:29:54 INFO [allInOneSayer] say: done. text="Hello! A...u today?"
muvtuber-muvtuberdriver-1     | 2023/05/26 18:29:54 INFO [audioController] sendPlayCmd to audioview cmd=playVocal track=d41d8cd...
muvtuber-muvtuberdriver-1     | 2023/05/26 18:30:24 INFO [allInOneSayer] say: done. text="hi! how are you?"
muvtuber-muvtuberdriver-1     | 2023/05/26 18:30:24 INFO [PrioritizedChatbot] Chat(il_nikk): "hi! how are you?"
muvtuber-muvtuberdriver-1     | 2023/05/26 18:30:24 INFO [chatbot] SessionClient Chat: got textIn: chatbotName=ChatGPTChatbot textin="hi! ...you?"
muvtuber-chatgpt_chatbot-1    | INFO:root:ChatGPTgRPCServer.Chat: (OK) Hello! As an AI language model, I don't have emotions, but I'm functioning well. How can I assist you today?
muvtuber-muvtuberdriver-1     | 2023/05/26 18:30:28 INFO [chatbot] SessionClient Chat success. chatbot=ChatGPTChatbot sessionID=66b4b5a... textin="hi! ...you?" textout=Hell...day?
muvtuber-muvtuberdriver-1     | 2023/05/26 18:30:28 INFO [PrioritizedChatbot] Chat(il_nikk): "hi! how are you?" => (ChatGPTChatbot): "Hello! As an AI language model, I don't have emotions, but I'm functioning well. How can I assist you today?"
muvtuber-muvtuberdriver-1     | 2023/05/26 18:30:29 INFO [PriorityReduceFilter] outputMaxPriorityOne boost Priority -> Highest author=ChatGPTChatbot content="Hello! ... today?" priority=2
muvtuber-muvtuberdriver-1     | 2023/05/26 18:30:29 INFO [textOut] author=ChatGPTChatbot priority=2 content="Hello! As an AI language model, I don't have emotions, but I'm functioning well. How can I assist you today?"
muvtuber-muvtuberdriver-1     | 2023/05/26 18:30:29 INFO [audioController] sendPlayCmd to audioview cmd=playVocal track=d41d8cd...
muvtuber-muvtuberdriver-1     | 2023/05/26 18:30:59 INFO [allInOneSayer] say: done. text="Hello! A...u today?"

muvtubedriver

2023/05/26 18:37:24 INFO [PrioritizedChatbot] Chat(il_nikk): "hi! how are you?"
2023/05/26 18:37:24 INFO [chatbot] SessionClient Chat: got textIn: chatbotName=ChatGPTChatbot textin="hi! ...you?"
2023/05/26 18:37:28 INFO [chatbot] SessionClient Chat success. chatbot=ChatGPTChatbot sessionID=66b4b5a... textin="hi! ...you?" textout=Hell...day?
2023/05/26 18:37:28 INFO [PrioritizedChatbot] Chat(il_nikk): "hi! how are you?" => (ChatGPTChatbot): "Hello! As an AI language model, I don't have emotions, but I'm functioning well. How can I assist you today?"
2023/05/26 18:37:29 INFO [PriorityReduceFilter] outputMaxPriorityOne boost Priority -> Highest author=ChatGPTChatbot content="Hello! ... today?" priority=2
2023/05/26 18:37:29 INFO [textOut] author=ChatGPTChatbot priority=2 content="Hello! As an AI language model, I don't have emotions, but I'm functioning well. How can I assist you today?"
2023/05/26 18:37:29 INFO [audioController] sendPlayCmd to audioview cmd=playVocal track=d41d8cd...
2023/05/26 18:37:59 INFO [allInOneSayer] say: done. text="Hello! A...u today?"

externalsayer

2023/05/26 18:27:48 INFO gRPC API server started. addr=localhost:50010 sayer=*azuresayer.AzureSayer pid=1

musharing_chatbot

2023-05-26 18:27:48 INFO [root]: gRPC reflection enabled.

audioview

/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
/docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
/docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
10-listen-on-ipv6-by-default.sh: info: IPv6 listen already enabled
/docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
/docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
/docker-entrypoint.sh: Configuration complete; ready for start up
172.18.0.1 - - [26/May/2023:18:29:35 +0000] "GET /?controller=ws://127.0.0.1:51081 HTTP/1.1" 200 467 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 OBS/29.1.1 Safari/537.36" "-"
172.18.0.1 - - [26/May/2023:18:29:35 +0000] "GET /assets/index-80b45ff1.js HTTP/1.1" 200 93145 "http://127.0.0.1:51082/?controller=ws://127.0.0.1:51081" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 OBS/29.1.1 Safari/537.36" "-"
172.18.0.1 - - [26/May/2023:18:29:35 +0000] "GET /assets/index-1583fd6e.css HTTP/1.1" 200 1133 "http://127.0.0.1:51082/?controller=ws://127.0.0.1:51081" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 OBS/29.1.1 Safari/537.36" "-"

安装blivechat时使用npm install出现报错

日志:
`
D:\AI Vtuber\blivechat\frontend>npm install
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: '@achrinza/[email protected]',
npm WARN EBADENGINE required: { node: '8 || 10 || 12 || 14 || 16 || 17' },
npm WARN EBADENGINE current: { node: 'v18.14.1', npm: '9.3.1' }
npm WARN EBADENGINE }
npm WARN deprecated [email protected]: Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility
npm WARN deprecated [email protected]: See https://github.com/lydell/source-map-url#deprecated
npm WARN deprecated [email protected]: The querystring API is considered Legacy. new code should use the URLSearchParams API instead.
npm WARN deprecated [email protected]: Please see https://github.com/lydell/urix#deprecated
npm WARN deprecated [email protected]: this library is no longer supported
npm WARN deprecated [email protected]: https://github.com/lydell/resolve-url#deprecated
npm WARN deprecated [email protected]: See https://github.com/lydell/source-map-resolve#deprecated
npm WARN deprecated @hapi/[email protected]: This version has been deprecated and is no longer supported or maintained
npm WARN deprecated @hapi/[email protected]: This version has been deprecated and is no longer supported or maintained
npm WARN deprecated [email protected]: This loader has been deprecated. Please use eslint-webpack-plugin
npm WARN deprecated [email protected]: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.
npm WARN deprecated [email protected]: 3.x is no longer supported
npm WARN deprecated @hapi/[email protected]: Moved to 'npm install @sideway/address'
npm WARN deprecated [email protected]: Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies
npm WARN deprecated [email protected]: request has been deprecated, see request/request#3142
npm WARN deprecated [email protected]: babel-eslint is now @babel/eslint-parser. This package will no longer receive updates.
npm WARN deprecated [email protected]: Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies
npm WARN deprecated @hapi/[email protected]: This version has been deprecated and is no longer supported or maintained
npm WARN deprecated @hapi/[email protected]: Switch to 'npm install joi'
npm WARN deprecated [email protected]: This SVGO version is no longer supported. Upgrade to v2.x.x.
npm WARN deprecated [email protected]: core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.

added 1387 packages in 1m

D:\AI Vtuber\blivechat\frontend>
`

设置了代理chatgpt依然报错

ChatGPTChatbot.chat get session error: rpc error: code = Unknown desc = Exception calling application: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /encodings/cl100k_base.tiktoken (Caused by ProxyError('Cannot connect to proxy.', NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7f2d081589d0>: Failed to establish a new connection: [Errno 111] Connection refused')))

Suggestion for filtering emoji on ChatGPT responses

ChatGPT responses are annoying when there are emojis.
I made changes to filter emojis on answers.

chatgpt_chatbot/chatgpt/chatbot.py: import re, filter_emoji() function

# added for emoji filter
import re

def filter_emoji(text): # emoji filter definition
    emoji_pattern = re.compile("["
        u"\U0001F600-\U0001F64F" 
        u"\U0001F300-\U0001F5FF"  
        u"\U0001F680-\U0001F6FF"  
        u"\U0001F1E0-\U0001F1FF"  
        u"\U00002500-\U00002BEF"  
        u"\U00002702-\U000027B0"
        u"\U00002702-\U000027B0"
        u"\U000024C2-\U0001F251"
        u"\U0001f926-\U0001f937"
        u"\U00010000-\U0010ffff"
        u"\u2640-\u2642"
        u"\u2600-\u2B55"
        u"\u200d"
        u"\u23cf"
        u"\u23e9"
        u"\u231a"
        u"\ufe0f"
        u"\u3030"
        "]+", flags=re.UNICODE)
    filtered_text = emoji_pattern.sub(r'', text)
    return filtered_text 

chatgpt_chatbot/chatgpt/chatbot.py: ask() return updated

    def ask(self, session_id, prompt, **kwargs) -> str:  # raises Exception
        """Ask ChatGPT with prompt, return response text

        - session_id: unused

        Raises:
            ChatGPTError: ChatGPT error
        """
        response: str | None = None

        try:
            with self.lock:
                response = self.chatbot.ask(prompt)
        except Exception as e:
            logging.warning(f"ChatGPT ask error: {e}")
            raise ChatGPTError(str(e))

        if not response:
            raise ChatGPTError("ChatGPT response is None")

        filteredemoji_resp = filter_emoji(response) #filter emoji on response
        return filteredemoji_resp #return filtered message

A nice idea would be to then take the filtered emoji and send them to live2ddriver as instructions for expressions or movements!

Suggestions are welcome 😃

迁移到 RaSan147/pixi-live2d-display?

RaSan147/pixi-live2d-display 实现了 Lip Sync。直接用这个来说话?

使用这个反正需要一些重构,,所以好像就可以直接快进到 muli 了耶 🎉:

一个前端(muliui)  : live2dview += audioview         (spa)
         ^
  (ws)   | expression, motion, audio, text, bgm
         v
一个后端(mulicore): muvtuberdriver += live2ddriver  (chan -> mq)
         ^          ^         ^         ^       ^        ^
  (rpc)  | textIn   | textOut | emotion | audio | bgm    | expression, motion
         v          v         v         v       v        v
周边服务: blivechat, chatbot,  emotext,  sayer,  murecom, emolive2d
                                               (new)    (new)

我在Mac上用shadow racket代理可以访问chatgpt,我应该怎么设置docker才能让docker走shadowracket代理访问chatgpt?

2023-06-05 22:01:07
2023-06-05 22:01:07 During handling of the above exception, another exception occurred:
2023-06-05 22:01:07
2023-06-05 22:01:07 Traceback (most recent call last):
2023-06-05 22:01:07 File "/usr/local/lib/python3.10/site-packages/requests/adapters.py", line 489, in send
2023-06-05 22:01:07 resp = conn.urlopen(
2023-06-05 22:01:07 File "/usr/local/lib/python3.10/site-packages/urllib3/connectionpool.py", line 787, in urlopen
2023-06-05 22:01:07 retries = retries.increment(
2023-06-05 22:01:07 File "/usr/local/lib/python3.10/site-packages/urllib3/util/retry.py", line 592, in increment
2023-06-05 22:01:07 raise MaxRetryError(_pool, url, error or ResponseError(cause))
2023-06-05 22:01:07 urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /encodings/cl100k_base.tiktoken (Caused by ProxyError('Cannot connect to proxy.', NewConnectionError('<urllib3.connection.HTTPSConnection object at 0xffffa80f2230>: Failed to establish a new connection: [Errno -2] Name or service not known')))
2023-06-05 22:01:07
2023-06-05 22:01:07 During handling of the above exception, another exception occurred:
2023-06-05 22:01:07
2023-06-05 22:01:07 Traceback (most recent call last):
2023-06-05 22:01:07 File "/usr/local/lib/python3.10/site-packages/grpc/_server.py", line 444, in _call_behavior
2023-06-05 22:01:07 response_or_iterator = behavior(argument, context)
2023-06-05 22:01:07 File "/app/chatgpt/grpcapi.py", line 37, in NewSession
2023-06-05 22:01:07 session_id = self.multiChatGPT.new_session(config)
2023-06-05 22:01:07 File "/app/chatgpt/chatbot.py", line 289, in new_session
2023-06-05 22:01:07 self.chatgpts[session_id] = ChatGPTProxy(
2023-06-05 22:01:07 File "/app/chatgpt/chatbot.py", line 189, in init
2023-06-05 22:01:07 self.renew()
2023-06-05 22:01:07 File "/app/chatgpt/chatbot.py", line 193, in renew
2023-06-05 22:01:07 self.chatgpt = self._new_chatgpt(self.config)
2023-06-05 22:01:07 File "/app/chatgpt/chatbot.py", line 207, in _new_chatgpt
2023-06-05 22:01:07 new_chatgpt = ChatGPTv3(config={
2023-06-05 22:01:07 File "/app/chatgpt/chatbot.py", line 94, in init
2023-06-05 22:01:07 self.chatbot = ChatbotV3(
2023-06-05 22:01:07 File "/usr/local/lib/python3.10/site-packages/revChatGPT/V3.py", line 68, in init
2023-06-05 22:01:07 if self.get_token_count("default") > self.max_tokens:
2023-06-05 22:01:07 File "/usr/local/lib/python3.10/site-packages/revChatGPT/V3.py", line 116, in get_token_count
2023-06-05 22:01:07 encoding = tiktoken.encoding_for_model(self.engine)
2023-06-05 22:01:07 File "/usr/local/lib/python3.10/site-packages/tiktoken/model.py", line 75, in encoding_for_model
2023-06-05 22:01:07 return get_encoding(encoding_name)
2023-06-05 22:01:07 File "/usr/local/lib/python3.10/site-packages/tiktoken/registry.py", line 63, in get_encoding
2023-06-05 22:01:07 enc = Encoding(**constructor())
2023-06-05 22:01:07 File "/usr/local/lib/python3.10/site-packages/tiktoken_ext/openai_public.py", line 64, in cl100k_base
2023-06-05 22:01:07 mergeable_ranks = load_tiktoken_bpe(
2023-06-05 22:01:07 File "/usr/local/lib/python3.10/site-packages/tiktoken/load.py", line 114, in load_tiktoken_bpe
2023-06-05 22:01:07 contents = read_file_cached(tiktoken_bpe_file)
2023-06-05 22:01:07 File "/usr/local/lib/python3.10/site-packages/tiktoken/load.py", line 46, in read_file_cached
2023-06-05 22:01:07 contents = read_file(blobpath)
2023-06-05 22:01:07 File "/usr/local/lib/python3.10/site-packages/tiktoken/load.py", line 24, in read_file
2023-06-05 22:01:07 return requests.get(blobpath).content
2023-06-05 22:01:07 File "/usr/local/lib/python3.10/site-packages/requests/api.py", line 73, in get
2023-06-05 22:01:07 return request("get", url, params=params, **kwargs)
2023-06-05 22:01:07 File "/usr/local/lib/python3.10/site-packages/requests/api.py", line 59, in request
2023-06-05 22:01:07 return session.request(method=method, url=url, **kwargs)
2023-06-05 22:01:07 File "/usr/local/lib/python3.10/site-packages/requests/sessions.py", line 587, in request
2023-06-05 22:01:07 resp = self.send(prep, **send_kwargs)
2023-06-05 22:01:07 File "/usr/local/lib/python3.10/site-packages/requests/sessions.py", line 701, in send
2023-06-05 22:01:07 r = adapter.send(request, **kwargs)
2023-06-05 22:01:07 File "/usr/local/lib/python3.10/site-packages/requests/adapters.py", line 559, in send
2023-06-05 22:01:07 raise ProxyError(e, request=request)
2023-06-05 22:01:07 requests.exceptions.ProxyError: HTTPSConnectionPool(host='openaipublic.blob.core.windows.net', port=443): Max retries exceeded with url: /encodings/cl100k_base.tiktoken (Caused by ProxyError('Cannot connect to proxy.', NewConnectionError('<urllib3.connection.HTTPSConnection object at 0xffffa80f2230>: Failed to establish a new connection: [Errno -2] Name or service not known')))

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.