climsight

A next-generation climate information system that uses large language models (LLMs) alongside high-resolution climate model data, scientific literature, and diverse databases to deliver accurate, localized, and context-aware climate assessments.

https://github.com/clidyn/climsight

Science Score: 39.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 2 DOI reference(s) in README
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (19.6%) to scientific vocabulary

Keywords

ai-for-climate climate-assessments climate-data climate-services large-language-models llm
Last synced: 6 months ago · JSON representation

Repository

A next-generation climate information system that uses large language models (LLMs) alongside high-resolution climate model data, scientific literature, and diverse databases to deliver accurate, localized, and context-aware climate assessments.

Basic Info
  • Host: GitHub
  • Owner: CliDyn
  • License: bsd-3-clause
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 23.9 MB
Statistics
  • Stars: 45
  • Watchers: 4
  • Forks: 13
  • Open Issues: 17
  • Releases: 2
Topics
ai-for-climate climate-assessments climate-data climate-services large-language-models llm
Created over 2 years ago · Last pushed 7 months ago
Metadata Files
Readme License

README.md

ClimSight

ClimSight is an advanced tool that integrates Large Language Models (LLMs) with climate data to provide localized climate insights for decision-making. ClimSight transforms complex climate data into actionable insights for agriculture, urban planning, disaster management, and policy development.

The target audience includes researchers, providers of climate services, policymakers, agricultural planners, urban developers, and other stakeholders who require detailed climate information to support decision-making. ClimSight is designed to democratize access to climate data, empowering users with insights relevant to their specific contexts.

Image

ClimSight distinguishes itself through several key advancements: - Integration of LLMs: ClimSight leverages state-of-the-art LLMs to interpret complex climate-related queries, synthesizing information from diverse data sources. - Multi-Source Data Integration: Unlike conventional systems that rely solely on structured climate data, ClimSight integrates information from multiple sources. - Evidence-Based Approach: ClimSight ensures contextually accurate answers by retrieving relevant knowledge from scientific reports, IPCC documents, and geographical databases. - Modular Architecture: Specialized components handle distinct tasks, such as data retrieval, contextual understanding, and result synthesis, leading to more accurate outputs. - Real-World Applications: ClimSight is validated through practical examples, such as assessing climate risks for specific agricultural activities and urban planning scenarios.

Installation Options

You can use ClimSight in three ways: 1. Run a pre-built Docker container (simplest approach) 2. Build and run a Docker container from source 3. Install the Python package (via pip or conda/mamba)

Using ClimSight requires an OpenAI API key unless using the skipLLMCall mode for testing. The API key is only needed when running the application, not during installation.

Batch Processing

For batch processing of climate questions, the sequential directory contains specialized tools for generating, validating, and processing questions in bulk. These tools are particularly useful for research and analysis requiring multiple climate queries. See the sequential/README.md for detailed usage instructions.

1. Running with Docker (Pre-built Container)

The simplest way to get started is with our pre-built Docker container:

```bash

Make sure your OpenAI API key is set as an environment variable

export OPENAIAPIKEY="your-api-key-here"

Pull and run the container

docker pull koldunovn/climsight:stable docker run -p 8501:8501 -e OPENAIAPIKEY=$OPENAIAPIKEY koldunovn/climsight:stable ```

Then open http://localhost:8501/ in your browser.

2. Building and Running from Source with Docker

If you prefer to build from the latest source:

```bash

Clone the repository

git clone https://github.com/CliDyn/climsight.git cd climsight

Download required data

python download_data.py

Build and run the container

docker build -t climsight . docker run -p 8501:8501 -e OPENAIAPIKEY=$OPENAIAPIKEY climsight ```

Visit http://localhost:8501/ in your browser once the container is running.

For testing without OpenAI API calls: bash docker run -p 8501:8501 -e STREAMLIT_ARGS="skipLLMCall" climsight

3. Python Package Installation

Option A: Building from source with conda/mamba

```bash

Clone the repository

git clone https://github.com/CliDyn/climsight.git cd climsight

Create and activate the environment

mamba env create -f environment.yml conda activate climsight

Download required data

python download_data.py ```

Option B: Using pip

It's recommended to create a virtual environment to avoid dependency conflicts: ```bash

Option 1: Install from source

git clone https://github.com/CliDyn/climsight.git cd climsight

Create and activate a virtual environment

python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate

Install ClimSight

pip install -e . python download_data.py ```

Or if you prefer to set up without cloning the repository:

```bash

Option 2: Install from PyPI

Create and activate a virtual environment

python -m venv climsightenv source climsightenv/bin/activate # On Windows: climsight_env\Scripts\activate

Install the package

pip install climsight

Create a directory for data

mkdir -p climsight cd climsight

Download necessary configuration files

wget https://raw.githubusercontent.com/CliDyn/climsight/main/datasources.yml wget https://raw.githubusercontent.com/CliDyn/climsight/main/downloaddata.py wget https://raw.githubusercontent.com/CliDyn/climsight/main/config.yml

Download the required data (about 8 GB)

python download_data.py ```

Configuration

ClimSight will automatically use a config.yml file from the current directory. You can modify this file to customize settings:

```yaml

Key settings you can modify in config.yml:

- LLM model (gpt-4, ...)

- Climate data sources

- RAG database configuration

- Agent parameters

```

Running ClimSight

If installed with conda/mamba from source:

```bash

Run from the repository root

streamlit run src/climsight/climsight.py ```

If installed with pip:

```bash

Make sure you're in the directory with your data and config

climsight ```

You can optionally set your OpenAI API key as an environment variable: bash export OPENAI_API_KEY="your-api-key-here"

Otherwise, you can enter your API key directly in the browser interface when prompted.

Testing without an OpenAI API key:

```bash

From source:

streamlit run src/climsight/climsight.py skipLLMCall

Or if installed with pip:

climsight skipLLMCall ```

The application will open in your browser automatically. Just type your climate-related questions and press "Generate" to get insights.

ClimSight Interface

Citation

If you use or refer to ClimSight in your work, please cite:

Koldunov, N., Jung, T. Local climate services for all, courtesy of large language models. Commun Earth Environ 5, 13 (2024). https://doi.org/10.1038/s43247-023-01199-1

Owner

  • Name: Climate Dynamics
  • Login: CliDyn
  • Kind: organization
  • Location: Germany

Climate Dynamics section of AWI

GitHub Events

Total
  • Create event: 40
  • Release event: 1
  • Issues event: 24
  • Watch event: 15
  • Delete event: 34
  • Member event: 1
  • Issue comment event: 21
  • Push event: 120
  • Pull request review comment event: 1
  • Pull request review event: 34
  • Pull request event: 87
  • Fork event: 4
Last Year
  • Create event: 40
  • Release event: 1
  • Issues event: 24
  • Watch event: 15
  • Delete event: 34
  • Member event: 1
  • Issue comment event: 21
  • Push event: 120
  • Pull request review comment event: 1
  • Pull request review event: 34
  • Pull request event: 87
  • Fork event: 4

Committers

Last synced: 7 months ago

All Time
  • Total Commits: 342
  • Total Committers: 8
  • Avg Commits per committer: 42.75
  • Development Distribution Score (DDS): 0.409
Past Year
  • Commits: 167
  • Committers: 6
  • Avg Commits per committer: 27.833
  • Development Distribution Score (DDS): 0.365
Top Committers
Name Email Commits
Ivan Kuznetsov i****v@g****m 202
AntoniaJost a****t@w****e 95
Nikolay Koldunov k****n@g****m 24
dmpantiu d****a@g****m 14
Boris Shapkin s****s@g****m 4
Thomas Rackow t****w@a****e 1
Maciej Janicki m****i@c****i 1
Ismysh 1****h 1
Committer Domains (Top 20 + Academic)
csc.fi: 1 awi.de: 1

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 41
  • Total pull requests: 164
  • Average time to close issues: 2 months
  • Average time to close pull requests: 5 days
  • Total issue authors: 3
  • Total pull request authors: 7
  • Average comments per issue: 0.73
  • Average comments per pull request: 0.23
  • Merged pull requests: 124
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 11
  • Pull requests: 96
  • Average time to close issues: about 1 month
  • Average time to close pull requests: 2 days
  • Issue authors: 2
  • Pull request authors: 6
  • Average comments per issue: 0.82
  • Average comments per pull request: 0.04
  • Merged pull requests: 67
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • AntoniaJost (17)
  • kuivi (14)
  • koldunovn (10)
Pull Request Authors
  • kuivi (115)
  • AntoniaJost (36)
  • koldunovn (4)
  • dmpantiu (3)
  • maciejjan (3)
  • boryasbora (2)
  • valentinedwv (1)
Top Labels
Issue Labels
enhancement (6) warning (3) bug (3) quick (2) invalid (1) longterm (1) documentation (1)
Pull Request Labels
enhancement (11) bug (4) quick (2) documentation (1)

Packages

  • Total packages: 3
  • Total downloads:
    • pypi 20 last-month
  • Total dependent packages: 0
    (may contain duplicates)
  • Total dependent repositories: 0
    (may contain duplicates)
  • Total versions: 7
  • Total maintainers: 1
proxy.golang.org: github.com/CliDyn/climsight
  • Versions: 2
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.4%
Average: 5.6%
Dependent repos count: 5.8%
Last synced: 6 months ago
proxy.golang.org: github.com/clidyn/climsight
  • Versions: 2
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.4%
Average: 5.6%
Dependent repos count: 5.8%
Last synced: 6 months ago
pypi.org: climsight

A tool that combines LLMs with climate data to provide localized insights for decision-making in agriculture, urban planning, disaster management, and policy development.

  • Versions: 3
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 20 Last month
Rankings
Dependent packages count: 9.6%
Average: 36.3%
Dependent repos count: 63.1%
Maintainers (1)
Last synced: 6 months ago

Dependencies

Dockerfile docker
  • mambaorg/micromamba latest build
.github/workflows/python-package.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v4 composite
pyproject.toml pypi
  • dask *
  • folium *
  • geopandas *
  • geopy *
  • langchain *
  • matplotlib *
  • netcdf4 *
  • openai ==1.5.0
  • pandas *
  • pip *
  • pyproj *
  • requests *
  • streamlit *
  • streamlit-folium *
  • xarray *
.github/workflows/pytest.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v4 composite
environment.yml conda
  • dask
  • folium
  • geopandas
  • geopy
  • langchain
  • matplotlib
  • netcdf4
  • pandas
  • pip
  • pyproj
  • python 3.10.*
  • requests
  • streamlit
  • streamlit-folium
  • xarray
docs/requirements.txt pypi
  • sphinx ==7.1.2
  • sphinx-rtd-theme ==1.3.0rc1