Talemaot:将社区气候损失报告转为结构化数据集的 Python 原型
tom231826-svg/talemaot
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.)
⚠️ 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
- 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.
- 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.
- Verify. Nothing is published until a community focal point reviews it (do-no-harm).
- 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
- Digital Public Goods alignment
- Safety / do-no-harm — human verification, data colonialism, no false precision
- Deployment
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