Closed aidots closed 4 months ago
配置:
version: '3'
volumes:
emqx-etc:
emqx-data:
emqx-log:
services:
emqx:
image: emqx/emqx:latest
restart: always
ports:
- "1883:1883/tcp"
- "18083:18083/tcp"
- "8083:8083/tcp"
volumes:
- emqx-etc:/opt/emqx/etc
- emqx-data:/opt/emqx/data
- emqx-log:/opt/emqx/log
environment:
EMQX_NODE_NAME: emqx@node1.emqx.io
nginx:
image: nginx:latest
restart: always
ports:
- "8082:80/tcp"
volumes:
- ./audio:/usr/share/nginx/html
folotoy:
image: lewangdev/folotoy-server:latest
restart: always
ports:
- "8085:8085/udp"
volumes:
- ./audio:/audio
- ./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://xxx.xxxxxxx.com/v1
OPENAI_WHISPER_KEY: sk-xxxxxxxxxxxxxxxxx
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]
LLM_TYPE: openai
# OpenAI
OPENAI_OPENAI_API_BASE: https://api.moonshot.cn/v1
OPENAI_OPENAI_MODEL: moonshot-v1-8k
OPENAI_OPENAI_KEY: xxxxxxxxxxxxxxxxxxxxxx
#Azure OpenAI
AZURE_OPENAI_KEY: xxxxxxxxxxxxxxxxxxxxxx
AZURE_OPENAI_ENDPOINT: https://xxx.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
# 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-tts, elevenlabs, edge-tts, aliyun-tts]
# edge-tts is Free but slow
TTS_TYPE: azure-tts
# Azure TTS
AZURE_TTS_KEY: xxxxxxxxxxxxxxxxxxxxxxxx
AZURE_TTS_SERVICE_REGION: southeastasia
# elevenlabs
ELEVENLABS_TTS_KEY: a920b73991e68d5c9c9aaaaaaaaaaaaaaaa
ELEVENLABS_TTS_MODEL: eleven_multilingual_v2
# OpenAI TTS
OPENAI_TTS_KEY: sk-16XnP3HLHWho21oO2m0AAAAAAAAAAAAAAAAAAAAAA
OPENAI_TTS_MODEL: tts-1
# Aliyun TTS
ALIYUN_TTS_ACCESS_KEY_ID: LTAI5t91NSxxxxxxxxxxxxxxxxxxxxx
ALIYUN_TTS_ACCESS_KEY_SECRET: 3zWkHVxxxxxxxxxxxxxxxxxxxxx
ALIYUN_TTS_APP_KEY: Ltamxxxxxxxxxxxxx
AUDIO_DOWNLOAD_URL: http://xxxxxxxxxxxx: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: xxxxxxxxxxxxxxx
SPEECH_UDP_SERVER_PORT: 8085
贴一下 roles.json
{
"1": {
"model": "gpt-3.5-turbo",
"start_text": "你好,我是小兔兔,请问有什么我可以帮助你的吗?",
"prompt": "你扮演一个孩子的小伙伴,名字叫小兔兔,性格和善,说话活泼可爱,对孩子充满爱心,经常赞赏和鼓励孩子,用5岁孩子容易理解语言提供有趣和创新的回答,每次回复根据聊天主题询问她的看法以激发她的思考和好奇心,现在她来到了你身边问了第一个问题:[你是谁]",
"max_message_count": 20,
"temperature": 0.7,
"max_tokens": 800,
"top_p": 0.95,
"frequency_penalty": 0,
"presence_penalty": 0,
"voice_name": "zh-CN-XiaoxiaoNeural",
"language": "zh"
},
"2": {
"model": "gpt-3.5-turbo",
"start_text": "你好,俺是东北兔,请问有什么俺可以帮助你的吗?",
"prompt": "你是一个知识渊博,乐于助人的智能机器人,你的名字叫“东北兔”,你的任务是陪我聊天,请用简短的对话方式,用中文讲一段话,每次回答不超过50个字!",
"max_message_count": 20,
"temperature": 0.7,
"max_tokens": 800,
"top_p": 0.95,
"frequency_penalty": 0,
"presence_penalty": 0,
"voice_name": "zh-CN-liaoning-XiaobeiNeural",
"language": "zh"
},
"3": {
"model": "gpt-3.5-turbo",
"start_text": "Hi, I'm Fofo. Nice to meet you.",
"prompt": "Your name is \"Fofo\". Your task is to chat with me. Please respond in English, keeping your answers brief – no more than 50 words each time!",
"max_message_count": 20,
"temperature": 0.7,
"max_tokens": 800,
"top_p": 0.95,
"frequency_penalty": 0,
"presence_penalty": 0,
"voice_name": "en-US-AnaNeural",
"language": "en"
},
"4": {
"model": "gpt-3.5-turbo",
"start_text": "你好,额是陕西兔,请问有什么额可以帮助你的吗? ",
"prompt": "你擅于鼓励别人,乐观积极,无论别人和你说了什么,你都能夸对方,让人快乐",
"max_message_count": 10,
"temperature": 0.7,
"max_tokens": 800,
"top_p": 0.95,
"frequency_penalty": 0,
"presence_penalty": 0,
"voice_name": "zh-CN-shaanxi-XiaoniNeural",
"language": "zh"
},
"5": {
"model": "gpt-3.5-turbo",
"start_text": "你好,我是童话故事兔,想听什么童话故事吗?试试说,我想听听三只小猫咪的故事",
"prompt": "你是一个知识渊博的智能机器人,你的名字叫“故事兔”,你的任务是讲故事给一位7岁孩子的听,你要先听取孩子想听的故事主题,然后根据孩子的说的内容,用中文讲一段故事,每个故事不超过200个字!",
"max_message_count": 10,
"temperature": 0.7,
"max_tokens": 800,
"top_p": 0.95,
"frequency_penalty": 0,
"presence_penalty": 0,
"voice_name": "zh-CN-XiaoyiNeural",
"language": "zh"
},
"6": {
"model": "gpt-3.5-turbo",
"start_text": "你好,我是台湾兔,请问有什么我可以帮助你的吗?",
"prompt": "你是一个知识渊博,乐于助人的智能机器人,你的名字叫“台湾兔”,你的任务是陪我聊天,请用简短的对话方式,用中文讲一段话,每次回答不超过50个字!",
"max_message_count": 10,
"temperature": 0.7,
"max_tokens": 800,
"top_p": 0.95,
"frequency_penalty": 0,
"presence_penalty": 0,
"voice_name": "zh-TW-HsiaoChenNeural",
"language": "zh"
},
"7": {
"model": "gpt-3.5-turbo",
"start_text": "你好,我是口算兔,我们一起来玩玩口算游戏吧?",
"prompt": "我是一个6岁小朋友,你陪我玩口算游戏。你出题,我回答结果。如果答对了你就说好棒,答错了你就告诉我正确答案,并且鼓励我。你一题一题的出,我一个个回答。不要有太多的解释说明。明白了吗?",
"max_message_count": 20,
"temperature": 0.7,
"max_tokens": 800,
"top_p": 0.95,
"frequency_penalty": 0,
"presence_penalty": 0,
"voice_name": "zh-CN-YunxiaNeural",
"language": "zh"
}
}
docker-compose.yml 所在的目录下执行 docker compose -d
用什么方式部署的?1panel 还是命令行?
命令行
docker-compose.yml 所在的目录下执行 docker compose -d
已经执行过 sudo docker compose up -d
稍等,我测试一下
我们用你的配置测试没有问题,你的服务器方便加我的 ssh 公钥吗:https://github.com/lewangdev.keys
然后把登录ip/port 发到我的邮箱,我帮你看一下 lewang.dev@gmail.com
运行了这个后才可以: docker compose pull folotoy docker compose up folotoy -d
folotoy-server-self-hosting-folotoy-1 | 2024-02-27 20:41:13,101 - ThreadPoolExecutor-0_2 - util.py(60) - DEBUG - message='Request to OpenAI API' method=post path=https://api.openai.com/v1/audio/transcriptions folotoy-server-self-hosting-folotoy-1 | 2024-02-27 20:41:13,101 - ThreadPoolExecutor-0_2 - util.py(60) - DEBUG - api_version=None data='{\'model\': \'whisper-1\', \'prompt\': "ok.let\'s begin."}' message='Post details'