AmbiAlert
AmbiAlert is a powerful web monitoring tool that helps you stay informed about topics that matter to you. Instead of constantly checking websites for updates, AmbiAlert does the work for you by monitoring relevant web pages and alerting you when meaningful changes occur.
Features
- 🔍 Smart Query Expansion: Automatically expands your search queries to cover different aspects of your topic
- 🌐 Intelligent Web Monitoring: Tracks relevant websites and detects meaningful changes
- 🤖 AI-Powered Relevance Checking: Uses advanced language models to ensure changes are actually relevant to your interests
- 📧 Flexible Alerting System: Supports email notifications with more backends coming soon
- 💾 Persistent Monitoring: Uses SQLite to track monitored URLs and their states
- 🔄 Automatic Retries: Handles temporary failures gracefully
Installation
Using pip
pip install ambi-alert
From Source
# Clone the repository
git clone https://github.com/prassanna-ravishankar/ambi-alert.git
cd ambi-alert
# Install dependencies and set up development environment
make install
# Run tests
make test
# Check code quality
make check
# Build documentation
make docs
Quick Start
Command Line
The simplest way to use AmbiAlert is through its command-line interface:
# Monitor news about the next iPhone (prints alerts to console)
ambi-alert "next iPhone release"
# Monitor with email alerts
ambi-alert "next iPhone release" \
--smtp-server smtp.gmail.com \
--smtp-port 587 \
--smtp-username your.email@gmail.com \
--smtp-password "your-app-password" \
--from-email your.email@gmail.com \
--to-email target.email@example.com
# Check more frequently (every 15 minutes)
ambi-alert "next iPhone release" --check-interval 900
Python API
You can also use AmbiAlert programmatically:
from ambi_alert import AmbiAlert
from ambi_alert.alerting import EmailAlertBackend
# Create an alert backend (optional)
alert_backend = EmailAlertBackend(
smtp_server="smtp.gmail.com",
smtp_port=587,
username="your.email@gmail.com",
password="your-app-password",
from_email="your.email@gmail.com",
to_email="target.email@example.com"
)
# Create and run AmbiAlert
async with AmbiAlert(alert_backend=alert_backend) as ambi:
# Add queries to monitor
await ambi.add_monitoring_query("next iPhone release")
await ambi.add_monitoring_query("AI breakthrough")
# Start monitoring
await ambi.run_monitor()
Development
Setup Development Environment
# Install dependencies and pre-commit hooks
make install
# Run tests
make test
# Check code quality
make check
# Build and serve documentation
make docs
# Build package
make build
# Build and publish to PyPI
make build-and-publish
Running Tests
# Run all tests
make test
# Test documentation
make docs-test
Documentation
Full documentation is available at https://prassanna-ravishankar.github.io/ambi-alert/.
To build and view documentation locally:
make docs
Then open http://127.0.0.1:8000 in your browser.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Set up development environment (
make install) - Make your changes
- Run tests and checks (
make test && make check) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
- Built with smolagents for intelligent web search
- Uses DuckDuckGo for web search functionality
- Inspired by the need for proactive information monitoring
Metadata
Release files for ambi-alert 0.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ambi_alert-0.0.2.tar.gz | 8.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ambi_alert-0.0.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 13.1 kB
Release files / ambi_alert-0.0.2.tar.gz
| Download URL | ambi_alert-0.0.2.tar.gz |
|---|---|
| Size | 8.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
071cf97b5d9404b44eabd6c7de356911a51bd0a841422c61d89c5d98118fbad6
|
|
BLAKE2b-256 checksum How to use checksums |
16325163d6d5fa75fd45aee6c5263a9955dd7d0861719c3563fd728bb590b89b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.8
|
Release files / ambi_alert-0.0.2-py3-none-any.whl
| Download URL | ambi_alert-0.0.2-py3-none-any.whl |
|---|---|
| Size | 4.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f7c5b75cd0b606eaba7a666cc7e55d1e823e9d82609a2829cd24a9164f90cccb
|
|
BLAKE2b-256 checksum How to use checksums |
b37fa000849946942fe85279ce4d8adb3fbeef045b2f2ea971014903604da160
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.8
|