File size: 5,289 Bytes
dfc4e40
 
 
 
 
 
 
 
 
 
 
 
42c47cc
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
---
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
```