Python SDK for dataset generation on LightningRod platform ⚡
Project description
Lightning Rod Python SDK 
The Lightning Rod SDK provides a simple Python API for generating custom forecasting datasets to train your LLMs. Transform news articles, documents, and other real-world data into high-quality training samples automatically.
Based on our research: Future-as-Label: Scalable Supervision from Real-World Outcomes
Documentation: docs.lightningrod.ai
👋 Quick Start
1. Install the SDK
pip install lightningrod-ai
2. Get your API key
Sign up at dashboard.lightningrod.ai to get your API key and $50 of free credits.
3. Generate your first dataset
Generate 1000+ forecasting questions in minutes - from raw sources to labeled dataset, automatically. ⚡
from lightningrod import LightningRod, BinaryAnswerType, QuestionPipeline, NewsSeedGenerator, ForwardLookingQuestionGenerator, WebSearchLabeler
lr = LightningRod(api_key="your-api-key")
binary_answer = BinaryAnswerType()
pipeline = QuestionPipeline(
seed_generator=NewsSeedGenerator(
start_date=datetime.now() - timedelta(days=90),
end_date=datetime.now(),
search_query=["Trump"],
),
question_generator=ForwardLookingQuestionGenerator(
instructions="Generate binary forecasting questions about Trump's actions and decisions.",
examples=[
"Will Trump impose 25% tariffs on all goods from Canada by February 1, 2025?",
"Will Pete Hegseth be confirmed as Secretary of Defense by February 15, 2025?",
]
),
labeler=WebSearchLabeler(answer_type=binary_answer),
)
dataset = lr.transforms.run(pipeline, max_questions=3000)
dataset.flattened() # Ready-to-use data for your training pipelines
We use this to generate the Future-as-Label training dataset for our research paper.
🆕 New: Foresight-v3 Forecasting Model
We've released foresight-v3, our latest forecasting model. Use it via the OpenAI-compatible API for probability estimates on forecasting questions:
from openai import OpenAI
client = OpenAI(
api_key="your-api-key",
base_url="https://api.lightningrod.ai/api/public/v1"
)
response = client.chat.completions.create(
model="LightningRodLabs/foresight-v3",
messages=[{"role": "user", "content": "Will the Fed cut rates by 25bp in March 2025?"}]
)
print(response.choices[0].message.content)
See the API docs for full details, or try the Foresight-v3 notebook.
✨ Examples
We have some example notebooks to help you get started! If you have trouble using the SDK, please submit an issue on Github.
Getting Started
| Example Name | Path | Google Colab Link |
|---|---|---|
| Quick Start | notebooks/00_quickstart.ipynb |
Open in Colab |
| News Datasource | notebooks/getting_started/01_news_datasource.ipynb |
Open in Colab |
| Custom Documents | notebooks/getting_started/02_custom_documents_datasource.ipynb |
Open in Colab |
| BigQuery Datasource | notebooks/getting_started/03_bigquery_datasource.ipynb |
Open in Colab |
| Answer Types | notebooks/getting_started/04_answer_types.ipynb |
Open in Colab |
| Fine Tuning | notebooks/getting_started/05_fine_tuning.ipynb |
Open in Colab |
Evaluation
| Example Name | Path | Google Colab Link |
|---|---|---|
| Foresight-v3 Model | notebooks/evaluation/01_foresight_model.ipynb |
Open in Colab |
| Model Consensus | notebooks/evaluation/02_model_consensus.ipynb |
Open in Colab |
| Polymarket Backtesting | notebooks/evaluation/03_polymarket_backtesting.ipynb |
Open in Colab |
| Document Classification | notebooks/evaluation/04_document_classification.ipynb |
Open in Colab |
Fine Tuning
| Example Name | Path | Google Colab Link |
|---|---|---|
| Golf Forecasting | notebooks/fine_tuning/01_golf_forecasting.ipynb |
Open in Colab |
| Trump Forecasting | notebooks/fine_tuning/02_trump_forecasting.ipynb |
Open in Colab |
| Survival LLM | notebooks/fine_tuning/03_survival_llm.ipynb |
Open in Colab |
Custom Filesets
| Example Name | Path | Google Colab Link |
|---|---|---|
| Create Fileset | notebooks/custom_filesets/01_create_fileset.ipynb |
Open in Colab |
| Basic QA Generation | notebooks/custom_filesets/02_basic_qa_generation.ipynb |
Open in Colab |
| Advanced Features | notebooks/custom_filesets/03_advanced_features.ipynb |
Open in Colab |
For full documentation, see docs.lightningrod.ai. For the SDK API reference in this repo, see API.md.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file lightningrod_ai-0.1.20.tar.gz.
File metadata
- Download URL: lightningrod_ai-0.1.20.tar.gz
- Upload date:
- Size: 130.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.18
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
74407f36a1043494fd1fca26cf6aa24c6eb9a1814ce2abca1b291e1e0744692d
|
|
| MD5 |
b4b8f41d0a9e944028a1f0d29a37b316
|
|
| BLAKE2b-256 |
ae07b0785fc15215bf35721d976cabdbb12b999b742b07d1b2d8ad02a911baf5
|
File details
Details for the file lightningrod_ai-0.1.20-py3-none-any.whl.
File metadata
- Download URL: lightningrod_ai-0.1.20-py3-none-any.whl
- Upload date:
- Size: 258.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.18
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a9d376458d815e079fdec12da92540baa3a0bcf38e35f233c9ddf06d4891e5e2
|
|
| MD5 |
46d486505c15e59cdf5209425742a4e9
|
|
| BLAKE2b-256 |
ca1711fe9171a4deaf383b67dcc433f4f6d5a42ac7850911acaa8135e67b54e9
|