POSEIDON is a multi-agent oceanographic analysis system for Argo float data. It supports natural language querying, retrieval, analysis, validation, and interactive visualization.
- Multi-agent orchestration (
query_understanding -> data_retrieval -> analysis -> validation) - Natural language query parsing for location, depth, time range, and variables
- Argo ERDDAP data retrieval plus SQLite-backed analytics
- Validation with confidence scoring, time-window checks, and outlier-rate checks
- Streamlit app with live execution progress, diagnostics, and Plotly visualizations
- FastAPI endpoints including
/v1/queryand/v1/stream/{conversation_id} - Supervisor-guided workflow with clarification, map confirmation, and approval
- Autonomous campaign scheduling for recurring monitoring workflows
- Python 3.11+
- OpenAI API key
git clone https://github.com/adi9336/POSEIDON.git
cd POSEIDON
python -m venv .venv
.\.venv\Scripts\Activate.ps1
.\.venv\Scripts\pip3.exe install -r requirements.txtFor local development tooling (tests, lint, training extras):
.\.venv\Scripts\pip3.exe install -r requirements-dev.txtCreate .env in project root:
OPENAI_API_KEY=your_openai_api_key_here
GOOGLE_MAPS_API_KEY=your_google_maps_api_key_here.\.venv\Scripts\Activate.ps1
streamlit run streamlit_app.pyApp URL:
http://localhost:8501
.\.venv\Scripts\Activate.ps1
uvicorn src.api.server:app --reloadAPI URLs:
- Docs:
http://127.0.0.1:8000/docs - OpenAPI:
http://127.0.0.1:8000/openapi.json - Health:
http://127.0.0.1:8000/health
POST /query: legacy compatibility endpointPOST /v1/query: multi-agent orchestrator responseWS /v1/stream/{conversation_id}: execution event streaming
{
"query": "Analyze temperature, salinity, and nitrate near Arabian Sea from 2024-05-01 to 2024-06-30 and give key insights.",
"mode": "multi"
}.\.venv\Scripts\python.exe -m pytest -qPOSEIDON/
|-- app.py
|-- streamlit_app.py
|-- .streamlit/
|-- config/
|-- data/
|-- docs/
|-- notebooks/
|-- scripts/
|-- src/
| |-- agent/ # legacy LangGraph pipeline
| |-- agents/ # orchestrator agents
| |-- api/
| |-- campaigns/
| |-- core/ # shared runtime paths
| |-- memory/
| |-- orchestrator/
| |-- skills/
| |-- state/
| |-- supervisor/
| `-- tools/
|-- tests/
|-- runtime.txt
|-- requirements.txt
|-- requirements-dev.txt
`-- pyproject.toml
See docs/project_overview.md for the full architecture walkthrough.
- Runtime database now lives under
data/argo_data.db. - Campaign scheduler is disabled by default in Streamlit deployment (
POSEIDON_ENABLE_CAMPAIGNS=false). - Semantic memory embedding is disabled by default for lightweight cloud deploys (
POSEIDON_ENABLE_SEMANTIC_MEMORY=false). - If you see OpenAI
401 invalid_api_key, rotate or update your key in.env.
- Push this repository to GitHub.
- In Streamlit Cloud, create a new app and set the main file to
streamlit_app.py. - Add required secrets (at minimum
OPENAI_API_KEY) in Streamlit App Settings. - Keep default lightweight runtime flags:
POSEIDON_ENABLE_CAMPAIGNS=falsePOSEIDON_ENABLE_SEMANTIC_MEMORY=false