# AmbiAlert
<div align="center">
<img src="docs/logo.png" alt="AmbiAlert Logo" width="200"/>
</div>
[](https://img.shields.io/github/v/release/prassanna-ravishankar/ambi-alert)
[](https://github.com/prassanna-ravishankar/ambi-alert/actions/workflows/main.yml?query=branch%3Amain)
[](https://prassanna-ravishankar.github.io/ambi-alert/)
[](https://img.shields.io/github/license/prassanna-ravishankar/ambi-alert)
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
```bash
pip install ambi-alert
```
### From Source
```bash
# 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:
```bash
# 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:
```python
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
```bash
# 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
```bash
# Run all tests
make test
# Test documentation
make docs-test
```
## Documentation
Full documentation is available at [https://prassanna-ravishankar.github.io/ambi-alert/](https://prassanna-ravishankar.github.io/ambi-alert/).
To build and view documentation locally:
```bash
make docs
```
Then open [http://127.0.0.1:8000](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.
1. Fork the repository
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
3. Set up development environment (`make install`)
4. Make your changes
5. Run tests and checks (`make test && make check`)
6. Commit your changes (`git commit -m 'Add amazing feature'`)
7. Push to the branch (`git push origin feature/amazing-feature`)
8. Open a Pull Request
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## Acknowledgments
- Built with [smolagents](https://huggingface.co/docs/smolagents/index) for intelligent web search
- Uses DuckDuckGo for web search functionality
- Inspired by the need for proactive information monitoring
Raw data
{
"_id": null,
"home_page": null,
"name": "ambi-alert",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.10",
"maintainer_email": null,
"keywords": "python, web-monitoring, alerts, search, web-scraping",
"author": null,
"author_email": "\"Prass, The Nomadic Coder\" <me@prassanna.io>",
"download_url": "https://files.pythonhosted.org/packages/16/32/5163d6d5fa75fd45aee6c5263a9955dd7d0861719c3563fd728bb590b89b/ambi_alert-0.0.2.tar.gz",
"platform": null,
"description": "# AmbiAlert\n\n<div align=\"center\">\n <img src=\"docs/logo.png\" alt=\"AmbiAlert Logo\" width=\"200\"/>\n</div>\n\n[](https://img.shields.io/github/v/release/prassanna-ravishankar/ambi-alert)\n[](https://github.com/prassanna-ravishankar/ambi-alert/actions/workflows/main.yml?query=branch%3Amain)\n[](https://prassanna-ravishankar.github.io/ambi-alert/)\n[](https://img.shields.io/github/license/prassanna-ravishankar/ambi-alert)\n\nAmbiAlert 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.\n\n## Features\n\n- \ud83d\udd0d **Smart Query Expansion**: Automatically expands your search queries to cover different aspects of your topic\n- \ud83c\udf10 **Intelligent Web Monitoring**: Tracks relevant websites and detects meaningful changes\n- \ud83e\udd16 **AI-Powered Relevance Checking**: Uses advanced language models to ensure changes are actually relevant to your interests\n- \ud83d\udce7 **Flexible Alerting System**: Supports email notifications with more backends coming soon\n- \ud83d\udcbe **Persistent Monitoring**: Uses SQLite to track monitored URLs and their states\n- \ud83d\udd04 **Automatic Retries**: Handles temporary failures gracefully\n\n## Installation\n\n### Using pip\n\n```bash\npip install ambi-alert\n```\n\n### From Source\n\n```bash\n# Clone the repository\ngit clone https://github.com/prassanna-ravishankar/ambi-alert.git\ncd ambi-alert\n\n# Install dependencies and set up development environment\nmake install\n\n# Run tests\nmake test\n\n# Check code quality\nmake check\n\n# Build documentation\nmake docs\n```\n\n## Quick Start\n\n### Command Line\n\nThe simplest way to use AmbiAlert is through its command-line interface:\n\n```bash\n# Monitor news about the next iPhone (prints alerts to console)\nambi-alert \"next iPhone release\"\n\n# Monitor with email alerts\nambi-alert \"next iPhone release\" \\\n --smtp-server smtp.gmail.com \\\n --smtp-port 587 \\\n --smtp-username your.email@gmail.com \\\n --smtp-password \"your-app-password\" \\\n --from-email your.email@gmail.com \\\n --to-email target.email@example.com\n\n# Check more frequently (every 15 minutes)\nambi-alert \"next iPhone release\" --check-interval 900\n```\n\n### Python API\n\nYou can also use AmbiAlert programmatically:\n\n```python\nfrom ambi_alert import AmbiAlert\nfrom ambi_alert.alerting import EmailAlertBackend\n\n# Create an alert backend (optional)\nalert_backend = EmailAlertBackend(\n smtp_server=\"smtp.gmail.com\",\n smtp_port=587,\n username=\"your.email@gmail.com\",\n password=\"your-app-password\",\n from_email=\"your.email@gmail.com\",\n to_email=\"target.email@example.com\"\n)\n\n# Create and run AmbiAlert\nasync with AmbiAlert(alert_backend=alert_backend) as ambi:\n # Add queries to monitor\n await ambi.add_monitoring_query(\"next iPhone release\")\n await ambi.add_monitoring_query(\"AI breakthrough\")\n\n # Start monitoring\n await ambi.run_monitor()\n```\n\n## Development\n\n### Setup Development Environment\n\n```bash\n# Install dependencies and pre-commit hooks\nmake install\n\n# Run tests\nmake test\n\n# Check code quality\nmake check\n\n# Build and serve documentation\nmake docs\n\n# Build package\nmake build\n\n# Build and publish to PyPI\nmake build-and-publish\n```\n\n### Running Tests\n\n```bash\n# Run all tests\nmake test\n\n# Test documentation\nmake docs-test\n```\n\n## Documentation\n\nFull documentation is available at [https://prassanna-ravishankar.github.io/ambi-alert/](https://prassanna-ravishankar.github.io/ambi-alert/).\n\nTo build and view documentation locally:\n\n```bash\nmake docs\n```\n\nThen open [http://127.0.0.1:8000](http://127.0.0.1:8000) in your browser.\n\n## Contributing\n\nContributions 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.\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/amazing-feature`)\n3. Set up development environment (`make install`)\n4. Make your changes\n5. Run tests and checks (`make test && make check`)\n6. Commit your changes (`git commit -m 'Add amazing feature'`)\n7. Push to the branch (`git push origin feature/amazing-feature`)\n8. Open a Pull Request\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## Acknowledgments\n\n- Built with [smolagents](https://huggingface.co/docs/smolagents/index) for intelligent web search\n- Uses DuckDuckGo for web search functionality\n- Inspired by the need for proactive information monitoring\n",
"bugtrack_url": null,
"license": null,
"summary": "This is a reverse search tool. Agentic Alerting",
"version": "0.0.2",
"project_urls": {
"Documentation": "https://prassanna.io/ambi-alert/",
"Homepage": "https://prassanna.io/ambi-alert/",
"Repository": "https://github.com/prassanna-ravishankar/ambi-alert"
},
"split_keywords": [
"python",
" web-monitoring",
" alerts",
" search",
" web-scraping"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "b37fa000849946942fe85279ce4d8adb3fbeef045b2f2ea971014903604da160",
"md5": "5533207f9c11a72370ad532166f09a3b",
"sha256": "f7c5b75cd0b606eaba7a666cc7e55d1e823e9d82609a2829cd24a9164f90cccb"
},
"downloads": -1,
"filename": "ambi_alert-0.0.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "5533207f9c11a72370ad532166f09a3b",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.10",
"size": 4458,
"upload_time": "2025-02-07T23:39:45",
"upload_time_iso_8601": "2025-02-07T23:39:45.890358Z",
"url": "https://files.pythonhosted.org/packages/b3/7f/a000849946942fe85279ce4d8adb3fbeef045b2f2ea971014903604da160/ambi_alert-0.0.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "16325163d6d5fa75fd45aee6c5263a9955dd7d0861719c3563fd728bb590b89b",
"md5": "6de657e66d7132eb8993c6db3eedf44b",
"sha256": "071cf97b5d9404b44eabd6c7de356911a51bd0a841422c61d89c5d98118fbad6"
},
"downloads": -1,
"filename": "ambi_alert-0.0.2.tar.gz",
"has_sig": false,
"md5_digest": "6de657e66d7132eb8993c6db3eedf44b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.10",
"size": 8637,
"upload_time": "2025-02-07T23:39:47",
"upload_time_iso_8601": "2025-02-07T23:39:47.579086Z",
"url": "https://files.pythonhosted.org/packages/16/32/5163d6d5fa75fd45aee6c5263a9955dd7d0861719c3563fd728bb590b89b/ambi_alert-0.0.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-02-07 23:39:47",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "prassanna-ravishankar",
"github_project": "ambi-alert",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"tox": true,
"lcname": "ambi-alert"
}