English | 中文
A brand new experimental version of Amadeus, EL PSY CONGROO~
Note: This version has been refactored and is different from the initial version. The documentation has been updated, please check the documentation.
Welcome to join the development of Amadeus System! We look forward to your contributions:
Any form of contribution is very welcome. Let's make Amadeus System better together!
For detailed documentation, please visit: Amadeus System Documentation Center
The project provides precompiled desktop clients that support Windows systems:
C:\Users\YourUsername\AppData\Local\Programs\Amadeus
C:\Users\YourUsername\AppData\Local\Programs\Amadeus\resources\service\.env You can modify the WebRTC server address used by the client
The local client provides the same functionality as the Zeabur online version, but without server deployment, suitable for personal use.
| Environment Variable | Description |
|---|---|
VITE_APP_DEFAULT_USERNAME |
Username for frontend login system, allowing Amadeus to recognize your identity |
WEBRTC_API_URL |
WebRTC server API address, the Zeabur template has built-in public WebRTC server, you can also build your own according to the documentation |
Notes: - Ensure your project meets Zeabur's deployment requirements - If you need a custom domain, you can set it up in Zeabur's control panel - It's recommended to check Zeabur's official documentation for more deployment-related information
If you want to deploy on your own server, you can use Docker Compose for deployment.
Create a docker-compose.yml file with the following content:
version: '3'
services:
container:
image: ghcr.io/ai-poet/amadeus-system-new-alpha
ports:
- "3002:3002" # Service port
environment:
- VITE_APP_DEFAULT_USERNAME=${VITE_APP_DEFAULT_USERNAME}
- WEBRTC_API_URL=${WEBRTC_API_URL}
restart: unless-stopped
networks:
- amadeus-network
volumes:
- ./logs:/app/service/logs # Log persistence storage
networks:
amadeus-network:
driver: bridge
.env file and fill in the required environment variablesdocker-compose.yml is located:docker-compose up -d
docker-compose logs -f
The Zeabur template provides a public WebRTC service, but public services may be unstable, so it's recommended to deploy WebRTC service privately.
After cloning the repository, go to the service/webrtc folder in the code repository and use Dockerfile to build the WebRTC service image:
cd service/webrtc
docker build -t amadeus-webrtc-service .
Run the WebRTC service container:
docker run -d --name amadeus-webrtc \
-p 8001:8001 \
-e LLM_API_KEY=YourOpenAI_API_Key \
-e WHISPER_API_KEY=YourWhisper_API_Key \
-e SILICONFLOW_API_KEY=YourSiliconFlow_API_Key \
-e SILICONFLOW_VOICE=YourSiliconFlow_Voice_ID \
-e LLM_BASE_URL=YourLLM_API_Base_URL \
-e WHISPER_BASE_URL=YourWhisper_API_Base_URL \
-e WHISPER_MODEL=YourWhisper_Model_Version \
-e AI_MODEL=YourLLM_Model_Version \
-e MEM0_API_KEY=YourMEM0_Memory_Service_API_Key \
-e TIME_LIMIT=YourWebRTC_Stream_Max_Time_Limit_Seconds \
-e CONCURRENCY_LIMIT=YourMax_Concurrent_Connections \
amadeus-webrtc-service
After deployment, you can access your own WebRTC service through http://YourServerIP:8001.
The following are the environment variables for the built-in AI services of the WebRTC service, which can be used to build public services:
| Environment Variable | Description | Default Value |
|---|---|---|
LLM_API_KEY |
OpenAI or compatible API key for large language model service | None |
WHISPER_API_KEY |
Whisper API key for speech recognition service | None |
SILICONFLOW_API_KEY |
SiliconFlow API key for text-to-speech service | None |
SILICONFLOW_VOICE |
Your custom voice ID in SiliconFlow | None |
LLM_BASE_URL |
Base URL for large language model API | None |
WHISPER_BASE_URL |
Base URL for Whisper API | None |
WHISPER_MODEL |
Whisper model version to use | None |
AI_MODEL |
Large language model version to use | None |
MEM0_API_KEY |
MEM0 memory service API key | None |
TIME_LIMIT |
Maximum time limit for WebRTC stream (seconds) | 600 |
CONCURRENCY_LIMIT |
Maximum concurrent connections | 10 |
When deploying WebRTC service, ensure the following ports are open on your server:
Note
If using cloud service providers (such as AWS, Alibaba Cloud, etc.), please ensure these ports are opened in security group/firewall settings.
In production environments, to handle audio/video penetration issues in complex network environments, TURN servers usually need to be deployed. You can:
FastRTC provides an automation script that can deploy TURN servers on AWS:
For detailed steps, please refer to FastRTC's self-hosted deployment guide.
After deployment is complete, you can fill in the TURN server information in the WebRTC service code:
{
"iceServers": [
{
"urls": "turn:YourTURNServerIP:3478",
"username": "YourSetUsername",
"credential": "YourSetPassword"
}
]
}
Tip
After correctly configuring the TURN server, even in complex network environments (such as symmetric NAT, behind corporate firewalls), the stability of audio and video communication can be guaranteed.
$ claude mcp add amadeus-system-new \
-- python -m otcore.mcp_server <graph>