Roles.json
`{
"1": {
"start_text": "嘴臭机器人来咯",
"prompt": "不管我说啥,请你都把我说的话重复一遍!Exact match!!",
"max_message_count":10
},
"2": {
"start_text": "翻译机器人来咯",
"prompt": "Translate all my query into english without further interactions with me. Remeber you are a translator!",
"max_message_count":10
},
"3": {
"start_text": "翻译机器人来咯",
"prompt": "Translate all my query into english without further interactions with me. Remeber you are a translator!",
"max_message_count":10
}
目录
![image](https://github.com/FoloToy/folotoy-server-self-hosting/assets/42703707/9a8b53b5-276e-439f-b64f-e785b6068551)
Roles.json `{ "1": { "start_text": "嘴臭机器人来咯", "prompt": "不管我说啥,请你都把我说的话重复一遍!Exact match!!", "max_message_count":10 }, "2": { "start_text": "翻译机器人来咯", "prompt": "Translate all my query into english without further interactions with me. Remeber you are a translator!", "max_message_count":10 }, "3": { "start_text": "翻译机器人来咯", "prompt": "Translate all my query into english without further interactions with me. Remeber you are a translator!", "max_message_count":10 }
}`
Compose.yml `version: '3' volumes: emqx-etc: emqx-data: emqx-log: services: emqx: image: emqx/emqx:latest restart: always ports:
./config:/config environment: TZ: Asia/Shanghai
LOG_LEVEL: DEBUG
ROLES_FILE_PATH: /config/roles.json
Default STT(Sound To Text) type
Options: [openai-whisper, azure-whisper, azure-stt, dify-stt, aliyun-asr]
STT_TYPE: openai-whisper
OpenAI Whisper
OPENAI_WHISPER_API_BASE: https://one-api.xxxx.com/v1
OPENAI_WHISPER_KEY: XXXX(隐藏) OPENAI_WHISPER_MODEL: whisper-1
Azure Whisper
AZURE_WHISPER_API_BASE: https://xxxxx.openai.azure.com AZURE_WHISPER_KEY: 9afbef65bcf6487eeeeeeeeeeeeeeeeeee AZURE_WHISPER_DEPLOYMENT_NAME: whisper AZURE_WHISPER_API_VERSION: 2023-09-01-preview
Azure STT
AZURE_STT_KEY: 3eba91b6143f4d3eeeeeeeeeeeeeeeeeeeeeeeee AZURE_STT_SERVICE_REGION: eastasia
Dify STT
DIFY_STT_API_BASE: https://api.dify.ai/v1 DIFY_STT_KEY: app-xxxxxxxxxxxxxxxxxxxxx
Aliyun ASR
ALIYUN_ASR_ACCESS_KEY_ID: LTxxxxxxxxxxxxxxxxxxxxx ALIYUN_ASR_ACCESS_KEY_SECRET: 3zWkHVxxxxxxxxxxxxxxxxxxxxx ALIYUN_ASR_APP_KEY: Ltamxxxxxxxxxxxxxxxxxxxxx
Default LLM(Large Language Model) type
Options: ['openai', 'azure-openai', 'gemini', 'dify', 'qianfan', 'xiaodu',
'ollama', 'groq', 'moonshot', 'anthropic', 'zhipu', 'lingyiwanwu',
'dashscope', 'spark-desk', 'minimax', 'aws-bedrock']
LLM_TYPE: openai
OpenAI
OPENAI_OPENAI_API_BASE: https://one-api.xxx.com/v1
OPENAI_OPENAI_MODEL: gpt-3.5-turbo
OPENAI_OPENAI_KEY: (隐藏)
Azure OpenAI
AZURE_OPENAI_KEY: ef0f2781b5a24b15baaaaaaaaaaaaaaaaaaaaaaa AZURE_OPENAI_ENDPOINT: https://xxxxx.openai.azure.com/ AZURE_OPENAI_API_VERSION: "2023-05-15"
AZURE_OPENAI_MODEL: gpt-35-turbo
DIFY
DIFY_API_BASE: https://api.dify.ai/v1 DIFY_KEY: app-5YGbxxxxxxxxxxxxxxxxxxxxx
Xiaodu API
XIAODU_CLIENT_ID: xxxxxxxxxxxxxxxxxx XIAODU_SECRET: xxxxxxxxxxxxxxxxxxxxx
GEMINI
GEMINI_KEY: AIzaSyxxxxxxxxxxxxxxxxxxk
Qianfan
QIANFAN_CLIENT_ID: 13rBTgxxxxxxxxxxxxxxxxxx QIANFAN_SECRET: zYxtMIQLexxxxxxxxxxxxxxxxxx
Moonshot
MOONSHOT_API_BASE: https://api.moonshot.cn/v1 MOONSHOT_KEY: sk-XCLMlj54GDTxxxx MOONSHOT_MODEL: moonshot-v1-8k
Aliyun Dashscope
DASHSCOPE_KEY: sk-f4x DASHSCOPE_MODEL: qwen-turbo DASHSCOPE_ENABLE_SEARCH: true
Lingyiwanwu
LINGYIWANWU_KEY: 4b2f584b4x LINGYIWANWU_MODEL: yi-34b-chat-200k
Zhipu
ZHIPU_KEY: 4544625bb0d0ax
ZHIPU_MODEL=glm-3-turbo
Spark Desk
SPARK_DESK_API_VERSION: v2.0 SPARK_DESK_APP_ID: d2c1xxxxxxxxxxx SPARK_DESK_API_KEY: 10610b3xxxxxxx SPARK_DESK_API_SECRET: N2I5xxxxxxxxx SPARK_DESK_TEMPERATURE: 0.7 SPARK_DESK_MAX_TOKENS: 4096
MINIMAX
MINIMAX_KEY: eyJhbGciOiJSUzI1NiIsInRxxxxxxxxxxxxxxx
AWS Bedrock
AWS_BEDROCK_ACCESS_KEY_ID: AKIAQLJIxxxxxxxxxxxxxxxxxxx AWS_BEDROCK_ACCESS_KEY_SECRET: ss07ojxxW/X7YHZkxxxxxxxxxx AWS_BEDROCK_MODEL: anthropic.claude-v2:1
FastGPT
FASTGPT_KEY: here-is-app-key-not-account-key
FASTGPT_API_BASE: https://api.fastgpt.in/api
FASTGPT_CHAT_ID: xxx
If your elevenlabs is a free account, keep 2 here
VOICE_EXECUTOR_MAX_WORKERS: 2
Default TTS(Text to Sound) type
Options: [openai-tts, azure-openai-tts, azure-tts, dify-tts, elevenlabs, edge-tts, aliyun-tts]
edge-tts is Free but slow
TTS_TYPE: openai-tts
Azure TTS
AZURE_TTS_KEY: 3eba91b6143f4d399edeeeeeeeeeeeeeeeeeeeee AZURE_TTS_SERVICE_REGION: eastasia
elevenlabs
ELEVENLABS_TTS_KEY: a920b73991e68d5c9c9aaaaaaaaaaaaaaaa ELEVENLABS_TTS_MODEL: eleven_multilingual_v2
OpenAI TTS
OPENAI_TTS_KEY: (隐藏) OPENAI_TTS_MODEL: tts-1
Aliyun TTS
ALIYUN_TTS_ACCESS_KEY_ID: LTAI5t91NSxxxxxxxxxxxxxxxxxxxxx ALIYUN_TTS_ACCESS_KEY_SECRET: 3zWkHVxxxxxxxxxxxxxxxxxxxxx ALIYUN_TTS_APP_KEY: Ltamxxxxxxxxxxxxx
Azure Openai TTS
AZURE_OPENAI_TTS_API_BASE: https://xxx-whisper.openai.azure.com/ AZURE_OPENAI_TTS_API_VERSION: 2024-02-15-preview AZURE_OPENAI_TTS_DEPLOYMENT_NAME: tts AZURE_OPENAI_TTS_KEY: 01fdbc75bdxxxxxx AZURE_OPENAI_TTS_MODEL: tts-1
Dify TTS
DIFY_TTS_API_BASE: https://api.dify.ai/v1 DIFY_TTS_KEY: app-5YGbAx
AUDIO_DOWNLOAD_URL: http://34.80.101.157:8082 AUDIO_SAVE_PATH: /audio
MQTT Broker
MQTT_BROKER_HOST: emqx MQTT_BROKER_PORT: 1883 MQTT_CLIENT_ID: folotoy MQTT_USERNAME: folotoy MQTT_PASSWORD: folotoy
SPEECH_UDP_SERVER_HOST: 34.80.101.157 SPEECH_UDP_SERVER_PORT: 8085 ` Error Code 2024-04-03 00:38:51,741 - INFO - Sleep 2s to reconnect to emqx:1883 2024-04-03 00:38:53,743 - INFO - Speech server started(0.0.0.0:8085/udp) 2024-04-03 00:38:53,756 - INFO - Connected to MQTT Broker(emqx:1883)! 2024-04-03 00:40:22,824 - DEBUG - Received /user/folotoy/24dcc3cf6674/thing/event/post: message data: {'msgId': 0, 'identifier': 'login', 'outParams': {'role': 1}} 2024-04-03 00:40:22,825 - DEBUG - Publish topic: /user/folotoy/24dcc3cf6674/thing/command/call, msg: {"msgId": 0, "identifier": "updatetoken", "inputParams": {"token": "eded66404a1e43b9b088735b4c56edfe"}} 2024-04-03 00:40:22,825 - DEBUG - Publish topic: /user/folotoy/24dcc3cf6674/thing/command/call, msg: {"msgId": 1, "identifier": "updateconfig", "inputParams": {"speechUdpServerHost": "34.80.101.157", "speechUdpServerPort": 8085}} 2024-04-03 00:40:23,599 - DEBUG - Received /user/folotoy/24dcc3cf6674/thing/command/callAck: message data: {'msgId': 0, 'identifier': 'updatetoken', 'result': 1} 2024-04-03 00:40:23,599 - DEBUG - Command call ack: True, topic_tokens: {'#': [], '+': ['24dcc3cf6674']} 2024-04-03 00:40:24,154 - DEBUG - Received /user/folotoy/24dcc3cf6674/thing/command/callAck: message data: {'msgId': 1, 'identifier': 'updateconfig', 'result': 1} 2024-04-03 00:40:24,154 - DEBUG - Command call ack: True, topic_tokens: {'#': [], '+': ['24dcc3cf6674']} 2024-04-03 00:40:25,654 - DEBUG - Received /user/folotoy/24dcc3cf6674/thing/event/post: message data: {'msgId': 1, 'identifier': 'press_small_btn', 'outParams': {'keyCode': 1, 'changed': 1}} 2024-04-03 00:40:25,654 - DEBUG - Cannot find role config for sn=24dcc3cf6674, role=1 Exception in thread paho-mqtt-client-folotoy: Traceback (most recent call last): File "/usr/local/lib/python3.11/threading.py", line 1038, in _bootstrap_inner self.run() File "/usr/local/lib/python3.11/threading.py", line 975, in run self._target(*self._args, **self._kwargs) File "/usr/local/lib/python3.11/site-packages/paho/mqtt/client.py", line 4517, in _thread_main self.loop_forever(retry_first_connection=True) File "/usr/local/lib/python3.11/site-packages/paho/mqtt/client.py", line 2291, in loop_forever rc = self._loop(timeout) ^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/paho/mqtt/client.py", line 1680, in _loop rc = self.loop_read() ^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/paho/mqtt/client.py", line 2094, in loop_read rc = self._packet_read() ^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/paho/mqtt/client.py", line 3137, in _packet_read rc = self._packet_handle() ^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/paho/mqtt/client.py", line 3803, in _packet_handle return self._handle_publish() ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/paho/mqtt/client.py", line 4140, in _handle_publish self._handle_on_message(message) File "/usr/local/lib/python3.11/site-packages/paho/mqtt/client.py", line 4496, in _handle_on_message on_message(self, self._userdata, message) File "core/folotoy_app.py", line 128, in core.folotoy_app.FolotoyApp.start.on_message File "core/folotoy_app.py", line 99, in core.folotoy_app.FolotoyApp.process_mqtt_message File "core/folotoy_msg_processor.py", line 169, in core.folotoy_msg_processor.FolotoyMsgProcessor.process_press_small_btn TypeError: 'NoneType' object is not iterable