EU Horizon Europe project

NeuroClima

Climate and policy knowledge that anyone can ask questions of, in their own language and at their own level.

Funding
Horizon Europe, grant 101137711
Role
Principal contributor, development and research
Status
Live and in use. Try it (opens in a new tab)

01 The problem

The climate knowledge already exists. It sits in thousands of reports, papers and policy texts, most of them long, most of them PDFs, and nearly all written for people who already know the field.

  • A municipal officer
  • A researcher
  • A school student

They ask about the same documents and need different answers from them: in English, Italian, Portuguese or Greek, and at a reading level that suits them. That last part is a framing decision as much as a technical one.

02 The library

What it reads

2,312 research papers, 165 YouTube videos and 11 climate assessment reports, along with news coverage, policy and legal texts, and national statistics.

searchable passages
364,797
document summaries
9,931
collections
5
languages
4

Six spreadsheets of national environmental statistics get one summary each. Split into passages, one row at a time, they make up 62% of everything the search can find. Counted by summary, the library is mostly research and news. Counted by what retrieval actually returns, it is mostly numbers.

03 One question

“Have precipitation patterns changed in the Adamello Park since 2018?”

  1. 01

    Read the language

    A question in Italian, Portuguese or Greek is translated into English first, and the answer is translated back. Everything in between works in one language.

  2. 02

    Decide whether to search

    Greetings and questions about the bot itself are answered straight away. Anything that needs the library goes on.

  3. 03

    Rewrite the question

    In a conversation, words like it and there are replaced with what they refer to, and the grammar is tidied, so the search gets a question that stands on its own.

    Example

    “how it effect on the humans”

    “How does climate change affect humans?”

  4. 04

    Search three places at once

    Document passages, document summaries and a knowledge graph are searched in parallel. Advanced search goes wider: a step-back version of the question, a hypothetical answer passage and three paraphrases, six queries instead of one.

  5. 05

    Rerank

    A second model scores every candidate passage against the question. About fifteen make it through, with near duplicates removed.

  6. 06

    Write the answer

    An open-weight 7B model writes the reply from those passages only, with references back to the sources. If the search finds nothing usable, the answer says so before it says anything else.

  7. 07

    Check it afterwards

    Once the answer has been sent, a separate model reads it again and scores it on seven checks. The reader never waits for this.

05 Watch it work

A question in, sourced answers out

Title card of the NeuroClima platform demo video
Demo — walking the platform: a question in, sourced answers out.
The NeuroClima knowledge graph, showing EU policy entities and their relationships
Graph — how the sources relate, and how an answer traces back to them.

06 Speed

Sixty seconds down to ten

Early answers took about a minute. A minute is not slow, it is broken: nobody asks a follow-up of something that slow, and follow-up questions are the whole point of talking to a library.

  1. A smaller, sharper model

    Model optimisation, so the writer did less of the work a retriever should do.

  2. Better serving

    Serving the model through vLLM on our own cluster.

  3. Re-ranking

    Retrieve wide, then rank properly. It made answers better as well as faster.

07 Checking the checker

Every answer is read twice

Every check stores a paragraph explaining its score, and the Explain button shows it to the reader. Almost nobody reads those paragraphs. I did, for 1,197 answers.

  1. 01

    Groundedness

    Is each sentence supported by the passages?

  2. 02

    Context relevance

    Did the search find material about the question?

  3. 03

    Answer relevance

    Does the answer address what was asked?

  4. 04

    Coherence

    Does it hold together as writing?

  5. 05

    Comprehensiveness

    Does it cover what it should?

  6. 06

    Thoughtfulness

    Does it show depth? Written for this project.

  7. 07

    Harmfulness

    Could it cause harm?

About one in seven pieces of evidence the judge relied on was a sentence a model had written to describe a passage, not text from the document itself. The score could not show that. The reasons could.
Manuscript under review

08 Alongside

Alongside: finding tipping points

Some of the most useful evidence in climate writing is a single paragraph: the moment a community's habits start to shift for good. An intern in our group built an analyzer that finds those paragraphs, rewrites each one to stand on its own, and rates it against five published criteria. I helped along the way; the build is theirs. Its labels travel with the passages NeuroClima retrieves.

  1. Felt social consequences
  2. Shared awareness
  3. Shared understanding of causes and effects
  4. Demand for changes in habits
  5. Demand for political action

09 The build

Every component on the request path is open source and self-hosted, on Kubernetes. A document dropped into storage wakes the pipeline on its own: it is extracted, chunked, summarised and folded into the graph without anyone running a script.

What I built

Retrieval pipeline

Chunking, summarisation, and vision extraction for the figures and tables that carry half the meaning in a policy report. It reads PDFs, spreadsheets, CSVs, JSON and video, which is less elegant than it sounds and more of the work than anyone expects.

Graph reasoning

GraphRAG entity and relationship extraction with hierarchical community modelling, so the system can follow how sources relate instead of treating every passage as an island.

Sixty seconds down to ten

Where most of my time went. Model optimisation, better serving, and cross-encoder re-ranking, which had the useful side effect of improving the answers rather than just hurrying them.

Deployment

The Kubernetes cluster underneath: networking, ephemeral and persistent storage, vLLM serving, Ingress, database config, autoscaling. Plus a pipeline that wakes up when a document lands in MinIO and folds it into the knowledge base.

Monitoring and evaluation

Response tracing and dashboards, so administrators can see real sessions and queries. User feedback feeds back into fine-tuning, which is the only honest way to find out whether any of the rest of it worked.

  • Python
  • Unstructured
  • DistilBERT chunking
  • Qwen3 embeddings
  • Qwen3 reranker
  • Milvus
  • Microsoft GraphRAG
  • LanceDB
  • vLLM
  • Helsinki-NLP translation
  • Redis
  • MongoDB
  • MinIO
  • Langfuse
  • TruLens
  • Docker
  • Kubernetes

10 Screens

The interface

Next project ARGENTIC