WeatherWiz is a chatbot for weather forecasts. It is built with Rasa, Python and love ❤️ and proudly features:
- a fancy frontend build with chatroom.js
- using free APIs (no signup or API key required):
- real weather data from Bright Sky API
- forecasts up to seven days
- historical data from 01.01.2010
- geocoding via Nominatim API
- user IP address as a location fallback via ipinfo.io API
- real weather data from Bright Sky API
- slots for place and time for keeping conversation context
- a dateparser for date and time extraction
- high test coverage via Pytest and Rasa's tests
- full Dockerization
To start WeatherWiz you will need:
- a working Docker engine
- Internet access (for setup and API access)
- at least 16GB RAM (32GB recommended)
Talking to WeatherWiz is as easy as:
- Clone the project
- Open a shell in the project folder
- In the shell, run
docker compose up
- Open localhost:8000 in your browser
- Enjoy talking to WeatherWiz... 🙂
WeatherWiz suggests the following development setup:
- Docker to run the application
- Poetry for dependency management
- Ruff for formatting and linting
- A type checker, preferably pyright
- Pytest for unit testing
Configuration is located in the pyproject.toml
, at the root of the project.
To contribute:
- Fork this repository
- Do your changes, including:
- test coverage
- documentation
- Open a PR
You may also feel free to open any issue.
- WeatherWiz will only answer questions regarding rain, temperature and wind
- answer format remains generic
- failure of API access is not handled gracefully