Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

208 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Github-Banner_spot

🧪 SPOT Datageneration

This repository contains the synthetic data generation pipeline for the SPOT system.
It creates YAML ↔ natural language sentence pairs for training and fine-tuning large language models (LLMs) on structured geospatial query generation.


🚀 Quickstart

To execute the python files in this repository, please use the shell scripts in the folder "scripts" and adjust the relevant parmeters.

The main steps of the data generation pipeline are the following:

  1. retrieve_combinations.sh: Find co-occurence pattern in tags and extraxt example values using Taginfo
  2. generate_combinations.sh: Generate a list of random combinations of areas, tags and distance values in YAML format
  3. generate_samples_with_gpt.sh: Feed the YAML from 2) to GPT to create natural sentences for training
  4. construct_train_test_split.sh: (Optional) Split the resulting dataset into train & test for model training

For benchmarking, please use the script "run_benchmarking.sh".


⚙️ Environment Variables

Variable Description
OPENAI_API_KEY API key for GPT-4 or GPT-4o-based sentence generation.
OPENAI_ORG Your OpenAI organization ID.
LLM_API_KEY Optional: API key for an alternative hosted LLM provider (might require additional configuration).

Security Note: Store API keys securely in .env and never commit real secrets to the repository.


🔑 Features

  • Dynamically generates diverse sentence–YAML pairs from parameterized templates
  • Supports multiple personas and writing styles
  • Injects natural errors (typos, grammar variations) for robust training
  • Supports generation using OpenAI or other LLM endpoints

🧩 Part of the SPOT System

This module is used to generate training data for:


📁 Output Structure

The generated data includes:

  • Structured YAML files describing geospatial scenes
  • Matching synthetic sentences (with optional noise injection)
  • Optional metadata about persona, language, and style

🔗 Related Docs


🙌 Contributing

We welcome contributions of all kinds — from developers, journalists, mappers, and more!
See CONTRIBUTING.md for how to get started. Also see our Code of Conduct.


📜 License

Licensed under AGPLv3.

About

No description, website, or topics provided.

Resources

Stars

4 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages