iints-sdk-python35 1.1.0__tar.gz → 1.1.1__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.
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/PKG-INFO +15 -5
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/README.md +14 -4
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/pyproject.toml +1 -1
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/ai/__init__.py +3 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/ai/backends/mistral_api.py +1 -1
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/ai/backends/ollama.py +76 -3
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/ai/cli.py +35 -1
- iints_sdk_python35-1.1.1/src/iints/ai/model_catalog.py +55 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints_sdk_python35.egg-info/PKG-INFO +15 -5
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints_sdk_python35.egg-info/SOURCES.txt +1 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/LICENSE +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/setup.cfg +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/__init__.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/ai/assistant.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/ai/backends/__init__.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/ai/backends/base.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/ai/mdmp_guard.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/ai/prompts.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/analysis/__init__.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/analysis/algorithm_xray.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/analysis/baseline.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/analysis/clinical_benchmark.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/analysis/clinical_metrics.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/analysis/clinical_tir_analyzer.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/analysis/diabetes_metrics.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/analysis/edge_efficiency.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/analysis/edge_performance_monitor.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/analysis/explainability.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/analysis/explainable_ai.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/analysis/hardware_benchmark.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/analysis/metrics.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/analysis/population_report.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/analysis/reporting.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/analysis/safety_index.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/analysis/sensor_filtering.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/analysis/validator.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/api/__init__.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/api/base_algorithm.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/api/registry.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/api/template_algorithm.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/assets/iints_logo.png +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/cli/__init__.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/cli/cli.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/core/__init__.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/core/algorithms/__init__.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/core/algorithms/battle_runner.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/core/algorithms/correction_bolus.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/core/algorithms/discovery.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/core/algorithms/fixed_basal_bolus.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/core/algorithms/hybrid_algorithm.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/core/algorithms/lstm_algorithm.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/core/algorithms/mock_algorithms.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/core/algorithms/pid_controller.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/core/algorithms/standard_pump_algo.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/core/device.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/core/device_manager.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/core/devices/__init__.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/core/devices/models.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/core/patient/__init__.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/core/patient/bergman_model.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/core/patient/models.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/core/patient/patient_factory.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/core/patient/profile.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/core/safety/__init__.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/core/safety/config.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/core/safety/input_validator.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/core/safety/supervisor.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/core/simulation/__init__.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/core/simulation/scenario_parser.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/core/simulator.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/core/supervisor.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/data/__init__.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/data/adapter.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/data/column_mapper.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/data/contracts.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/data/datasets.json +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/data/demo/__init__.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/data/demo/demo_cgm.csv +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/data/guardians.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/data/importer.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/data/ingestor.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/data/mdmp_visualizer.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/data/nightscout.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/data/quality_checker.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/data/registry.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/data/runner.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/data/synthetic_mirror.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/data/tidepool.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/data/universal_parser.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/data/virtual_patients/clinic_safe_baseline.yaml +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/data/virtual_patients/clinic_safe_hyper_challenge.yaml +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/data/virtual_patients/clinic_safe_hypo_prone.yaml +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/data/virtual_patients/clinic_safe_midnight.yaml +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/data/virtual_patients/clinic_safe_pizza.yaml +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/data/virtual_patients/clinic_safe_stress_meal.yaml +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/data/virtual_patients/default_patient.yaml +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/data/virtual_patients/patient_559_config.yaml +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/emulation/__init__.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/emulation/legacy_base.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/emulation/medtronic_780g.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/emulation/omnipod_5.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/emulation/tandem_controliq.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/highlevel.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/learning/__init__.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/learning/autonomous_optimizer.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/learning/learning_system.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/mdmp/__init__.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/mdmp/backend.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/metrics.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/population/__init__.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/population/generator.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/population/runner.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/presets/__init__.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/presets/evidence_sources.yaml +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/presets/forecast_calibration_profiles.yaml +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/presets/golden_benchmark.yaml +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/presets/presets.json +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/presets/safety_contract_default.yaml +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/presets/validation_profiles.yaml +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/research/__init__.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/research/audit.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/research/calibration_gate.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/research/config.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/research/dataset.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/research/evaluation.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/research/losses.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/research/metrics.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/research/model_registry.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/research/predictor.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/scenarios/__init__.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/scenarios/generator.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/templates/__init__.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/templates/default_algorithm.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/templates/scenarios/__init__.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/templates/scenarios/chaos_insulin_stacking.json +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/templates/scenarios/chaos_runaway_ai.json +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/templates/scenarios/example_scenario.json +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/templates/scenarios/exercise_stress.json +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/utils/__init__.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/utils/plotting.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/utils/run_io.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/validation/__init__.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/validation/golden.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/validation/replay.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/validation/run_validation.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/validation/safety_contract.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/validation/schemas.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/visualization/__init__.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/visualization/cockpit.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/visualization/uncertainty_cloud.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints_sdk_python35.egg-info/dependency_links.txt +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints_sdk_python35.egg-info/entry_points.txt +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints_sdk_python35.egg-info/requires.txt +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints_sdk_python35.egg-info/top_level.txt +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/tests/test_bergman.py +0 -0
- {iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/tests/test_population.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: iints-sdk-python35
|
|
3
|
-
Version: 1.1.
|
|
3
|
+
Version: 1.1.1
|
|
4
4
|
Summary: A pre-clinical Edge-AI SDK for diabetes management validation.
|
|
5
5
|
Author-email: Rune Bobbaers <rune.bobbaers@gmail.com>
|
|
6
6
|
Project-URL: Homepage, https://github.com/python35/IINTS-SDK
|
|
@@ -81,7 +81,7 @@ cd iints_quickstart
|
|
|
81
81
|
iints presets run --name baseline_t1d --algo algorithms/example_algorithm.py
|
|
82
82
|
```
|
|
83
83
|
|
|
84
|
-
## AI Assistant (Ministral via Ollama)
|
|
84
|
+
## AI Assistant (Ministral 3 Open-Weight via Ollama)
|
|
85
85
|
|
|
86
86
|
The SDK now includes a research-only AI assistant layer for explanations and run summaries.
|
|
87
87
|
It is gated by MDMP verification before any LLM call is allowed.
|
|
@@ -95,11 +95,19 @@ python -m pip install -U pip
|
|
|
95
95
|
python -m pip install -e ".[mdmp]"
|
|
96
96
|
```
|
|
97
97
|
|
|
98
|
-
Run
|
|
98
|
+
Run the open local Mistral model locally with Ollama:
|
|
99
99
|
|
|
100
100
|
```bash
|
|
101
|
-
|
|
102
|
-
|
|
101
|
+
python -m pip install -e ".[mdmp]"
|
|
102
|
+
ollama pull ministral-3:8b
|
|
103
|
+
iints ai models
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
Recommended first-time setup:
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
ollama pull ministral-3:8b
|
|
110
|
+
iints ai local-check --model ministral-3:8b
|
|
103
111
|
```
|
|
104
112
|
|
|
105
113
|
Example commands:
|
|
@@ -116,6 +124,8 @@ iints ai report results/simulation_run.json \
|
|
|
116
124
|
Notes:
|
|
117
125
|
- AI analysis is blocked if the MDMP artifact is invalid.
|
|
118
126
|
- Minimum required MDMP grade defaults to `research_grade`.
|
|
127
|
+
- The SDK now targets the open local `Ministral 3` Ollama model by default.
|
|
128
|
+
- Users can choose a larger or smaller local Mistral-family model with `--model ...`.
|
|
119
129
|
- Large JSON payloads are clipped automatically before prompt generation to keep local inference stable.
|
|
120
130
|
- Output is research-only and not medical advice.
|
|
121
131
|
|
|
@@ -30,7 +30,7 @@ cd iints_quickstart
|
|
|
30
30
|
iints presets run --name baseline_t1d --algo algorithms/example_algorithm.py
|
|
31
31
|
```
|
|
32
32
|
|
|
33
|
-
## AI Assistant (Ministral via Ollama)
|
|
33
|
+
## AI Assistant (Ministral 3 Open-Weight via Ollama)
|
|
34
34
|
|
|
35
35
|
The SDK now includes a research-only AI assistant layer for explanations and run summaries.
|
|
36
36
|
It is gated by MDMP verification before any LLM call is allowed.
|
|
@@ -44,11 +44,19 @@ python -m pip install -U pip
|
|
|
44
44
|
python -m pip install -e ".[mdmp]"
|
|
45
45
|
```
|
|
46
46
|
|
|
47
|
-
Run
|
|
47
|
+
Run the open local Mistral model locally with Ollama:
|
|
48
48
|
|
|
49
49
|
```bash
|
|
50
|
-
|
|
51
|
-
|
|
50
|
+
python -m pip install -e ".[mdmp]"
|
|
51
|
+
ollama pull ministral-3:8b
|
|
52
|
+
iints ai models
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Recommended first-time setup:
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
ollama pull ministral-3:8b
|
|
59
|
+
iints ai local-check --model ministral-3:8b
|
|
52
60
|
```
|
|
53
61
|
|
|
54
62
|
Example commands:
|
|
@@ -65,6 +73,8 @@ iints ai report results/simulation_run.json \
|
|
|
65
73
|
Notes:
|
|
66
74
|
- AI analysis is blocked if the MDMP artifact is invalid.
|
|
67
75
|
- Minimum required MDMP grade defaults to `research_grade`.
|
|
76
|
+
- The SDK now targets the open local `Ministral 3` Ollama model by default.
|
|
77
|
+
- Users can choose a larger or smaller local Mistral-family model with `--model ...`.
|
|
68
78
|
- Large JSON payloads are clipped automatically before prompt generation to keep local inference stable.
|
|
69
79
|
- Output is research-only and not medical advice.
|
|
70
80
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
from .assistant import AIResponse, IINTSAssistant
|
|
2
2
|
from .backends import DEFAULT_MINISTRAL_MODEL, DEFAULT_OLLAMA_HOST, OllamaBackend
|
|
3
3
|
from .mdmp_guard import GuardResult, MDMPGuard
|
|
4
|
+
from .model_catalog import LocalMistralModelProfile, list_local_mistral_models
|
|
4
5
|
|
|
5
6
|
__all__ = [
|
|
6
7
|
"AIResponse",
|
|
@@ -10,4 +11,6 @@ __all__ = [
|
|
|
10
11
|
"OllamaBackend",
|
|
11
12
|
"GuardResult",
|
|
12
13
|
"MDMPGuard",
|
|
14
|
+
"LocalMistralModelProfile",
|
|
15
|
+
"list_local_mistral_models",
|
|
13
16
|
]
|
|
@@ -13,5 +13,5 @@ class MistralAPIBackend:
|
|
|
13
13
|
def complete(self, *, system_prompt: str, user_prompt: str) -> str:
|
|
14
14
|
raise RuntimeError(
|
|
15
15
|
"Cloud fallback is not enabled in this SDK build yet. "
|
|
16
|
-
"Use mode='local' with Ollama for Ministral."
|
|
16
|
+
"Use mode='local' with Ollama for the open Ministral 3 model."
|
|
17
17
|
)
|
|
@@ -6,12 +6,19 @@ from urllib import error, request
|
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
DEFAULT_OLLAMA_HOST = "http://127.0.0.1:11434"
|
|
9
|
-
DEFAULT_MINISTRAL_MODEL = "
|
|
9
|
+
DEFAULT_MINISTRAL_MODEL = "ministral-3:8b"
|
|
10
|
+
LEGACY_MINISTRAL_MODEL = "mistral/ministral-8b-instruct"
|
|
11
|
+
MIN_OLLAMA_VERSION_FOR_MINISTRAL_3 = (0, 13, 1)
|
|
10
12
|
MINISTRAL_MODEL_ALIASES = (
|
|
11
13
|
DEFAULT_MINISTRAL_MODEL,
|
|
14
|
+
"ministral-3",
|
|
15
|
+
"ministral-3:latest",
|
|
16
|
+
"ministral-3:8b",
|
|
17
|
+
"ministral-3:8b-instruct",
|
|
12
18
|
"ministral",
|
|
13
19
|
"ministral-8b",
|
|
14
20
|
"ministral-8b-instruct",
|
|
21
|
+
LEGACY_MINISTRAL_MODEL,
|
|
15
22
|
)
|
|
16
23
|
|
|
17
24
|
|
|
@@ -23,7 +30,7 @@ class OllamaBackend:
|
|
|
23
30
|
*,
|
|
24
31
|
model_name: str = DEFAULT_MINISTRAL_MODEL,
|
|
25
32
|
base_url: str | None = None,
|
|
26
|
-
timeout_seconds: float =
|
|
33
|
+
timeout_seconds: float = 120.0,
|
|
27
34
|
) -> None:
|
|
28
35
|
self.model_name = model_name
|
|
29
36
|
self.base_url = (base_url or os.getenv("OLLAMA_HOST") or DEFAULT_OLLAMA_HOST).rstrip("/")
|
|
@@ -33,6 +40,28 @@ class OllamaBackend:
|
|
|
33
40
|
def _pull_hint(self) -> str:
|
|
34
41
|
return f"ollama pull {self.model_name}"
|
|
35
42
|
|
|
43
|
+
def _requires_ministral_3_runtime(self) -> bool:
|
|
44
|
+
requested = self.model_name.strip().lower()
|
|
45
|
+
return requested.startswith("ministral-3") or requested == "ministral"
|
|
46
|
+
|
|
47
|
+
@staticmethod
|
|
48
|
+
def _parse_version(raw_version: str) -> tuple[int, ...] | None:
|
|
49
|
+
value = raw_version.strip().lower().lstrip("v")
|
|
50
|
+
numeric_parts: list[int] = []
|
|
51
|
+
for part in value.split("."):
|
|
52
|
+
digits = ""
|
|
53
|
+
for char in part:
|
|
54
|
+
if char.isdigit():
|
|
55
|
+
digits += char
|
|
56
|
+
else:
|
|
57
|
+
break
|
|
58
|
+
if not digits:
|
|
59
|
+
break
|
|
60
|
+
numeric_parts.append(int(digits))
|
|
61
|
+
if not numeric_parts:
|
|
62
|
+
return None
|
|
63
|
+
return tuple(numeric_parts)
|
|
64
|
+
|
|
36
65
|
def _request_json(
|
|
37
66
|
self,
|
|
38
67
|
path: str,
|
|
@@ -79,6 +108,27 @@ class OllamaBackend:
|
|
|
79
108
|
return False
|
|
80
109
|
return True
|
|
81
110
|
|
|
111
|
+
def server_version(self) -> str | None:
|
|
112
|
+
try:
|
|
113
|
+
response = self._request_json("/api/version", method="GET")
|
|
114
|
+
except Exception:
|
|
115
|
+
return None
|
|
116
|
+
raw_version = response.get("version")
|
|
117
|
+
if isinstance(raw_version, str) and raw_version.strip():
|
|
118
|
+
return raw_version.strip()
|
|
119
|
+
return None
|
|
120
|
+
|
|
121
|
+
def version_supported(self) -> tuple[bool | None, str | None]:
|
|
122
|
+
version = self.server_version()
|
|
123
|
+
if version is None:
|
|
124
|
+
return None, None
|
|
125
|
+
if not self._requires_ministral_3_runtime():
|
|
126
|
+
return True, version
|
|
127
|
+
parsed = self._parse_version(version)
|
|
128
|
+
if parsed is None:
|
|
129
|
+
return None, version
|
|
130
|
+
return parsed >= MIN_OLLAMA_VERSION_FOR_MINISTRAL_3, version
|
|
131
|
+
|
|
82
132
|
def list_models(self) -> list[str]:
|
|
83
133
|
response = self._request_json("/api/tags", method="GET")
|
|
84
134
|
raw_models = response.get("models", [])
|
|
@@ -102,12 +152,24 @@ class OllamaBackend:
|
|
|
102
152
|
return installed_lookup[self.model_name.lower()]
|
|
103
153
|
|
|
104
154
|
requested = self.model_name.strip().lower()
|
|
105
|
-
if requested in {
|
|
155
|
+
if requested in {
|
|
156
|
+
"ministral",
|
|
157
|
+
"ministral-3",
|
|
158
|
+
"ministral-3:latest",
|
|
159
|
+
"ministral-3:8b",
|
|
160
|
+
"ministral-3:8b-instruct",
|
|
161
|
+
"ministral-8b",
|
|
162
|
+
"ministral-8b-instruct",
|
|
163
|
+
}:
|
|
106
164
|
for alias in MINISTRAL_MODEL_ALIASES:
|
|
107
165
|
resolved = installed_lookup.get(alias.lower())
|
|
108
166
|
if resolved is not None:
|
|
109
167
|
return resolved
|
|
110
168
|
|
|
169
|
+
for installed_name in installed:
|
|
170
|
+
lowered = installed_name.lower()
|
|
171
|
+
if "ministral-3" in lowered and "8b" in lowered:
|
|
172
|
+
return installed_name
|
|
111
173
|
for installed_name in installed:
|
|
112
174
|
lowered = installed_name.lower()
|
|
113
175
|
if "ministral" in lowered and "8b" in lowered:
|
|
@@ -116,6 +178,14 @@ class OllamaBackend:
|
|
|
116
178
|
return None
|
|
117
179
|
|
|
118
180
|
def ensure_model_ready(self) -> str:
|
|
181
|
+
version_ok, version = self.version_supported()
|
|
182
|
+
if version_ok is False:
|
|
183
|
+
required_version = ".".join(str(part) for part in MIN_OLLAMA_VERSION_FOR_MINISTRAL_3)
|
|
184
|
+
raise RuntimeError(
|
|
185
|
+
"The open Ministral 3 local model requires a newer Ollama runtime.\n"
|
|
186
|
+
f"Detected Ollama: {version}\n"
|
|
187
|
+
f"Required Ollama: >= {required_version}"
|
|
188
|
+
)
|
|
119
189
|
try:
|
|
120
190
|
resolved = self.resolve_model_name()
|
|
121
191
|
except RuntimeError:
|
|
@@ -137,6 +207,7 @@ class OllamaBackend:
|
|
|
137
207
|
return resolved
|
|
138
208
|
|
|
139
209
|
def healthcheck(self) -> dict[str, object]:
|
|
210
|
+
version_ok, version = self.version_supported()
|
|
140
211
|
installed = self.list_models()
|
|
141
212
|
resolved = self.resolve_model_name() if installed else None
|
|
142
213
|
return {
|
|
@@ -148,6 +219,8 @@ class OllamaBackend:
|
|
|
148
219
|
"ready": resolved is not None,
|
|
149
220
|
"pull_command": None if resolved is not None else self._pull_hint(),
|
|
150
221
|
"timeout_seconds": self.timeout_seconds,
|
|
222
|
+
"server_version": version,
|
|
223
|
+
"version_ok": version_ok,
|
|
151
224
|
}
|
|
152
225
|
|
|
153
226
|
def complete(self, *, system_prompt: str, user_prompt: str) -> str:
|
|
@@ -7,10 +7,12 @@ from typing import Any, Optional
|
|
|
7
7
|
import typer
|
|
8
8
|
from rich.console import Console
|
|
9
9
|
from rich.panel import Panel
|
|
10
|
+
from rich.table import Table
|
|
10
11
|
from typing_extensions import Annotated
|
|
11
12
|
|
|
12
13
|
from .assistant import AIResponse, IINTSAssistant
|
|
13
14
|
from .backends import DEFAULT_MINISTRAL_MODEL, OllamaBackend
|
|
15
|
+
from .model_catalog import list_local_mistral_models
|
|
14
16
|
|
|
15
17
|
|
|
16
18
|
app = typer.Typer(help="Research-only AI assistant commands gated by MDMP certification.")
|
|
@@ -64,6 +66,7 @@ def _render_local_check(console: Console, status: dict[str, object]) -> None:
|
|
|
64
66
|
f"Endpoint: {status.get('base_url')}",
|
|
65
67
|
f"Requested model: {status.get('requested_model')}",
|
|
66
68
|
f"Resolved local model: {resolved_model}",
|
|
69
|
+
f"Server version: {status.get('server_version') or 'unknown'}",
|
|
67
70
|
f"Timeout (s): {status.get('timeout_seconds')}",
|
|
68
71
|
f"Installed models: {installed_text}",
|
|
69
72
|
(
|
|
@@ -78,9 +81,40 @@ def _render_local_check(console: Console, status: dict[str, object]) -> None:
|
|
|
78
81
|
)
|
|
79
82
|
)
|
|
80
83
|
if ready:
|
|
81
|
-
console.print("[green]Local Ollama backend is ready for Ministral inference.[/green]")
|
|
84
|
+
console.print("[green]Local Ollama backend is ready for open Ministral 3 inference.[/green]")
|
|
82
85
|
else:
|
|
83
86
|
console.print("[bold red]Local Ollama backend is reachable, but the requested model is missing.[/bold red]")
|
|
87
|
+
if status.get("version_ok") is False:
|
|
88
|
+
console.print("[bold red]Ollama is too old for the open Ministral 3 runtime.[/bold red]")
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
@app.command("models")
|
|
92
|
+
def models() -> None:
|
|
93
|
+
console = Console()
|
|
94
|
+
table = Table(title="IINTS AI Local Mistral Model Guide")
|
|
95
|
+
table.add_column("Model Tag", style="cyan", no_wrap=True)
|
|
96
|
+
table.add_column("Best For", style="green")
|
|
97
|
+
table.add_column("Approx Download")
|
|
98
|
+
table.add_column("System RAM")
|
|
99
|
+
table.add_column("GPU VRAM")
|
|
100
|
+
table.add_column("Notes", overflow="fold")
|
|
101
|
+
|
|
102
|
+
for profile in list_local_mistral_models():
|
|
103
|
+
vram = f"{profile.recommended_vram_gb}+ GB" if profile.recommended_vram_gb is not None else "CPU-only"
|
|
104
|
+
table.add_row(
|
|
105
|
+
profile.tag,
|
|
106
|
+
profile.fit,
|
|
107
|
+
f"{profile.approx_download_gb:.1f} GB",
|
|
108
|
+
f"{profile.recommended_system_ram_gb}+ GB",
|
|
109
|
+
vram,
|
|
110
|
+
profile.notes,
|
|
111
|
+
)
|
|
112
|
+
|
|
113
|
+
console.print(table)
|
|
114
|
+
console.print(
|
|
115
|
+
"[dim]Tip:[/dim] start with "
|
|
116
|
+
f"`{DEFAULT_MINISTRAL_MODEL}` unless you know your hardware can comfortably run a larger local model."
|
|
117
|
+
)
|
|
84
118
|
|
|
85
119
|
|
|
86
120
|
def _build_assistant(
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from dataclasses import dataclass
|
|
4
|
+
|
|
5
|
+
from .backends.ollama import DEFAULT_MINISTRAL_MODEL
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
@dataclass(frozen=True)
|
|
9
|
+
class LocalMistralModelProfile:
|
|
10
|
+
tag: str
|
|
11
|
+
label: str
|
|
12
|
+
approx_download_gb: float
|
|
13
|
+
recommended_system_ram_gb: int
|
|
14
|
+
recommended_vram_gb: int | None
|
|
15
|
+
fit: str
|
|
16
|
+
notes: str
|
|
17
|
+
aliases: tuple[str, ...] = ()
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
LOCAL_MISTRAL_MODEL_PROFILES: tuple[LocalMistralModelProfile, ...] = (
|
|
21
|
+
LocalMistralModelProfile(
|
|
22
|
+
tag="ministral-3:3b",
|
|
23
|
+
label="Ministral 3 3B",
|
|
24
|
+
approx_download_gb=3.0,
|
|
25
|
+
recommended_system_ram_gb=16,
|
|
26
|
+
recommended_vram_gb=6,
|
|
27
|
+
fit="Entry-level laptop / small edge box",
|
|
28
|
+
notes="Best starting point for CPU-only systems or modest GPUs. Fastest option, lowest memory pressure.",
|
|
29
|
+
aliases=("ministral-3:3b",),
|
|
30
|
+
),
|
|
31
|
+
LocalMistralModelProfile(
|
|
32
|
+
tag=DEFAULT_MINISTRAL_MODEL,
|
|
33
|
+
label="Ministral 3 8B",
|
|
34
|
+
approx_download_gb=6.0,
|
|
35
|
+
recommended_system_ram_gb=24,
|
|
36
|
+
recommended_vram_gb=10,
|
|
37
|
+
fit="Balanced desktop / strong laptop",
|
|
38
|
+
notes="Recommended default for most users. Best trade-off between quality, speed, and local memory footprint.",
|
|
39
|
+
aliases=("ministral", "ministral-3", "ministral-3:8b"),
|
|
40
|
+
),
|
|
41
|
+
LocalMistralModelProfile(
|
|
42
|
+
tag="ministral-3:14b",
|
|
43
|
+
label="Ministral 3 14B",
|
|
44
|
+
approx_download_gb=10.0,
|
|
45
|
+
recommended_system_ram_gb=32,
|
|
46
|
+
recommended_vram_gb=16,
|
|
47
|
+
fit="High-end workstation",
|
|
48
|
+
notes="Use when you have plenty of RAM or a strong GPU and want better reasoning depth at the cost of latency.",
|
|
49
|
+
aliases=("ministral-3:14b",),
|
|
50
|
+
),
|
|
51
|
+
)
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
def list_local_mistral_models() -> list[LocalMistralModelProfile]:
|
|
55
|
+
return list(LOCAL_MISTRAL_MODEL_PROFILES)
|
{iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints_sdk_python35.egg-info/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: iints-sdk-python35
|
|
3
|
-
Version: 1.1.
|
|
3
|
+
Version: 1.1.1
|
|
4
4
|
Summary: A pre-clinical Edge-AI SDK for diabetes management validation.
|
|
5
5
|
Author-email: Rune Bobbaers <rune.bobbaers@gmail.com>
|
|
6
6
|
Project-URL: Homepage, https://github.com/python35/IINTS-SDK
|
|
@@ -81,7 +81,7 @@ cd iints_quickstart
|
|
|
81
81
|
iints presets run --name baseline_t1d --algo algorithms/example_algorithm.py
|
|
82
82
|
```
|
|
83
83
|
|
|
84
|
-
## AI Assistant (Ministral via Ollama)
|
|
84
|
+
## AI Assistant (Ministral 3 Open-Weight via Ollama)
|
|
85
85
|
|
|
86
86
|
The SDK now includes a research-only AI assistant layer for explanations and run summaries.
|
|
87
87
|
It is gated by MDMP verification before any LLM call is allowed.
|
|
@@ -95,11 +95,19 @@ python -m pip install -U pip
|
|
|
95
95
|
python -m pip install -e ".[mdmp]"
|
|
96
96
|
```
|
|
97
97
|
|
|
98
|
-
Run
|
|
98
|
+
Run the open local Mistral model locally with Ollama:
|
|
99
99
|
|
|
100
100
|
```bash
|
|
101
|
-
|
|
102
|
-
|
|
101
|
+
python -m pip install -e ".[mdmp]"
|
|
102
|
+
ollama pull ministral-3:8b
|
|
103
|
+
iints ai models
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
Recommended first-time setup:
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
ollama pull ministral-3:8b
|
|
110
|
+
iints ai local-check --model ministral-3:8b
|
|
103
111
|
```
|
|
104
112
|
|
|
105
113
|
Example commands:
|
|
@@ -116,6 +124,8 @@ iints ai report results/simulation_run.json \
|
|
|
116
124
|
Notes:
|
|
117
125
|
- AI analysis is blocked if the MDMP artifact is invalid.
|
|
118
126
|
- Minimum required MDMP grade defaults to `research_grade`.
|
|
127
|
+
- The SDK now targets the open local `Ministral 3` Ollama model by default.
|
|
128
|
+
- Users can choose a larger or smaller local Mistral-family model with `--model ...`.
|
|
119
129
|
- Large JSON payloads are clipped automatically before prompt generation to keep local inference stable.
|
|
120
130
|
- Output is research-only and not medical advice.
|
|
121
131
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/analysis/clinical_benchmark.py
RENAMED
|
File without changes
|
{iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/analysis/clinical_metrics.py
RENAMED
|
File without changes
|
{iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/analysis/clinical_tir_analyzer.py
RENAMED
|
File without changes
|
{iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/analysis/diabetes_metrics.py
RENAMED
|
File without changes
|
|
File without changes
|
{iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/analysis/edge_performance_monitor.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/analysis/hardware_benchmark.py
RENAMED
|
File without changes
|
|
File without changes
|
{iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/analysis/population_report.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/analysis/sensor_filtering.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/core/algorithms/battle_runner.py
RENAMED
|
File without changes
|
{iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/core/algorithms/correction_bolus.py
RENAMED
|
File without changes
|
{iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/core/algorithms/discovery.py
RENAMED
|
File without changes
|
{iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/core/algorithms/fixed_basal_bolus.py
RENAMED
|
File without changes
|
{iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/core/algorithms/hybrid_algorithm.py
RENAMED
|
File without changes
|
{iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/core/algorithms/lstm_algorithm.py
RENAMED
|
File without changes
|
{iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/core/algorithms/mock_algorithms.py
RENAMED
|
File without changes
|
{iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/core/algorithms/pid_controller.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/core/patient/bergman_model.py
RENAMED
|
File without changes
|
|
File without changes
|
{iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/core/patient/patient_factory.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/core/safety/input_validator.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/core/simulation/scenario_parser.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/emulation/tandem_controliq.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/learning/autonomous_optimizer.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/presets/evidence_sources.yaml
RENAMED
|
File without changes
|
|
File without changes
|
{iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/presets/golden_benchmark.yaml
RENAMED
|
File without changes
|
|
File without changes
|
{iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/presets/safety_contract_default.yaml
RENAMED
|
File without changes
|
{iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/presets/validation_profiles.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/research/calibration_gate.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/templates/default_algorithm.py
RENAMED
|
File without changes
|
{iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/templates/scenarios/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/validation/run_validation.py
RENAMED
|
File without changes
|
{iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/validation/safety_contract.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints/visualization/uncertainty_cloud.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints_sdk_python35.egg-info/requires.txt
RENAMED
|
File without changes
|
{iints_sdk_python35-1.1.0 → iints_sdk_python35-1.1.1}/src/iints_sdk_python35.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|