| --- |
| title: Environmental Impact Analyzer |
| emoji: ⚡ |
| colorFrom: green |
| colorTo: red |
| sdk: gradio |
| sdk_version: 5.33.0 |
| app_file: app.py |
| pinned: false |
| short_description: Gives Carbon Footprint Score for products description or url |
| --- |
| |
| # Enviromental Impact Analyzer |
| This project, "Environmental Impact Analyzer," is a Gradio-based application designed to assess the environmental footprint of products. Users can input either a product description or a URL to a product page, and the application will extract relevant information, calculate its carbon footprint, generate an environmental sustainability score, and provide actionable recommendations for improvement. |
|
|
| --- |
|
|
| ## Features: |
| - **Product Information Extraction:** Automatically extracts key environmental factors from text descriptions or web pages (via URL scraping). |
| - **Carbon Footprint Calculation:** Integrates with the Climatiq API to estimate the carbon emissions associated with the product's manufacturing and transportation. |
| - **Environmental Scoring:** Leverages advanced Large Language Models (LLMs) to generate a comprehensive sustainability score (0-100) based on multiple environmental criteria. |
| - **Improvement Recommendations:** Provides specific and actionable suggestions to reduce the product's environmental impact. |
| **Intuitive Gradio Interface:** Offers an easy-to-use web interface for seamless interaction. |
|
|
| --- |
|
|
| ## How It Works |
| The core of the Environmental Impact Analyzer is built using **LangGraph**, enabling a stateful, multi-step agentic workflow: |
|
|
| 1. **Input Classification:** Determines if the user input is a direct product description or a URL. |
| 2. **Information Extraction:** |
| * If a URL, it **scrapes** the product information from the web page. |
| * If a description, it directly processes the provided text. |
| * An LLM (`deepseek-ai/DeepSeek-R1`) is then used to **extract structured environmental data** (e.g., material composition, manufacturing location, weight, transport distance, recyclability). |
| 3. **Carbon Footprint Calculation:** The extracted data is sent to the **Climatiq API** to calculate the estimated carbon footprint (in kg CO2e) based on factors like materials and transportation. |
| 4. **Environmental Scoring & Recommendations:** |
| * An LLM (`meta-llama/Meta-Llama-3.1-70B-Instruct`) evaluates the extracted data and carbon footprint. |
| * It generates an **overall environmental score** (0-100), considering factors like carbon emissions, material sustainability, manufacturing practices, transport, longevity, and end-of-life. The scoring is calibrated to recognize positive environmental efforts. |
| * It also provides a **category breakdown** of the score and **actionable recommendations** for improving the product's environmental impact. |
|
|
| **Note:** You can also change the Models for your liking to increse Speed or more accuracy.but make sure hyperbolic supports it. |
|
|
| --- |
|
|
| ## Tech Stack |
|
|
| | Category | Technology | Purpose | |
| | :------------------ | :----------------------------------------- | :------------------------------------------------------------------- | |
| | **Framework** | Gradio | Building the interactive web user interface. | |
| | **Agentic Workflow**| LangGraph | Orchestrating multi-step agent logic and state management. | |
| | **LLM Integration** | Hugging Face Inference Client | Interacting with Large Language Models hosted on Hugging Face Hub. | |
| | **Core LLM** | `deepseek-ai/DeepSeek-R1` | Generates environmental scores, category breakdowns, and recommendations. | |
| | **External APIs** | Climatiq API | Calculates carbon footprint based on product data. | |
| | **Web Scraping** | `requests`, `BeautifulSoup` (via `scrapper.py`) | Fetching and parsing HTML content from product URLs. | |
| | **Prompting** | `langchain.prompts.ChatPromptTemplate` | Structuring and templating LLM prompts for consistent input. | |
| | **Environment Mgt.**| `python-dotenv` | Loading environment variables from `.env` files for secure key management. | |
| | **Data Typing** | `typing`, `typing_extensions` (`TypedDict`) | Enhancing code readability and maintainability with type hints. | |
|
|
| --- |
|
|
| ## Setup and Installation |
|
|
| To run this project locally, follow these steps: |
|
|
| ### 1. Clone the Repository |
|
|
| ```bash |
| git clone [https://huggingface.co/spaces/Agents-MCP-Hackathon/Environmental-Impact-Analyzer](https://huggingface.co/spaces/Agents-MCP-Hackathon/Environmental-Impact-Analyzer) |
| cd Environmental-Impact-Analyzer |
| ``` |
|
|
| ### 2. Create a Virtual Environment (Recommended) |
| ```bash |
| python -m venv .venv |
| # On Windows |
| .venv\Scripts\activate |
| # On macOS/Linux |
| source .venv/bin/activate |
| ``` |
| ### 3. Install Dependencies |
| ```bash |
| pip install -r requirements.txt |
| ``` |
| ### 4. 4. Configure Environment Variables |
| Create a .env file in the root directory of your project and add the following: |
| ``` |
| HF_API_KEY="hf_YOUR_HUGGING_FACE_ACCESS_TOKEN" |
| CLIMATIQ_API_KEY="YOUR_CLIMATIQ_API_KEY" |
| ``` |
| ### 5. Run the Application |
| ```bash |
| python app.py |
| ``` |
|
|