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- 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.
- What is the average temperature at different depths in the Arabian Sea?SQL
- Which floats measured low oxygen in the Arabian Sea?Search
- How has the average temperature near the equator changed over time?SQL
- Show me salinity profiles near the equator in March 2026Search
- Compare chlorophyll levels across zones in the Bay of BengalSQL
- How many profiles were recorded in the Arabian Sea?SQL
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.
- Floats measure the ocean
- A nightly pipeline keeps a year of data
- The router reads your question
- SQL or search does the work
- 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.
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
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
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
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
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.