CLEAR: Climate Policy Retrieval and Summarization Using LLMs
(WWW Companion '25)

Geographic Analysis: Climate vulnerability mapping

Policy Analysis: Document retrieval workflow

Email Feedback: Policy gap notifications

Figure: Climate Policy Navigator: Mapping Australia's Environmental Policy Data
CLEAR is a system that bridges the information gap between rural communities and local governments on climate policies through:
- Query analysis using fine-tuned Llama-3.2-3B
- Policy retrieval from authoritative government documents
- Multi-modal summarization with geospatial visualizations
- Automated feedback generation for policy gaps
Query Interpretation
We fine-tuned a Llama-3.2-3B on 330 manually annotated queries, each mapped to $L, I, T$.
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
from clear.prompt import generate_query_prompt
device = "cuda" if torch.cuda.is_available() else "cpu"
tokenizer = AutoTokenizer.from_pretrained(
"oscarwu/Llama-3.2-3B-CLEAR",
use_auth_token=token)
model = AutoModelForCausalLM.from_pretrained(
"oscarwu/Llama-3.2-3B-CLEAR",
use_auth_token=token)
model.to(device)
query = "In Oakford, WA, in the Serpentine-Jarrahdale LGA, water scarcity and extreme heat are major challenges. What programs are in place to promote water efficiency and manage climate impacts in our region?"
test_prompt = generate_query_prompt(query)
inputs = tokenizer(
test_prompt,
padding=True,
truncation=True,
max_length=1024,
return_tensors="pt"
).to(device)
outputs = model.generate(**inputs, max_new_tokens = 128, use_cache = True)
test_result = tokenizer.batch_decode(outputs)
Dataset
The action delivery module processed decomposed resident queries ($L,I,T$) to generate reports utilized two source data: $S$ (ABS census, Wikipedia) and $D$ for policy documents.
- The $S$ for local government can be found db_lga.csv, and suburb data in db_suburb.csv.
For each validated LGA, we searched its official website to identify climate policy PDFs $D$. To download them, run:
uv run prepare_policy.py
# or
python prepare_policy.py
Collected Data Summary:
- LGAs (362 entries)
- Suburbs (11,276 entries)
- Policy Documents (710 entries)
Suburb Schema
Key | Value |
---|---|
_id | SAL51174 |
Area Code: 2016 | SSC51164 |
Census URL 2016 | Census 2016 |
Census URL 2021 | Census 2021 |
sal_id | SAL51174 |
Suburb | Oakford |
Postcode | 6121 |
State | WA |
State Name | Western Australia |
Type | Rural locality |
LGA | Serpentine-Jarrahdale |
Statistic Area | Greater Perth |
Elevation | 22 |
Area (sqkm) | 46.91 |
Latitude | -32.20852 |
Longitude | 115.92797 |
Timezone | Australia/Perth |
Government Level | State suburbs |
LGA Schema
Key | Value |
---|---|
_id | LGA57700 |
lga_id | LGA57700 |
LGA | Serpentine-Jarrahdale |
Government Level | lga |
LGA Type | mixed |
Government URL | Website |
Government Email | info@sjshire.wa.gov.au |
State Name | Western Australia |
Census URL 2021 | Census 2021 |
State | WA |
Number of Policies | 3 |
Report Generation
- Generates comprehensive reports for community and policy analysis
- Provides interactive map visualizations
- Automatically generates feedback emails to LGAs
uv run main.py \
--device cuda \
--query "In Oakford, WA..." \
--gpt_model gpt-4