Spaces:
Sleeping
Sleeping
| # AI Web Page Summarizer | |
| This project is a simple AI-powered web page summarizer that leverages OpenAI's GPT models and local inference with Ollama to generate concise summaries of given text. The goal is to create a "Reader's Digest of the Internet" by summarizing web content efficiently. | |
| ## Features | |
| - Summarize text using OpenAI's GPT models or local Ollama models. | |
| - Flexible summarization engine selection (OpenAI API, Ollama API, or Ollama library). | |
| - Simple and modular code structure. | |
| - Error handling for better reliability. | |
| ## Project Structure | |
| ``` | |
| ai-summarizer/ | |
| β-- summarizer/ | |
| β β-- __init__.py | |
| β β-- fetcher.py # Web content fetching logic | |
| β β-- summarizer.py # Main summarization logic | |
| β-- utils/ | |
| β β-- __init__.py | |
| β β-- logger.py # Logging configuration | |
| β-- main.py # Entry point of the app | |
| β-- .env # Environment variables | |
| β-- requirements.txt # Python dependencies | |
| β-- README.md # Project documentation | |
| ``` | |
| ## Prerequisites | |
| - Python 3.8 or higher | |
| - OpenAI API Key (You can obtain it from [OpenAI](https://platform.openai.com/signup)) | |
| - Ollama installed locally ([Installation Guide](https://ollama.ai)) | |
| - `conda` for managing environments (optional) | |
| ## Installation | |
| 1. **Clone the repository:** | |
| ```bash | |
| git clone https://github.com/your-username/ai-summarizer.git | |
| cd ai-summarizer | |
| ``` | |
| 2. **Create a virtual environment (optional but recommended):** | |
| ```bash | |
| conda create --name summarizer-env python=3.9 | |
| conda activate summarizer-env | |
| ``` | |
| 3. **Install dependencies:** | |
| ```bash | |
| pip install -r requirements.txt | |
| ``` | |
| 4. **Set up environment variables:** | |
| Create a `.env` file in the project root and add your OpenAI API key (if using OpenAI): | |
| ```env | |
| OPENAI_API_KEY=your-api-key-here | |
| ``` | |
| ## Usage | |
| 1. **Run the summarizer:** | |
| ```bash | |
| python main.py | |
| ``` | |
| 2. **Sample Output:** | |
| ```shell | |
| Enter a URL to summarize: https://example.com | |
| Summary of the page: | |
| AI refers to machines demonstrating intelligence similar to humans and animals. | |
| ``` | |
| 3. **Engine Selection:** | |
| The summarizer supports multiple engines. Modify `main.py` to select your preferred model: | |
| ```python | |
| summary = summarize_text(content, 'gpt-4o-mini', engine="openai") | |
| summary = summarize_text(content, 'deepseek-r1:1.5B', engine="ollama-api") | |
| summary = summarize_text(content, 'deepseek-r1:1.5B', engine="ollama-lib") | |
| ``` | |
| ## Configuration | |
| You can modify the model, max tokens, and temperature in `summarizer/summarizer.py`: | |
| ```python | |
| response = client.chat.completions.create( | |
| model="gpt-4o-mini", | |
| messages=[...], | |
| max_tokens=300, | |
| temperature=0.7 | |
| ) | |
| ``` | |
| ## Error Handling | |
| If any issues occur, the script will print an error message, for example: | |
| ``` | |
| Error during summarization: Invalid API key or Ollama not running. | |
| ``` | |
| ## Dependencies | |
| The required dependencies are listed in `requirements.txt`: | |
| ``` | |
| openai | |
| python-dotenv | |
| requests | |
| ollama-api | |
| ``` | |
| Install them using: | |
| ```bash | |
| pip install -r requirements.txt | |
| ``` | |
| ## Contributing | |
| Contributions are welcome! Feel free to fork the repository and submit pull requests. | |
| ## License | |
| This project is licensed under the MIT License. See the `LICENSE` file for more details. | |
| ## Contact | |
| For any inquiries, please reach out to: | |
| - Linkedin: https://www.linkedin.com/in/khanarafat/ | |
| - GitHub: https://github.com/raoarafat | |