This repository contains the tools used to maintain and update the Awesome Embodied AI list.
These tools automatically curate and update the main Awesome Embodied AI list by:
- Searching for new relevant content using Tavily API
- Fetching GitHub metrics and research papers
- Merging new content into the main README.md
- Posting daily news updates to X/Twitter
src/
├── awesome_updater/ # Awesome list content updater
│ ├── core/ # Core functionality specific to awesome_updater
│ │ ├── content_fetcher.py
│ │ ├── content_merger.py
│ │ ├── git_manager.py
│ │ ├── github_client.py
│ │ └── gpt_service.py
│ └── main.py
├── news_poster/ # News posting tool
│ ├── main.py
│ └── news_poster.py
├── models/ # Shared data models and schemas
└── utils/ # Shared utility functions and helpers
- Python 3.11 or higher
- Poetry for dependency management
- GitHub account with API access
- OpenAI API key
- Tavily API key
- Clone the repository:
git clone https://github.com/dustland/awesome-tools.git
cd awesome-tools
- Install dependencies using Poetry:
poetry install
- Set up environment variables:
cp .env.example .env
Edit .env
file and fill in your API keys and configuration:
GITHUB_TOKEN
: Your GitHub API tokenOPENAI_API_KEY
: Your OpenAI API keyTAVILY_API_KEY
: Your Tavily API keyGITHUB_USERNAME
: Your GitHub usernameGITHUB_EMAIL
: Your GitHub email
The content updater tool searches for new content and updates the Awesome Embodied AI list. Run it with either:
# Using the script command
poetry run awesome_updater
This will:
- Search for new relevant content using Tavily API
- Fetch GitHub metrics and research papers
- Use GPT to evaluate and format new content
- Update the main README.md file
- Create a pull request with the changes
The tool is configured to run automatically on Railway.app with the following schedule:
- Content updates: Daily at midnight Shanghai time (UTC+8)
- News posting: Daily at 9 AM Shanghai time (UTC+8)
To deploy on Railway.app:
- Create a new project
- Connect your GitHub repository
- Set up the required environment variables
- The cron jobs will automatically start running based on the schedule in
railway.toml
awesome_updater/
- Tool for updating the README file in the Awesome Embodied AI repository- [WIP]
news_poster/
- Tool for posting news to X/Twitter
- Clone the repository
- Copy
.env.example
to.env
and fill in the required API keys - Install dependencies:
pip install -e .
Each tool can be run independently from its respective directory. See individual tool documentation for specific usage instructions.
The tools are configured to run automatically on Railway:
- Content updates run daily at midnight Shanghai time
- News posts run daily at 9 AM Shanghai time
Contributions are welcome! Please feel free to submit a Pull Request.
MIT