forecasting-tools 0.3.0__tar.gz → 0.3.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/PKG-INFO +3 -3
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/README.md +2 -2
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/__init__.py +3 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/ai_models/ai_utils/response_types.py +1 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/ai_models/general_llm.py +80 -1
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/data_models/questions.py +4 -1
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/forecast_bots/bot_lists.py +4 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/forecast_bots/main_bot.py +6 -4
- forecasting_tools-0.3.2/forecasting_tools/forecast_bots/official_bots/template_bot_2026_fall.py +766 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/forecast_bots/template_bot.py +3 -3
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/helpers/metaculus_client.py +7 -2
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/pyproject.toml +1 -1
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/LICENSE +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/__init__.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/ai_congress_v2/__init__.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/ai_congress_v2/congress_member_agent.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/ai_congress_v2/congress_orchestrator.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/ai_congress_v2/data_models.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/ai_congress_v2/member_profiles.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/ai_congress_v2/tools.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/base_rates/base_rate_researcher.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/base_rates/deduplicator.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/base_rates/estimator.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/base_rates/niche_list_researcher.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/deprecated/configured_llms.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/deprecated/general_researcher.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/deprecated/question_generator.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/deprecated/question_responder.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/deprecated/question_router.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/deprecated/research_coordinator.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/minor_tools.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/other/data_analyzer.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/other/hosted_file.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/question_generators/generated_question.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/question_generators/harmful_question_identifier.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/question_generators/q3_q4_quarterly_questions.json +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/question_generators/question_decomposer.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/question_generators/question_operationalizer.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/question_generators/simple_question.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/question_generators/topic_generator.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/research/computer_use.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/research/find_a_dataset.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/research/key_factors_researcher.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/research/smart_searcher.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/situation_simulator/__init__.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/situation_simulator/agent_runner.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/situation_simulator/data_models.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/situation_simulator/effect_engine.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/situation_simulator/example_situations/industrial_basin.json +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/situation_simulator/example_situations/milbrook.json +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/situation_simulator/example_situations/simple_business.json +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/situation_simulator/example_situations/simple_dnd.json +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/situation_simulator/example_situations/simple_election.json +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/situation_simulator/example_situations/willowbrook.json +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/situation_simulator/example_situations/z_broken_mafia.json +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/situation_simulator/intervention_testing/__init__.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/situation_simulator/intervention_testing/data_models.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/situation_simulator/intervention_testing/forecast_resolver.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/situation_simulator/intervention_testing/intervention_policy_agent.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/situation_simulator/intervention_testing/intervention_runner.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/situation_simulator/intervention_testing/intervention_storage.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/situation_simulator/simulator.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/situation_simulator/situation_generator.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/source_archive/README.md +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/source_archive/__init__.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/source_archive/benchmark.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/source_archive/canonicalize.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/source_archive/catalog.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/source_archive/cli.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/source_archive/config.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/source_archive/content_store.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/source_archive/cost.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/source_archive/coverage.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/source_archive/fetchers/__init__.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/source_archive/fetchers/base.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/source_archive/fetchers/cloakbrowser_fetcher.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/source_archive/fetchers/firecrawl_fetcher.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/source_archive/fetchers/hyperbrowser_fetcher.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/source_archive/fetchers/pdf_fetcher.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/source_archive/fetchers/playwright_fetcher.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/source_archive/fetchers/tiered.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/source_archive/ingest/__init__.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/source_archive/ingest/trace_extraction.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/source_archive/ingest/url_extraction.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/source_archive/layout.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/source_archive/manifest.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/source_archive/models.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/source_archive/pipeline.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/source_archive/quality.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/source_archive/reindex.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/source_archive/reports.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/source_archive/storage/__init__.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/source_archive/storage/blob_store.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/source_archive/storage/local_store.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/source_archive/storage/s3_store.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/agents_and_tools/source_archive/viewer.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/ai_models/__init__.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/ai_models/agent_wrappers.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/ai_models/ai_utils/__init__.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/ai_models/ai_utils/openai_utils.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/ai_models/deprecated_model_classes/README.md +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/ai_models/deprecated_model_classes/claude35sonnet.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/ai_models/deprecated_model_classes/deepseek_r1.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/ai_models/deprecated_model_classes/gpt4o.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/ai_models/deprecated_model_classes/gpt4ovision.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/ai_models/deprecated_model_classes/gpto1.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/ai_models/deprecated_model_classes/gpto1preview.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/ai_models/deprecated_model_classes/metaculus4o.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/ai_models/deprecated_model_classes/perplexity.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/ai_models/exa_searcher.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/ai_models/model_interfaces/__init__.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/ai_models/model_interfaces/ai_model.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/ai_models/model_interfaces/combined_llm_archetype.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/ai_models/model_interfaces/incurs_cost.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/ai_models/model_interfaces/named_model.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/ai_models/model_interfaces/outputs_text.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/ai_models/model_interfaces/priced_per_request.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/ai_models/model_interfaces/request_limited_model.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/ai_models/model_interfaces/retryable_model.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/ai_models/model_interfaces/time_limited_model.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/ai_models/model_interfaces/token_limited_model.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/ai_models/model_interfaces/tokens_are_calculatable.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/ai_models/model_interfaces/tokens_incur_cost.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/ai_models/model_tracker.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/ai_models/resource_managers/__init__.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/ai_models/resource_managers/hard_limit_manager.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/ai_models/resource_managers/monetary_cost_manager.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/ai_models/resource_managers/refreshing_bucket_rate_limiter.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/auto_optimizers/bot_evaluator.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/auto_optimizers/bot_optimizer.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/auto_optimizers/control_prompt.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/auto_optimizers/customizable_bot.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/auto_optimizers/prompt_data_models.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/auto_optimizers/prompt_optimizer.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/auto_optimizers/question_plus_research.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/calibration_adjustment/.gitignore +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/calibration_adjustment/__init__.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/calibration_adjustment/_training_data.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/calibration_adjustment/benchmark.ipynb +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/calibration_adjustment/calibration_adjuster.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/calibration_adjustment/constant_shift_adjuster.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/calibration_adjustment/decision_tree_adjuster.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/calibration_adjustment/k_means_adjuster.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/calibration_adjustment/logistic_recalibration_adjuster.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/calibration_adjustment/step_adjuster.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/cp_benchmarking/benchmark_displayer.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/cp_benchmarking/benchmark_for_bot.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/cp_benchmarking/benchmarker.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/data_models/__init__.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/data_models/binary_report.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/data_models/coherence_link.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/data_models/conditional_models.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/data_models/conditional_report.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/data_models/data_organizer.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/data_models/forecast_report.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/data_models/markdown_tree.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/data_models/multiple_choice_report.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/data_models/numeric_report.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/data_models/timestamped_predictions.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/data_models/user_response.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/forecast_bots/__init__.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/forecast_bots/experiments/__init__.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/forecast_bots/experiments/q1_veritas_bot.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/forecast_bots/experiments/q1t_w_convert_to_binary.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/forecast_bots/experiments/q1t_w_personas_and_exa.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/forecast_bots/experiments/q2t_w_decomposition.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/forecast_bots/experiments/q3t_w_asknews.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/forecast_bots/experiments/q3t_w_exa.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/forecast_bots/experiments/q3t_w_q4vbinary.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/forecast_bots/experiments/q4_veritas_bot.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/forecast_bots/experiments/q4v_w_exa.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/forecast_bots/experiments/q4v_w_exa_and_dseekr1.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/forecast_bots/experiments/q4v_w_exa_and_o1_preview.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/forecast_bots/forecast_bot.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/forecast_bots/official_bots/__init__.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/forecast_bots/official_bots/gpt_4_1_optimized_bot.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/forecast_bots/official_bots/no_research_one_shot_bot.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/forecast_bots/official_bots/q1_template_bot.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/forecast_bots/official_bots/q2_template_bot.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/forecast_bots/official_bots/q3_template_bot.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/forecast_bots/official_bots/q4_template_bot.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/forecast_bots/official_bots/research_only_bot_2025_fall.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/forecast_bots/official_bots/template_bot_2025_fall.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/forecast_bots/official_bots/template_bot_2026_spring.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/forecast_bots/official_bots/template_bot_2026_summer.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/forecast_bots/official_bots/uniform_probability_bot.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/front_end/Home.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/front_end/__init__.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/front_end/app_pages/base_rate_page.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/front_end/app_pages/benchmark_page.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/front_end/app_pages/chat_page.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/front_end/app_pages/congress_v2_page.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/front_end/app_pages/csv_agent.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/front_end/app_pages/estimator_page.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/front_end/app_pages/forecaster_page.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/front_end/app_pages/intervention_leaderboard_page.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/front_end/app_pages/key_factors_page.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/front_end/app_pages/niche_list_researcher_page.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/front_end/app_pages/simulator_page.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/front_end/example_outputs/base_rate_page_examples.json +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/front_end/example_outputs/congress_page_example.json +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/front_end/example_outputs/congress_v2_page_example.json +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/front_end/example_outputs/estimator_page_examples.json +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/front_end/example_outputs/forecast_page_examples.json +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/front_end/example_outputs/key_factors_page_examples.json +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/front_end/example_outputs/niche_list_page_examples.json +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/front_end/example_outputs/question_generator_page_examples.json +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/front_end/helpers/app_page.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/front_end/helpers/custom_auth.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/front_end/helpers/report_displayer.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/front_end/helpers/tool_page.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/helpers/__init__.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/helpers/asknews_cache.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/helpers/asknews_searcher.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/helpers/forecast_database_manager.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/helpers/metaculus_api.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/helpers/prediction_extractor.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/helpers/structure_output.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/helpers/works_cited_creator.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/util/__init__.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/util/async_batching.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/util/coda_utils.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/util/custom_logger.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/util/file_manipulation.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/util/jsonable.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/util/misc.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/util/optional_imports.py +0 -0
- {forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/util/stats.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: forecasting-tools
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.2
|
|
4
4
|
Summary: AI forecasting and research tools to help humans reason about and forecast the future
|
|
5
5
|
License: MIT
|
|
6
6
|
License-File: LICENSE
|
|
@@ -80,7 +80,7 @@ Demo repo (get a Metaculus bot running in 30min): https://github.com/Metaculus/m
|
|
|
80
80
|
This repository contains forecasting and research tools built with Python and Streamlit. The project aims to assist users in making predictions, conducting research, and analyzing data related to hard to answer questions (especially those from Metaculus).
|
|
81
81
|
|
|
82
82
|
Here are the tools most likely to be useful to you:
|
|
83
|
-
- 🎯 **Forecasting Bot:** General forecaster that integrates with the Metaculus
|
|
83
|
+
- 🎯 **Forecasting Bot:** General forecaster that integrates with the Metaculus FutureEval bot tournament and provides a number of utilities. You can forecast with a pre-existing bot or override the class to customize your own (without redoing all the aggregation/API code, etc)
|
|
84
84
|
- 🔌 **Metaculus API Wrapper:** for interacting with questions and tournaments
|
|
85
85
|
- 🤖 **In-House Metaculus Bots**: You can see all the bots that Metaculus is running on their site in `run_bots.py`
|
|
86
86
|
|
|
@@ -91,7 +91,7 @@ Here are some other features of the project (not all are documented yet):
|
|
|
91
91
|
|
|
92
92
|
All the examples below are in a Jupyter Notebook called `README.ipynb` which you can run locally to test the package (make sure to run the first cell though).
|
|
93
93
|
|
|
94
|
-
If you decide you want to join the Metaculus
|
|
94
|
+
If you decide you want to join the Metaculus FutureEval Bot Tournament, it is recommended that you start [here](https://github.com/Metaculus/metac-bot-template). This repo is easy to start with and has a 30min tutorial for how to set it up.
|
|
95
95
|
|
|
96
96
|
Join the [discord](https://discord.gg/Dtq4JNdXnw) for updates and to give feedback (btw feedback is very appreciated, even just a quick "I did/didn't decide to use tool X for reason Y, though am busy and don't have time to elaborate" is helpful to know)
|
|
97
97
|
|
|
@@ -18,7 +18,7 @@ Demo repo (get a Metaculus bot running in 30min): https://github.com/Metaculus/m
|
|
|
18
18
|
This repository contains forecasting and research tools built with Python and Streamlit. The project aims to assist users in making predictions, conducting research, and analyzing data related to hard to answer questions (especially those from Metaculus).
|
|
19
19
|
|
|
20
20
|
Here are the tools most likely to be useful to you:
|
|
21
|
-
- 🎯 **Forecasting Bot:** General forecaster that integrates with the Metaculus
|
|
21
|
+
- 🎯 **Forecasting Bot:** General forecaster that integrates with the Metaculus FutureEval bot tournament and provides a number of utilities. You can forecast with a pre-existing bot or override the class to customize your own (without redoing all the aggregation/API code, etc)
|
|
22
22
|
- 🔌 **Metaculus API Wrapper:** for interacting with questions and tournaments
|
|
23
23
|
- 🤖 **In-House Metaculus Bots**: You can see all the bots that Metaculus is running on their site in `run_bots.py`
|
|
24
24
|
|
|
@@ -29,7 +29,7 @@ Here are some other features of the project (not all are documented yet):
|
|
|
29
29
|
|
|
30
30
|
All the examples below are in a Jupyter Notebook called `README.ipynb` which you can run locally to test the package (make sure to run the first cell though).
|
|
31
31
|
|
|
32
|
-
If you decide you want to join the Metaculus
|
|
32
|
+
If you decide you want to join the Metaculus FutureEval Bot Tournament, it is recommended that you start [here](https://github.com/Metaculus/metac-bot-template). This repo is easy to start with and has a 30min tutorial for how to set it up.
|
|
33
33
|
|
|
34
34
|
Join the [discord](https://discord.gg/Dtq4JNdXnw) for updates and to give feedback (btw feedback is very appreciated, even just a quick "I did/didn't decide to use tool X for reason Y, though am busy and don't have time to elaborate" is helpful to know)
|
|
35
35
|
|
|
@@ -150,6 +150,9 @@ from forecasting_tools.forecast_bots.official_bots.research_only_bot_2025_fall i
|
|
|
150
150
|
from forecasting_tools.forecast_bots.official_bots.template_bot_2025_fall import (
|
|
151
151
|
FallTemplateBot2025 as FallTemplateBot2025,
|
|
152
152
|
)
|
|
153
|
+
from forecasting_tools.forecast_bots.official_bots.template_bot_2026_fall import (
|
|
154
|
+
FallTemplateBot2026 as FallTemplateBot2026,
|
|
155
|
+
)
|
|
153
156
|
from forecasting_tools.forecast_bots.official_bots.template_bot_2026_spring import (
|
|
154
157
|
SpringTemplateBot2026 as SpringTemplateBot2026,
|
|
155
158
|
)
|
{forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/ai_models/general_llm.py
RENAMED
|
@@ -4,6 +4,7 @@ import asyncio
|
|
|
4
4
|
import inspect
|
|
5
5
|
import logging
|
|
6
6
|
import os
|
|
7
|
+
import re
|
|
7
8
|
from typing import Any, Literal
|
|
8
9
|
|
|
9
10
|
import litellm
|
|
@@ -57,6 +58,25 @@ class GeneralLlm(
|
|
|
57
58
|
Litellm support every model, most every parameter, and acts as one interface for every provider.
|
|
58
59
|
"""
|
|
59
60
|
|
|
61
|
+
_logged_model_provider_pairs: set[tuple[str, str]] = set()
|
|
62
|
+
|
|
63
|
+
_CREDENTIAL_KWARGS: frozenset[str] = frozenset(
|
|
64
|
+
{
|
|
65
|
+
"api_key",
|
|
66
|
+
"extra_headers",
|
|
67
|
+
"headers",
|
|
68
|
+
"model_list",
|
|
69
|
+
"aws_access_key_id",
|
|
70
|
+
"aws_secret_access_key",
|
|
71
|
+
"aws_session_token",
|
|
72
|
+
"aws_web_identity_token",
|
|
73
|
+
"vertex_credentials",
|
|
74
|
+
"azure_ad_token",
|
|
75
|
+
"azure_password",
|
|
76
|
+
"client_secret",
|
|
77
|
+
}
|
|
78
|
+
)
|
|
79
|
+
|
|
60
80
|
_defaults: dict[str, Any] = {
|
|
61
81
|
# The lowest matching model substring is used as default (default 60s timeout)
|
|
62
82
|
"gpt-4o": {
|
|
@@ -318,6 +338,7 @@ class GeneralLlm(
|
|
|
318
338
|
ModelTracker.give_cost_tracking_warning_if_needed(
|
|
319
339
|
self._litellm_model, observed_no_cost=observed_no_cost
|
|
320
340
|
)
|
|
341
|
+
serving_provider = self._get_checked_serving_provider(response)
|
|
321
342
|
|
|
322
343
|
if self.populate_citations:
|
|
323
344
|
citations = self._extract_citations(response, choices)
|
|
@@ -341,6 +362,7 @@ class GeneralLlm(
|
|
|
341
362
|
total_tokens_used=total_tokens,
|
|
342
363
|
model=self.model,
|
|
343
364
|
cost=direct_cost,
|
|
365
|
+
serving_provider=serving_provider,
|
|
344
366
|
)
|
|
345
367
|
|
|
346
368
|
return response
|
|
@@ -390,6 +412,58 @@ class GeneralLlm(
|
|
|
390
412
|
)
|
|
391
413
|
return mentions_temperature and is_unsupported
|
|
392
414
|
|
|
415
|
+
def _get_checked_serving_provider(self, response: ModelResponse) -> str | None:
|
|
416
|
+
serving_provider = typeguard.check_type(
|
|
417
|
+
(response.model_extra or {}).get("provider"), str | None
|
|
418
|
+
)
|
|
419
|
+
self._error_if_not_served_by_pinned_provider(serving_provider)
|
|
420
|
+
if serving_provider is None:
|
|
421
|
+
return None
|
|
422
|
+
model_and_provider = (self.model, serving_provider)
|
|
423
|
+
if model_and_provider not in GeneralLlm._logged_model_provider_pairs:
|
|
424
|
+
GeneralLlm._logged_model_provider_pairs.add(model_and_provider)
|
|
425
|
+
logger.info(
|
|
426
|
+
f"{self.model} is being served by provider '{serving_provider}'"
|
|
427
|
+
)
|
|
428
|
+
return serving_provider
|
|
429
|
+
|
|
430
|
+
def _get_pinned_provider_slugs(self) -> list[str]:
|
|
431
|
+
provider_routing = (self.litellm_kwargs.get("extra_body") or {}).get(
|
|
432
|
+
"provider"
|
|
433
|
+
) or {}
|
|
434
|
+
if provider_routing.get("allow_fallbacks", True) is not False:
|
|
435
|
+
return []
|
|
436
|
+
return provider_routing.get("order", [])
|
|
437
|
+
|
|
438
|
+
def _error_if_not_served_by_pinned_provider(
|
|
439
|
+
self, serving_provider: str | None
|
|
440
|
+
) -> None:
|
|
441
|
+
pinned_slugs = self._get_pinned_provider_slugs()
|
|
442
|
+
if not pinned_slugs:
|
|
443
|
+
return
|
|
444
|
+
if serving_provider is None or not any(
|
|
445
|
+
self._provider_name_matches_slug(serving_provider, slug)
|
|
446
|
+
for slug in pinned_slugs
|
|
447
|
+
):
|
|
448
|
+
raise RuntimeError(
|
|
449
|
+
f"{self.model} is pinned to {pinned_slugs} with fallbacks disabled, "
|
|
450
|
+
f"but was served by provider '{serving_provider}'"
|
|
451
|
+
)
|
|
452
|
+
|
|
453
|
+
@staticmethod
|
|
454
|
+
def _provider_name_matches_slug(provider_name: str, endpoint_slug: str) -> bool:
|
|
455
|
+
"""
|
|
456
|
+
OpenRouter reports display names that can be shorter or longer than the slug
|
|
457
|
+
(e.g. "Google" for "google-vertex", "Mancer 2" for "mancer"), so match on prefix.
|
|
458
|
+
"""
|
|
459
|
+
normalized_name = re.sub(r"[^a-z0-9]", "", provider_name.lower())
|
|
460
|
+
normalized_slug = re.sub(r"[^a-z0-9]", "", endpoint_slug.split("/")[0].lower())
|
|
461
|
+
if not normalized_name or not normalized_slug:
|
|
462
|
+
return False
|
|
463
|
+
return normalized_slug.startswith(
|
|
464
|
+
normalized_name
|
|
465
|
+
) or normalized_name.startswith(normalized_slug)
|
|
466
|
+
|
|
393
467
|
def _answer_from_reasoning_content(self, message: Message) -> str | None:
|
|
394
468
|
reasoning_content = getattr(message, "reasoning_content", None)
|
|
395
469
|
if isinstance(reasoning_content, str) and reasoning_content:
|
|
@@ -494,6 +568,7 @@ class GeneralLlm(
|
|
|
494
568
|
setattr(model_response, "choices", choices)
|
|
495
569
|
|
|
496
570
|
model_response.model = self.model
|
|
571
|
+
model_response._hidden_params = raw_response._hidden_params
|
|
497
572
|
|
|
498
573
|
setattr(
|
|
499
574
|
model_response,
|
|
@@ -620,7 +695,11 @@ class GeneralLlm(
|
|
|
620
695
|
return {
|
|
621
696
|
"original_model": self.model,
|
|
622
697
|
"allowed_tries": self.allowed_tries,
|
|
623
|
-
**{
|
|
698
|
+
**{
|
|
699
|
+
key: value
|
|
700
|
+
for key, value in self.litellm_kwargs.items()
|
|
701
|
+
if key not in self._CREDENTIAL_KWARGS
|
|
702
|
+
},
|
|
624
703
|
}
|
|
625
704
|
|
|
626
705
|
@classmethod
|
{forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/data_models/questions.py
RENAMED
|
@@ -340,6 +340,10 @@ class BinaryQuestion(MetaculusQuestion):
|
|
|
340
340
|
q2_center_community_prediction = aggregations["unweighted"]["latest"]["centers"] # type: ignore
|
|
341
341
|
assert len(q2_center_community_prediction) == 1
|
|
342
342
|
community_prediction_at_access_time = q2_center_community_prediction[0]
|
|
343
|
+
except (KeyError, TypeError):
|
|
344
|
+
community_prediction_at_access_time = None
|
|
345
|
+
|
|
346
|
+
try:
|
|
343
347
|
history = api_json["question"]["my_forecasts"]["history"]
|
|
344
348
|
previous_forecasts = None
|
|
345
349
|
if history:
|
|
@@ -360,7 +364,6 @@ class BinaryQuestion(MetaculusQuestion):
|
|
|
360
364
|
for forecast in history
|
|
361
365
|
]
|
|
362
366
|
except (KeyError, TypeError):
|
|
363
|
-
community_prediction_at_access_time = None
|
|
364
367
|
previous_forecasts = None
|
|
365
368
|
return BinaryQuestion(
|
|
366
369
|
community_prediction_at_access_time=community_prediction_at_access_time,
|
{forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/forecast_bots/bot_lists.py
RENAMED
|
@@ -32,6 +32,9 @@ from forecasting_tools.forecast_bots.official_bots.research_only_bot_2025_fall i
|
|
|
32
32
|
from forecasting_tools.forecast_bots.official_bots.template_bot_2025_fall import (
|
|
33
33
|
FallTemplateBot2025,
|
|
34
34
|
)
|
|
35
|
+
from forecasting_tools.forecast_bots.official_bots.template_bot_2026_fall import (
|
|
36
|
+
FallTemplateBot2026,
|
|
37
|
+
)
|
|
35
38
|
from forecasting_tools.forecast_bots.official_bots.template_bot_2026_spring import (
|
|
36
39
|
SpringTemplateBot2026,
|
|
37
40
|
)
|
|
@@ -62,6 +65,7 @@ def get_all_important_bot_classes() -> list[type[ForecastBot]]:
|
|
|
62
65
|
FallResearchOnlyBot2025,
|
|
63
66
|
SpringTemplateBot2026,
|
|
64
67
|
SummerTemplateBot2026,
|
|
68
|
+
FallTemplateBot2026,
|
|
65
69
|
GPT41OptimizedBot,
|
|
66
70
|
NoResearchOneShotBot,
|
|
67
71
|
]
|
{forecasting_tools-0.3.0 → forecasting_tools-0.3.2}/forecasting_tools/forecast_bots/main_bot.py
RENAMED
|
@@ -42,10 +42,12 @@ class MainBot(Q2TemplateBot2025):
|
|
|
42
42
|
def _llm_config_defaults(cls) -> dict[str, str | GeneralLlm]:
|
|
43
43
|
return {
|
|
44
44
|
"default": GeneralLlm(
|
|
45
|
-
model="
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
45
|
+
model="anthropic/claude-opus-5",
|
|
46
|
+
thinking={"type": "adaptive"},
|
|
47
|
+
output_config={"effort": "high"},
|
|
48
|
+
allowed_openai_params=["output_config"],
|
|
49
|
+
max_tokens=64000,
|
|
50
|
+
timeout=160,
|
|
49
51
|
),
|
|
50
52
|
"summarizer": GeneralLlm(model="openai/gpt-4o", temperature=0),
|
|
51
53
|
}
|