Skip to content
FloatChat

Ask the Indian Ocean anything.

A year of real Argo float data. Ask in plain English and watch FloatChat query, search and explain.

Or browse the floats
12 °C31 °Csurface temperature
active floats
662
profiles
20,365
measurements
454,964
newest profile, refreshed nightly
11 Nov 2026

Start with a question

Statistics become SQL on the database. Questions about particular profiles become a search of their descriptions. Follow-ups such as “now only the Bay of Bengal” keep the context.

How an answer is made

Five systems, from a float two kilometres down to the sentence on your screen. Nothing is hidden: the chat shows this same log for every question.

  1. Floats measure the ocean
  2. A nightly pipeline keeps a year of data
  3. The router reads your question
  4. SQL or search does the work
  5. The answer shows its work

Question: What is the average temperature at different depths in the Arabian Sea?

The run log fills in once the question reaches the router.

  1. Floats measure the ocean

    Robotic Argo floats drift at 1,000 m, dive to 2,000 m every ten days and rise measuring temperature and salinity. BGC floats add oxygen, chlorophyll, nitrate and pH.

    662 floats, 107 with oxygen sensors

  2. A nightly pipeline keeps a year of data

    GitHub Actions pulls new profiles from Ifremer ERDDAP, keeps quality-controlled values, puts every profile on 24 standard depths and writes a one-sentence description of it.

    QC flags 1-2, 24 standard depths, MiniLM embeddings, Postgres + pgvector

  3. The router reads your question

    An LLM decides whether the question needs statistics or a search, and pulls out the region, month, year and sensor. Keyword rules take over if the LLM is unavailable.

    gpt-oss-120b on Groq, validated JSON, keyword fallback

  4. SQL or search does the work

    Statistics run as vetted SQL templates, or as LLM-written SQL that is checked, run on a read-only role and repaired from database errors. Descriptions are found by vector search.

    read-only role, 5 s timeout, up to 2 repairs, exact filtered search

  5. The answer shows its work

    The answer streams in with the chart, the SQL and this run log, so every number can be checked against the query that produced it.

    Server-Sent Events: step, token, result

30/30

benchmark questions answered fully correctly

Thirty fixed questions, re-run against the live API every week. Each is checked for how it was routed, which filters were understood and whether the answer holds up.

See every question
Routing
100%
SQL or search, and which analysis
Filters
100%
region, month, year and sensor
Answer checks
100%
SQL applies the filters; profiles match
Median latency
1.9 s
full answer, live API

Last run 2026-11-09 05:16 UTC.

Next.jsFastAPIPostgreSQLPythonGitHub ActionsRenderVercel

Ask your first question.