A Python framework for building calibrated distribution predictions by combining multiple LLM-generated predictions using maximum entropy models.
Given a forecasting question, this system:
- Uses an LLM to identify relevant variables
- Generates distributional queries about those variables
- Collects predictions from the LLM
- Combines them using maximum entropy methods into a coherent distribution
- Evaluates calibration against resolved Metaculus questions
pip install -e .Copy .env.example to .env and add your API keys:
cp .env.example .env
# Edit .env with your GEMINI_API_KEYfrom calibrated_response import Pipeline
from calibrated_response.llm import GeminiClient
# Initialize
client = GeminiClient()
pipeline = Pipeline(llm_client=client)
# Make a prediction
question = "How many people will take the train to work in San Francisco tomorrow?"
distribution = pipeline.predict(question)
print(distribution.summary())calibrated_response/
├── models/ # Data models (Question, Variable, Query, Distribution)
├── generation/ # LLM-based variable and query generation
├── maxent/ # Maximum entropy model for combining predictions
├── llm/ # LLM client implementations
├── evaluation/ # Evaluation pipeline and metrics
└── utils/ # Configuration and utilities
# Run tests
pytest
# Run evaluation
python -m calibrated_response.evaluation.runnerMIT