--- 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 ```