Astra is a voice agent, powered by TEN, demonstrating its ability to create intuitive and seamless conversational interactions.
- Agora App ID and App Certificate(read here on how)
- Azure's speech-to-text and text-to-speech API keys
- OpenAI API key
- CPU >= 2 Core
- RAM >= 4 GB
You will need to uncheck "Use Rosetta for x86_64/amd64 emulation on Apple Silicon" option for Docker if you are on Apple Silicon, otherwise the server is not going to work.
In the root of the project, create these files from the examples. They will be used to store information for Docker Compose later.
# Create .env from the example
cp ./.env.example ./.env
# Create property.json from the example
cp ./agents/property.json.example ./agents/property.json
Open the .env
file and fill in the keys and regions. This is also where you can choose to use any different extensions:
# Agora App ID and Agora App Certificate
# required: this variable must be set
AGORA_APP_ID=
AGORA_APP_CERTIFICATE=
# Extension: agora_rtc
# Azure STT key and region
AZURE_STT_KEY=
AZURE_STT_REGION=
# Extension: azure_tts
# Azure TTS key and region
AZURE_TTS_KEY=
AZURE_TTS_REGION=
# Extension: openai_chatgpt
# OpenAI API key
OPENAI_API_KEY=
In the same directory, run the docker
command to compose containers:
# Execute docker compose up to start the services
docker compose up
Open up a separate terminal window, build the agent and start the server:
# Enter container to build agent
docker exec -it astra_agents_dev bash
make build
# Once the build is done, run server on port 8080
make run-server
Open up localhost:3000 in browser to test Astra voice agent.
Open up another tab go to localhost:3001, and use graph designer to edit the flow and properties of any extensions.
Now that you’ve created your first AI agent, the creativity doesn't stop here. To develop more amazing agents, you’ll need an advanced understanding of how the TEN service works under the hood. Please refer to the TEN platform documentation .
Before we dive further, be sure to star our repository and get instant notifications for all new releases!
- Discord: Ideal for sharing your applications and engaging with the community.
- GitHub Discussion: Perfect for providing feedback and asking questions.
- GitHub Issues: Best for reporting bugs and proposing new features. Refer to our contribution guidelines for more details.
- X (formerly Twitter): Great for sharing your agents and interacting with the community.
Contributions are welcome! Please read the contribution guidelines first.
This project is licensed under the Apache 2.0 License - see the LICENSE file for details.