跳到正文
GitHub·· 6 天前AI 评分20

Talemaot:将社区气候损失报告转为结构化数据集的 Python 原型

tom231826-svg/talemaot

AI 导读

Junseok Kim 发布 Python 原型 Talemaot,把 WhatsApp/SMS/语音等自由文本社区报告经 AI 分类为 UNFCCC 损失与损害类别,人工核验后发布 CSV/JSON 开放数据集。

正文

A Python prototype that turns free-text community reports into structured records, then publishes a dataset and summary after human review.

See the workflow, no setup required: Sample inputs → Generated report · CSV dataset

These are synthetic examples, not field data. The saved output uses offline rule-based classification and 5 reviewed records from 8 sample reports. See how to reproduce it.

My contribution

I’m Junseok (Jun) Kim. I defined the problem and the intake → classification → review → publication workflow, and used AI coding tools to implement and iterate on the prototype. My work focused on classification behavior, human-review rules, fallback handling, and checking that published outputs exclude reporter identifiers.

The project documents community-led climate Loss & Damage: built for Vanuatu, designed for replication across Pacific SIDS and other LDCs/SIDS.

Talemaot is Bislama for "to announce / to tell out" (talem "to tell" + aot "out") — because the people living climate loss should be the ones who put it on the record. (Formerly published as "GroundTruth"; renamed to avoid confusion with existing organisations.)

CI License: MIT Python 3.9+

⚠️ Status: working prototype. Talemaot classifies and publishes loss records end-to-end today (rule-based offline, or with an AI backend). It is not yet deployed with a community network or authority; every record is human-verified before publication, and the open dataset is not a substitute for official damage assessment.

Part of one adaptable climate toolkit with Heatline (heat) and WaiCare (flood disease) — same engine, here the flow is inverted: it pulls community loss data IN rather than pushing warnings out.


The problem

In WorldRiskIndex reporting, Vanuatu has repeatedly been ranked among the world's most at-risk countries for natural hazards. Cyclone Pam (2015) caused damage equivalent to roughly 60% of GDP, and slow-onset change — rising seas, saltwater intrusion, lost reefs and relocated villages — erodes livelihoods and culture continuously. Vanuatu also led the global campaign behind the International Court of Justice's July 2025 advisory opinion on states' climate obligations.

Yet the everyday, community-level losses — especially slow-onset and non-economic loss — are rarely recorded. The Loss & Damage evidence base is built mostly by outside institutions, far from the people living it. Talemaot puts that documentation in local hands.

What it does

community reports (WhatsApp/SMS/voice, English/Bislama/French)
   →  AI classification into standardized UNFCCC Loss & Damage categories
   →  human verification  →  open dataset (CSV/JSON) + aggregate map
  1. Intake. Trusted community reporters — Vanuatu's village Disaster and Climate Change Committees (CDCCCs), Red Cross volunteers, teachers — send what they see: a saltwater-killed taro garden, a relocated home, a dying reef, an eroded burial ground.
  2. Classify. AI is essential here: a model turns messy, multilingual free text into standardized, comparable records — loss type (economic / non-economic), sector, slow-onset vs extreme-event — work no web form can do. With no AI key, a transparent rule-based classifier runs instead.
  3. Verify. Nothing is published until a community focal point reviews it (do-no-harm).
  4. Publish. Verified records become an open, dated dataset (CSV + JSON under CC-BY) and an aggregate report — community-level evidence a country can use for its own Loss & Damage claims under the new Fund.

Reporter identifiers are never written to the published dataset (data minimization).

Quickstart

git clone https://github.com/tom231826-svg/talemaot.git
cd talemaot
python -m venv .venv && source .venv/bin/activate
pip install -e .

# Validate the Vanuatu config (no network)
talemaot check

# Ingest the illustrative community reports (rule-based, offline)
talemaot ingest --inbox examples/sample_reports.jsonl --records data/records.jsonl

# See what was collected
talemaot stats --records data/records.jsonl

# A focal point verifies records after review, then we publish the open dataset
talemaot verify r1 r3 r5 r8 --records data/records.jsonl
talemaot publish --records data/records.jsonl --out published --now 2026-06-13T09:00

# Optional AI classification; accuracy still requires human review:
export OPENAI_API_KEY=sk-...
talemaot ingest --inbox examples/sample_reports.jsonl --llm --records data/records.jsonl

AI backends (swappable, optional)

Talemaot never requires an LLM. With no key it uses the transparent rule-based classifier (lower confidence). Set OPENAI_API_KEY and pass --llm to use gpt-6-luna for multilingual classification; accuracy still requires human review. Luna uses reasoning_effort=none and bounded max_completion_tokens. TALEMAOT_LLM_PROVIDER=openai|anthropic|none and TALEMAOT_LLM_MODEL remain explicit overrides. Anthropic requires both an explicit provider selection and ANTHROPIC_API_KEY; it is never selected automatically. Without an OpenAI key, the default stays rule-based. Legacy HEATLINE_LLM_* variables are also accepted for shared-toolkit deployments. On a handled provider error it falls back to the rule-based classifier.

Clear old TALEMAOT_LLM_* and shared HEATLINE_LLM_* provider/model overrides to use the Luna default. See the Luna API documentation.

Adapting to another country

Everything country-specific lives in one file. Copy config/vanuatu.yaml, change the areas, languages and (if needed) the taxonomy, and run. No code changes. See docs/deployment.md.

Documentation

Development

pip install -e ".[dev]"
pytest --cov=talemaot        # fast, fully offline (no network, no API keys)

License & data

Code under the MIT License. The published Loss & Damage dataset is released under CC-BY. Classification taxonomy follows UNFCCC Loss & Damage concepts. Problem framing draws on WorldRiskIndex reporting, World Bank post-Cyclone Pam recovery data, and the ICJ climate advisory opinion case page.

Acknowledgements

Built as an entry to the UNFCCC AI for Climate Action Award (AICA) 2026, part of a three-deployment climate toolkit with Heatline (heat) and WaiCare (flood disease).

来源:GitHub · github.com