predikit 0.4.2__tar.gz → 0.4.4__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.
- predikit-0.4.4/.claude/settings.local.json +15 -0
- {predikit-0.4.2 → predikit-0.4.4}/CHANGELOG.md +10 -0
- {predikit-0.4.2 → predikit-0.4.4}/PKG-INFO +91 -24
- {predikit-0.4.2 → predikit-0.4.4}/README.md +85 -21
- predikit-0.4.4/mlruns/1/models/m-27a74bc0ab2f40e09dc3d6c4f026cc1e/artifacts/MLmodel +23 -0
- predikit-0.4.4/mlruns/1/models/m-27a74bc0ab2f40e09dc3d6c4f026cc1e/artifacts/conda.yaml +22 -0
- predikit-0.4.4/mlruns/1/models/m-27a74bc0ab2f40e09dc3d6c4f026cc1e/artifacts/model.skops +0 -0
- predikit-0.4.4/mlruns/1/models/m-27a74bc0ab2f40e09dc3d6c4f026cc1e/artifacts/python_env.yaml +7 -0
- predikit-0.4.4/mlruns/1/models/m-27a74bc0ab2f40e09dc3d6c4f026cc1e/artifacts/requirements.txt +15 -0
- predikit-0.4.4/mlruns/1/models/m-28173468f0874040a705d2d3820a4f5c/artifacts/MLmodel +23 -0
- predikit-0.4.4/mlruns/1/models/m-28173468f0874040a705d2d3820a4f5c/artifacts/conda.yaml +22 -0
- predikit-0.4.4/mlruns/1/models/m-28173468f0874040a705d2d3820a4f5c/artifacts/model.skops +0 -0
- predikit-0.4.4/mlruns/1/models/m-28173468f0874040a705d2d3820a4f5c/artifacts/python_env.yaml +7 -0
- predikit-0.4.4/mlruns/1/models/m-28173468f0874040a705d2d3820a4f5c/artifacts/requirements.txt +15 -0
- predikit-0.4.4/mlruns/1/models/m-3eabd93b6ac447808321a1d58fef2b9b/artifacts/MLmodel +23 -0
- predikit-0.4.4/mlruns/1/models/m-3eabd93b6ac447808321a1d58fef2b9b/artifacts/conda.yaml +22 -0
- predikit-0.4.4/mlruns/1/models/m-3eabd93b6ac447808321a1d58fef2b9b/artifacts/model.skops +0 -0
- predikit-0.4.4/mlruns/1/models/m-3eabd93b6ac447808321a1d58fef2b9b/artifacts/python_env.yaml +7 -0
- predikit-0.4.4/mlruns/1/models/m-3eabd93b6ac447808321a1d58fef2b9b/artifacts/requirements.txt +15 -0
- predikit-0.4.4/mlruns/1/models/m-4816da14ba9c47c2b69d7d959f186d4e/artifacts/MLmodel +23 -0
- predikit-0.4.4/mlruns/1/models/m-4816da14ba9c47c2b69d7d959f186d4e/artifacts/conda.yaml +22 -0
- predikit-0.4.4/mlruns/1/models/m-4816da14ba9c47c2b69d7d959f186d4e/artifacts/model.skops +0 -0
- predikit-0.4.4/mlruns/1/models/m-4816da14ba9c47c2b69d7d959f186d4e/artifacts/python_env.yaml +7 -0
- predikit-0.4.4/mlruns/1/models/m-4816da14ba9c47c2b69d7d959f186d4e/artifacts/requirements.txt +15 -0
- predikit-0.4.4/mlruns/1/models/m-4deda032d5434d74888edc6f4df2e642/artifacts/MLmodel +23 -0
- predikit-0.4.4/mlruns/1/models/m-4deda032d5434d74888edc6f4df2e642/artifacts/conda.yaml +22 -0
- predikit-0.4.4/mlruns/1/models/m-4deda032d5434d74888edc6f4df2e642/artifacts/model.skops +0 -0
- predikit-0.4.4/mlruns/1/models/m-4deda032d5434d74888edc6f4df2e642/artifacts/python_env.yaml +7 -0
- predikit-0.4.4/mlruns/1/models/m-4deda032d5434d74888edc6f4df2e642/artifacts/requirements.txt +15 -0
- predikit-0.4.4/mlruns/1/models/m-6988b8fc759d4a6d9ba42b3ef9c5bbad/artifacts/MLmodel +23 -0
- predikit-0.4.4/mlruns/1/models/m-6988b8fc759d4a6d9ba42b3ef9c5bbad/artifacts/conda.yaml +22 -0
- predikit-0.4.4/mlruns/1/models/m-6988b8fc759d4a6d9ba42b3ef9c5bbad/artifacts/model.skops +0 -0
- predikit-0.4.4/mlruns/1/models/m-6988b8fc759d4a6d9ba42b3ef9c5bbad/artifacts/python_env.yaml +7 -0
- predikit-0.4.4/mlruns/1/models/m-6988b8fc759d4a6d9ba42b3ef9c5bbad/artifacts/requirements.txt +15 -0
- predikit-0.4.4/mlruns/1/models/m-885ed3e972dd4583aa9b4c518b369316/artifacts/MLmodel +23 -0
- predikit-0.4.4/mlruns/1/models/m-885ed3e972dd4583aa9b4c518b369316/artifacts/conda.yaml +22 -0
- predikit-0.4.4/mlruns/1/models/m-885ed3e972dd4583aa9b4c518b369316/artifacts/model.skops +0 -0
- predikit-0.4.4/mlruns/1/models/m-885ed3e972dd4583aa9b4c518b369316/artifacts/python_env.yaml +7 -0
- predikit-0.4.4/mlruns/1/models/m-885ed3e972dd4583aa9b4c518b369316/artifacts/requirements.txt +15 -0
- predikit-0.4.4/mlruns/1/models/m-936aa30d653c4e79920e98dd23b2e352/artifacts/MLmodel +23 -0
- predikit-0.4.4/mlruns/1/models/m-936aa30d653c4e79920e98dd23b2e352/artifacts/conda.yaml +22 -0
- predikit-0.4.4/mlruns/1/models/m-936aa30d653c4e79920e98dd23b2e352/artifacts/model.skops +0 -0
- predikit-0.4.4/mlruns/1/models/m-936aa30d653c4e79920e98dd23b2e352/artifacts/python_env.yaml +7 -0
- predikit-0.4.4/mlruns/1/models/m-936aa30d653c4e79920e98dd23b2e352/artifacts/requirements.txt +15 -0
- predikit-0.4.4/mlruns/1/models/m-9c8120122eb744128b3c91e724536d7e/artifacts/MLmodel +23 -0
- predikit-0.4.4/mlruns/1/models/m-9c8120122eb744128b3c91e724536d7e/artifacts/conda.yaml +22 -0
- predikit-0.4.4/mlruns/1/models/m-9c8120122eb744128b3c91e724536d7e/artifacts/model.skops +0 -0
- predikit-0.4.4/mlruns/1/models/m-9c8120122eb744128b3c91e724536d7e/artifacts/python_env.yaml +7 -0
- predikit-0.4.4/mlruns/1/models/m-9c8120122eb744128b3c91e724536d7e/artifacts/requirements.txt +15 -0
- predikit-0.4.4/mlruns/1/models/m-bc53e68577e64ed5b64b173ae23eb99d/artifacts/MLmodel +23 -0
- predikit-0.4.4/mlruns/1/models/m-bc53e68577e64ed5b64b173ae23eb99d/artifacts/conda.yaml +22 -0
- predikit-0.4.4/mlruns/1/models/m-bc53e68577e64ed5b64b173ae23eb99d/artifacts/model.skops +0 -0
- predikit-0.4.4/mlruns/1/models/m-bc53e68577e64ed5b64b173ae23eb99d/artifacts/python_env.yaml +7 -0
- predikit-0.4.4/mlruns/1/models/m-bc53e68577e64ed5b64b173ae23eb99d/artifacts/requirements.txt +15 -0
- predikit-0.4.4/mlruns/1/models/m-d5e1b20e8a9a4414b74b95d613362ae0/artifacts/MLmodel +23 -0
- predikit-0.4.4/mlruns/1/models/m-d5e1b20e8a9a4414b74b95d613362ae0/artifacts/conda.yaml +22 -0
- predikit-0.4.4/mlruns/1/models/m-d5e1b20e8a9a4414b74b95d613362ae0/artifacts/model.skops +0 -0
- predikit-0.4.4/mlruns/1/models/m-d5e1b20e8a9a4414b74b95d613362ae0/artifacts/python_env.yaml +7 -0
- predikit-0.4.4/mlruns/1/models/m-d5e1b20e8a9a4414b74b95d613362ae0/artifacts/requirements.txt +15 -0
- predikit-0.4.4/mlruns/1/models/m-e368d86129cb416cbdc24ce1f4d4062b/artifacts/MLmodel +23 -0
- predikit-0.4.4/mlruns/1/models/m-e368d86129cb416cbdc24ce1f4d4062b/artifacts/conda.yaml +22 -0
- predikit-0.4.4/mlruns/1/models/m-e368d86129cb416cbdc24ce1f4d4062b/artifacts/model.skops +0 -0
- predikit-0.4.4/mlruns/1/models/m-e368d86129cb416cbdc24ce1f4d4062b/artifacts/python_env.yaml +7 -0
- predikit-0.4.4/mlruns/1/models/m-e368d86129cb416cbdc24ce1f4d4062b/artifacts/requirements.txt +15 -0
- predikit-0.4.4/mlruns/1/models/m-e71aea9d1d2646f0970b78d821200719/artifacts/MLmodel +23 -0
- predikit-0.4.4/mlruns/1/models/m-e71aea9d1d2646f0970b78d821200719/artifacts/conda.yaml +22 -0
- predikit-0.4.4/mlruns/1/models/m-e71aea9d1d2646f0970b78d821200719/artifacts/model.skops +0 -0
- predikit-0.4.4/mlruns/1/models/m-e71aea9d1d2646f0970b78d821200719/artifacts/python_env.yaml +7 -0
- predikit-0.4.4/mlruns/1/models/m-e71aea9d1d2646f0970b78d821200719/artifacts/requirements.txt +15 -0
- predikit-0.4.4/mlruns/1/models/m-f374e93dce4f4be498ccf04e1fb1ac9e/artifacts/MLmodel +23 -0
- predikit-0.4.4/mlruns/1/models/m-f374e93dce4f4be498ccf04e1fb1ac9e/artifacts/conda.yaml +22 -0
- predikit-0.4.4/mlruns/1/models/m-f374e93dce4f4be498ccf04e1fb1ac9e/artifacts/model.skops +0 -0
- predikit-0.4.4/mlruns/1/models/m-f374e93dce4f4be498ccf04e1fb1ac9e/artifacts/python_env.yaml +7 -0
- predikit-0.4.4/mlruns/1/models/m-f374e93dce4f4be498ccf04e1fb1ac9e/artifacts/requirements.txt +15 -0
- {predikit-0.4.2 → predikit-0.4.4}/pyproject.toml +11 -3
- {predikit-0.4.2 → predikit-0.4.4}/src/predikit/__init__.py +1 -1
- {predikit-0.4.2 → predikit-0.4.4}/src/predikit/cli.py +2 -1
- {predikit-0.4.2 → predikit-0.4.4}/src/predikit/exporters/langchain.py +2 -1
- {predikit-0.4.2 → predikit-0.4.4}/src/predikit/exporters/openai.py +3 -2
- {predikit-0.4.2 → predikit-0.4.4}/src/predikit/loaders/mlflow.py +2 -2
- {predikit-0.4.2 → predikit-0.4.4}/src/predikit/loaders/snowflake.py +5 -1
- {predikit-0.4.2 → predikit-0.4.4}/src/predikit/tool.py +12 -0
- {predikit-0.4.2 → predikit-0.4.4}/tests/test_confidence.py +3 -3
- predikit-0.4.4/uv.lock +5166 -0
- predikit-0.4.2/.claude/settings.local.json +0 -10
- {predikit-0.4.2 → predikit-0.4.4}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {predikit-0.4.2 → predikit-0.4.4}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {predikit-0.4.2 → predikit-0.4.4}/.github/workflows/publish.yml +0 -0
- {predikit-0.4.2 → predikit-0.4.4}/.github/workflows/test.yml +0 -0
- {predikit-0.4.2 → predikit-0.4.4}/.gitignore +0 -0
- {predikit-0.4.2 → predikit-0.4.4}/.pre-commit-config.yaml +0 -0
- {predikit-0.4.2 → predikit-0.4.4}/CLAUDE.md +0 -0
- {predikit-0.4.2 → predikit-0.4.4}/CONTRIBUTING.md +0 -0
- {predikit-0.4.2 → predikit-0.4.4}/LICENSE +0 -0
- {predikit-0.4.2 → predikit-0.4.4}/docs/logo.gif +0 -0
- {predikit-0.4.2 → predikit-0.4.4}/docs/logo.png +0 -0
- {predikit-0.4.2 → predikit-0.4.4}/examples/01_basic_sklearn.py +0 -0
- {predikit-0.4.2 → predikit-0.4.4}/examples/02_xgboost_regression.py +0 -0
- {predikit-0.4.2 → predikit-0.4.4}/examples/03_orlando_real_estate.py +0 -0
- {predikit-0.4.2 → predikit-0.4.4}/examples/04_confidence_routing.py +0 -0
- {predikit-0.4.2 → predikit-0.4.4}/examples/05_multi_model_ensemble.py +0 -0
- {predikit-0.4.2 → predikit-0.4.4}/examples/06_mlflow_loader.py +0 -0
- {predikit-0.4.2 → predikit-0.4.4}/examples/07_snowflake_loader.py +0 -0
- {predikit-0.4.2 → predikit-0.4.4}/src/predikit/coerce.py +0 -0
- {predikit-0.4.2 → predikit-0.4.4}/src/predikit/ensemble.py +0 -0
- {predikit-0.4.2 → predikit-0.4.4}/src/predikit/exceptions.py +0 -0
- {predikit-0.4.2 → predikit-0.4.4}/src/predikit/exporters/__init__.py +0 -0
- {predikit-0.4.2 → predikit-0.4.4}/src/predikit/introspect.py +0 -0
- {predikit-0.4.2 → predikit-0.4.4}/src/predikit/loaders/__init__.py +0 -0
- {predikit-0.4.2 → predikit-0.4.4}/src/predikit/registry.py +0 -0
- {predikit-0.4.2 → predikit-0.4.4}/tests/__init__.py +0 -0
- {predikit-0.4.2 → predikit-0.4.4}/tests/test_cli.py +0 -0
- {predikit-0.4.2 → predikit-0.4.4}/tests/test_coerce.py +0 -0
- {predikit-0.4.2 → predikit-0.4.4}/tests/test_ensemble.py +0 -0
- {predikit-0.4.2 → predikit-0.4.4}/tests/test_exporters_openai.py +0 -0
- {predikit-0.4.2 → predikit-0.4.4}/tests/test_introspect.py +0 -0
- {predikit-0.4.2 → predikit-0.4.4}/tests/test_loaders_mlflow.py +0 -0
- {predikit-0.4.2 → predikit-0.4.4}/tests/test_loaders_snowflake.py +0 -0
- {predikit-0.4.2 → predikit-0.4.4}/tests/test_logging.py +0 -0
- {predikit-0.4.2 → predikit-0.4.4}/tests/test_registry.py +0 -0
- {predikit-0.4.2 → predikit-0.4.4}/tests/test_tool.py +0 -0
- {predikit-0.4.2 → predikit-0.4.4}/tests/test_weighted_ensemble.py +0 -0
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"permissions": {
|
|
3
|
+
"allow": [
|
|
4
|
+
"Bash(git add *)",
|
|
5
|
+
"Bash(git commit -m ' *)",
|
|
6
|
+
"Bash(python -m pytest tests/ -v --tb=short --cov=src/predikit --cov-report=term-missing)",
|
|
7
|
+
"WebFetch(domain:github.com)",
|
|
8
|
+
"PowerShell(python -m pip install mypy -q)",
|
|
9
|
+
"PowerShell(python -m mypy src/predikit)",
|
|
10
|
+
"Bash(python -m pytest --tb=short -q)",
|
|
11
|
+
"Bash(uv run *)",
|
|
12
|
+
"PowerShell(C:\\\\AI\\\\predikit\\\\.venv\\\\Scripts\\\\python.exe -m ensurepip --upgrade)"
|
|
13
|
+
]
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -6,6 +6,16 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [0.4.4] - 2026-06-24
|
|
10
|
+
|
|
11
|
+
### Changed
|
|
12
|
+
- README overhauled: added "Why predikit?" comparison table, "Works with" ecosystem section, GitHub star/fork badges, and a shipped-vs-planned roadmap
|
|
13
|
+
- Quick start section replaces "30-second example" heading; `---` dividers added between major sections for better scanability
|
|
14
|
+
- PyPI package description updated to a more descriptive one-liner
|
|
15
|
+
- Keywords expanded: added `scikit-learn`, `tool-use`, `openai`, `langchain`, `mlops`, `ai-agents`, `pydantic`, `model-serving`
|
|
16
|
+
- Added `Documentation` URL to `[project.urls]` in `pyproject.toml`
|
|
17
|
+
- Added `Topic :: Software Development :: Libraries :: Python Modules` and `Typing :: Typed` classifiers
|
|
18
|
+
|
|
9
19
|
## [0.4.2] - 2026-06-13
|
|
10
20
|
|
|
11
21
|
### Changed
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: predikit
|
|
3
|
-
Version: 0.4.
|
|
4
|
-
Summary:
|
|
3
|
+
Version: 0.4.4
|
|
4
|
+
Summary: Wrap any trained sklearn/XGBoost model as an LLM-callable tool — auto-generated JSON schemas, Pydantic I/O, OpenAI & LangChain ready, zero boilerplate.
|
|
5
5
|
Project-URL: Homepage, https://github.com/Tejas-TA/predikit
|
|
6
6
|
Project-URL: Repository, https://github.com/Tejas-TA/predikit
|
|
7
|
+
Project-URL: Documentation, https://github.com/Tejas-TA/predikit#readme
|
|
7
8
|
Project-URL: Bug Tracker, https://github.com/Tejas-TA/predikit/issues
|
|
8
9
|
Project-URL: Changelog, https://github.com/Tejas-TA/predikit/releases
|
|
9
10
|
Author-email: Tejas Tumakuru Ashok <tejasta@gmail.com>
|
|
10
11
|
License: MIT
|
|
11
12
|
License-File: LICENSE
|
|
12
|
-
Keywords: agents,function-calling,llm,ml-tools,sklearn,xgboost
|
|
13
|
+
Keywords: agents,ai-agents,function-calling,langchain,llm,machine-learning,ml-tools,mlops,model-serving,openai,pydantic,scikit-learn,sklearn,tool-use,xgboost
|
|
13
14
|
Classifier: Development Status :: 4 - Beta
|
|
14
15
|
Classifier: Intended Audience :: Developers
|
|
15
16
|
Classifier: Intended Audience :: Science/Research
|
|
@@ -19,6 +20,8 @@ Classifier: Programming Language :: Python :: 3.10
|
|
|
19
20
|
Classifier: Programming Language :: Python :: 3.11
|
|
20
21
|
Classifier: Programming Language :: Python :: 3.12
|
|
21
22
|
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
23
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
24
|
+
Classifier: Typing :: Typed
|
|
22
25
|
Requires-Python: >=3.10
|
|
23
26
|
Requires-Dist: numpy>=1.24
|
|
24
27
|
Requires-Dist: pydantic>=2.0
|
|
@@ -56,7 +59,8 @@ Description-Content-Type: text/markdown
|
|
|
56
59
|
</p>
|
|
57
60
|
|
|
58
61
|
<p align="center">
|
|
59
|
-
|
|
62
|
+
<strong>The bridge between your ML models and LLM agents.</strong><br/>
|
|
63
|
+
Wrap any trained scikit-learn or XGBoost model as an LLM-callable tool —<br/>
|
|
60
64
|
auto-generated JSON schemas, typed I/O, zero boilerplate.
|
|
61
65
|
</p>
|
|
62
66
|
|
|
@@ -68,6 +72,8 @@ Description-Content-Type: text/markdown
|
|
|
68
72
|
</p>
|
|
69
73
|
|
|
70
74
|
<p align="center">
|
|
75
|
+
<a href="https://github.com/Tejas-TA/predikit/stargazers"><img src="https://img.shields.io/github/stars/Tejas-TA/predikit?style=social" alt="GitHub Stars"/></a>
|
|
76
|
+
<a href="https://github.com/Tejas-TA/predikit/network/members"><img src="https://img.shields.io/github/forks/Tejas-TA/predikit?style=social" alt="GitHub Forks"/></a>
|
|
71
77
|
<a href="https://pepy.tech/project/predikit"><img src="https://static.pepy.tech/personalized-badge/predikit?period=week&units=international_system&left_color=grey&right_color=blue&left_text=weekly+downloads" alt="Weekly Downloads"/></a>
|
|
72
78
|
<a href="https://pepy.tech/project/predikit"><img src="https://static.pepy.tech/personalized-badge/predikit?period=month&units=international_system&left_color=grey&right_color=blue&left_text=monthly+downloads" alt="Monthly Downloads"/></a>
|
|
73
79
|
<a href="https://pepy.tech/project/predikit"><img src="https://static.pepy.tech/personalized-badge/predikit?period=total&units=international_system&left_color=grey&right_color=blue&left_text=total+downloads" alt="Total Downloads"/></a>
|
|
@@ -79,34 +85,71 @@ tool.to_openai() # OpenAI function schema, ready to pass to the API
|
|
|
79
85
|
tool.invoke({"sqft": 2200}) # → {"price_usd": 370730}
|
|
80
86
|
```
|
|
81
87
|
|
|
88
|
+
---
|
|
89
|
+
|
|
82
90
|
## Table of Contents
|
|
91
|
+
- [Why predikit?](#why-predikit)
|
|
92
|
+
- [Works with](#works-with)
|
|
83
93
|
- [Install](#install)
|
|
84
|
-
- [
|
|
94
|
+
- [Quick start](#quick-start)
|
|
85
95
|
- [Core API](#core-api)
|
|
86
96
|
- [Field naming rule](#field-naming-rule)
|
|
87
97
|
- [Cookbook](#cookbook)
|
|
98
|
+
- [Roadmap](#roadmap)
|
|
88
99
|
- [Contributing](#contributing)
|
|
89
100
|
- [License](#license)
|
|
90
101
|
|
|
91
|
-
|
|
102
|
+
---
|
|
92
103
|
|
|
93
|
-
|
|
94
|
-
|
|
104
|
+
## Why predikit?
|
|
105
|
+
|
|
106
|
+
Most ML pipelines stop at `.predict()`. Getting that prediction callable by an LLM agent — with validated inputs, correct types, and a schema the model can reason about — requires glue code that's tedious to write and easy to get wrong.
|
|
107
|
+
|
|
108
|
+
predikit handles that layer for you:
|
|
109
|
+
|
|
110
|
+
| | Without predikit | With predikit |
|
|
111
|
+
|--|------------------|---------------|
|
|
112
|
+
| **Schema** | Hand-write JSON Schema for every model | Auto-generated from your Pydantic `BaseModel` |
|
|
113
|
+
| **Type safety** | Manual casting, silent failures | Pydantic v2 validation with clear error messages |
|
|
114
|
+
| **LLM integration** | OpenAI / LangChain boilerplate per model | `.to_openai()` / `.to_langchain()` in one line |
|
|
115
|
+
| **Ensemble routing** | Custom aggregation logic per project | `ModelEnsemble` with 5 built-in strategies |
|
|
116
|
+
| **Confidence handling** | Write your own threshold checks | `confidence_threshold` + `on_low_confidence` |
|
|
117
|
+
| **Model registries** | Manual MLflow / Snowflake registry calls | `from_mlflow()` / `from_snowflake()` loaders |
|
|
118
|
+
| **Async** | `asyncio.get_event_loop().run_in_executor(...)` | `await tool.ainvoke(inputs)` |
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
## Works with
|
|
123
|
+
|
|
124
|
+
predikit is designed to plug into the tools your team already uses:
|
|
125
|
+
|
|
126
|
+
**Models** — scikit-learn · XGBoost
|
|
127
|
+
|
|
128
|
+
**LLM frameworks** — OpenAI function calling · LangChain · any tool-calling API that accepts JSON Schema
|
|
129
|
+
|
|
130
|
+
**Model registries** — MLflow Model Registry · Snowflake Model Registry
|
|
131
|
+
|
|
132
|
+
**Validation** — Pydantic v2
|
|
95
133
|
|
|
96
|
-
|
|
97
|
-
pip install predikit[xgboost]
|
|
134
|
+
**Async** — `asyncio`-compatible via `ainvoke()`
|
|
98
135
|
|
|
99
|
-
|
|
100
|
-
pip install predikit[langchain]
|
|
136
|
+
---
|
|
101
137
|
|
|
102
|
-
|
|
103
|
-
|
|
138
|
+
## Install
|
|
139
|
+
|
|
140
|
+
```bash
|
|
141
|
+
pip install predikit
|
|
104
142
|
|
|
105
|
-
#
|
|
106
|
-
pip install predikit[
|
|
143
|
+
# Optional extras
|
|
144
|
+
pip install predikit[xgboost] # XGBoost support
|
|
145
|
+
pip install predikit[langchain] # LangChain StructuredTool export
|
|
146
|
+
pip install predikit[mlflow] # MLflow Model Registry loader
|
|
147
|
+
pip install predikit[snowflake] # Snowflake Model Registry loader
|
|
107
148
|
```
|
|
108
149
|
|
|
109
|
-
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
## Quick start
|
|
110
153
|
|
|
111
154
|
```python
|
|
112
155
|
from pydantic import BaseModel, Field
|
|
@@ -147,6 +190,8 @@ tool.invoke({
|
|
|
147
190
|
# → {"species": 0}
|
|
148
191
|
```
|
|
149
192
|
|
|
193
|
+
---
|
|
194
|
+
|
|
150
195
|
## Core API
|
|
151
196
|
|
|
152
197
|
### `ModelTool`
|
|
@@ -205,6 +250,8 @@ ModelEnsemble(
|
|
|
205
250
|
|
|
206
251
|
`ModelEnsemble` exposes the same `.invoke()`, `.ainvoke()`, `.to_openai()`, and `.to_langchain()` interface as `ModelTool`.
|
|
207
252
|
|
|
253
|
+
---
|
|
254
|
+
|
|
208
255
|
## Field naming rule
|
|
209
256
|
|
|
210
257
|
**Your Pydantic schema field names must exactly match the column names the model was trained on.**
|
|
@@ -234,6 +281,8 @@ Schema has: ['square_footage', 'beds', 'bathrooms'], model expects: ['sqft', 'be
|
|
|
234
281
|
|
|
235
282
|
> **Tip:** If you trained with a numpy array (no DataFrame), predikit has no feature names to check — it uses your schema's field definition order instead.
|
|
236
283
|
|
|
284
|
+
---
|
|
285
|
+
|
|
237
286
|
## Cookbook
|
|
238
287
|
|
|
239
288
|
### XGBoost regression
|
|
@@ -389,23 +438,41 @@ tool = from_snowflake(
|
|
|
389
438
|
|
|
390
439
|
Pass `output_method="predict_proba"` or any other method your Snowflake model exposes. The returned `ModelTool` is identical to one built directly — all exporters, confidence routing, and ensemble strategies work as-is. Requires `pip install predikit[snowflake]`.
|
|
391
440
|
|
|
392
|
-
###
|
|
441
|
+
### End-to-end demo
|
|
442
|
+
|
|
443
|
+
See [`examples/03_orlando_real_estate.py`](examples/03_orlando_real_estate.py) for a full walkthrough: synthetic dataset → XGBoost training → `ModelTool` → registry → OpenAI schema → prediction.
|
|
393
444
|
|
|
394
|
-
|
|
445
|
+
---
|
|
395
446
|
|
|
396
447
|
## Roadmap
|
|
397
448
|
|
|
398
|
-
|
|
449
|
+
### Shipped
|
|
450
|
+
|
|
451
|
+
- [x] OpenAI function-calling schema export
|
|
452
|
+
- [x] LangChain `StructuredTool` export
|
|
453
|
+
- [x] Pydantic v2 typed I/O validation
|
|
454
|
+
- [x] Multi-model `ModelEnsemble` — collect / mean / vote / weighted variants
|
|
455
|
+
- [x] Confidence routing — `warn` / `raise` / `fallback`
|
|
456
|
+
- [x] Async `ainvoke()` via thread pool executor
|
|
457
|
+
- [x] MLflow Model Registry loader
|
|
458
|
+
- [x] Snowflake Model Registry loader
|
|
459
|
+
- [x] `predikit inspect` CLI
|
|
460
|
+
|
|
461
|
+
### Planned
|
|
399
462
|
|
|
400
|
-
- HuggingFace / PyTorch / TensorFlow model support
|
|
401
|
-
- Streaming inference support
|
|
402
|
-
- OpenAI Assistants API integration
|
|
463
|
+
- [ ] HuggingFace / PyTorch / TensorFlow model support
|
|
464
|
+
- [ ] Streaming inference support
|
|
465
|
+
- [ ] OpenAI Assistants API integration
|
|
466
|
+
- [ ] MCP server mode
|
|
467
|
+
|
|
468
|
+
---
|
|
403
469
|
|
|
404
470
|
## Contributing
|
|
405
471
|
|
|
406
472
|
See [CONTRIBUTING.md](CONTRIBUTING.md) for development setup, code style, and PR guidelines. The [CHANGELOG](CHANGELOG.md) tracks notable changes per release.
|
|
407
473
|
|
|
474
|
+
Issues and PRs are welcome — if you're wrapping a model type or registry that predikit doesn't support yet, open a discussion.
|
|
475
|
+
|
|
408
476
|
## License
|
|
409
477
|
|
|
410
478
|
MIT © Tejas Tumakuru Ashok
|
|
411
|
-
|
|
@@ -6,7 +6,8 @@
|
|
|
6
6
|
</p>
|
|
7
7
|
|
|
8
8
|
<p align="center">
|
|
9
|
-
|
|
9
|
+
<strong>The bridge between your ML models and LLM agents.</strong><br/>
|
|
10
|
+
Wrap any trained scikit-learn or XGBoost model as an LLM-callable tool —<br/>
|
|
10
11
|
auto-generated JSON schemas, typed I/O, zero boilerplate.
|
|
11
12
|
</p>
|
|
12
13
|
|
|
@@ -18,6 +19,8 @@
|
|
|
18
19
|
</p>
|
|
19
20
|
|
|
20
21
|
<p align="center">
|
|
22
|
+
<a href="https://github.com/Tejas-TA/predikit/stargazers"><img src="https://img.shields.io/github/stars/Tejas-TA/predikit?style=social" alt="GitHub Stars"/></a>
|
|
23
|
+
<a href="https://github.com/Tejas-TA/predikit/network/members"><img src="https://img.shields.io/github/forks/Tejas-TA/predikit?style=social" alt="GitHub Forks"/></a>
|
|
21
24
|
<a href="https://pepy.tech/project/predikit"><img src="https://static.pepy.tech/personalized-badge/predikit?period=week&units=international_system&left_color=grey&right_color=blue&left_text=weekly+downloads" alt="Weekly Downloads"/></a>
|
|
22
25
|
<a href="https://pepy.tech/project/predikit"><img src="https://static.pepy.tech/personalized-badge/predikit?period=month&units=international_system&left_color=grey&right_color=blue&left_text=monthly+downloads" alt="Monthly Downloads"/></a>
|
|
23
26
|
<a href="https://pepy.tech/project/predikit"><img src="https://static.pepy.tech/personalized-badge/predikit?period=total&units=international_system&left_color=grey&right_color=blue&left_text=total+downloads" alt="Total Downloads"/></a>
|
|
@@ -29,34 +32,71 @@ tool.to_openai() # OpenAI function schema, ready to pass to the API
|
|
|
29
32
|
tool.invoke({"sqft": 2200}) # → {"price_usd": 370730}
|
|
30
33
|
```
|
|
31
34
|
|
|
35
|
+
---
|
|
36
|
+
|
|
32
37
|
## Table of Contents
|
|
38
|
+
- [Why predikit?](#why-predikit)
|
|
39
|
+
- [Works with](#works-with)
|
|
33
40
|
- [Install](#install)
|
|
34
|
-
- [
|
|
41
|
+
- [Quick start](#quick-start)
|
|
35
42
|
- [Core API](#core-api)
|
|
36
43
|
- [Field naming rule](#field-naming-rule)
|
|
37
44
|
- [Cookbook](#cookbook)
|
|
45
|
+
- [Roadmap](#roadmap)
|
|
38
46
|
- [Contributing](#contributing)
|
|
39
47
|
- [License](#license)
|
|
40
48
|
|
|
41
|
-
|
|
49
|
+
---
|
|
42
50
|
|
|
43
|
-
|
|
44
|
-
|
|
51
|
+
## Why predikit?
|
|
52
|
+
|
|
53
|
+
Most ML pipelines stop at `.predict()`. Getting that prediction callable by an LLM agent — with validated inputs, correct types, and a schema the model can reason about — requires glue code that's tedious to write and easy to get wrong.
|
|
54
|
+
|
|
55
|
+
predikit handles that layer for you:
|
|
56
|
+
|
|
57
|
+
| | Without predikit | With predikit |
|
|
58
|
+
|--|------------------|---------------|
|
|
59
|
+
| **Schema** | Hand-write JSON Schema for every model | Auto-generated from your Pydantic `BaseModel` |
|
|
60
|
+
| **Type safety** | Manual casting, silent failures | Pydantic v2 validation with clear error messages |
|
|
61
|
+
| **LLM integration** | OpenAI / LangChain boilerplate per model | `.to_openai()` / `.to_langchain()` in one line |
|
|
62
|
+
| **Ensemble routing** | Custom aggregation logic per project | `ModelEnsemble` with 5 built-in strategies |
|
|
63
|
+
| **Confidence handling** | Write your own threshold checks | `confidence_threshold` + `on_low_confidence` |
|
|
64
|
+
| **Model registries** | Manual MLflow / Snowflake registry calls | `from_mlflow()` / `from_snowflake()` loaders |
|
|
65
|
+
| **Async** | `asyncio.get_event_loop().run_in_executor(...)` | `await tool.ainvoke(inputs)` |
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## Works with
|
|
70
|
+
|
|
71
|
+
predikit is designed to plug into the tools your team already uses:
|
|
72
|
+
|
|
73
|
+
**Models** — scikit-learn · XGBoost
|
|
74
|
+
|
|
75
|
+
**LLM frameworks** — OpenAI function calling · LangChain · any tool-calling API that accepts JSON Schema
|
|
76
|
+
|
|
77
|
+
**Model registries** — MLflow Model Registry · Snowflake Model Registry
|
|
78
|
+
|
|
79
|
+
**Validation** — Pydantic v2
|
|
45
80
|
|
|
46
|
-
|
|
47
|
-
pip install predikit[xgboost]
|
|
81
|
+
**Async** — `asyncio`-compatible via `ainvoke()`
|
|
48
82
|
|
|
49
|
-
|
|
50
|
-
pip install predikit[langchain]
|
|
83
|
+
---
|
|
51
84
|
|
|
52
|
-
|
|
53
|
-
|
|
85
|
+
## Install
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
pip install predikit
|
|
54
89
|
|
|
55
|
-
#
|
|
56
|
-
pip install predikit[
|
|
90
|
+
# Optional extras
|
|
91
|
+
pip install predikit[xgboost] # XGBoost support
|
|
92
|
+
pip install predikit[langchain] # LangChain StructuredTool export
|
|
93
|
+
pip install predikit[mlflow] # MLflow Model Registry loader
|
|
94
|
+
pip install predikit[snowflake] # Snowflake Model Registry loader
|
|
57
95
|
```
|
|
58
96
|
|
|
59
|
-
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## Quick start
|
|
60
100
|
|
|
61
101
|
```python
|
|
62
102
|
from pydantic import BaseModel, Field
|
|
@@ -97,6 +137,8 @@ tool.invoke({
|
|
|
97
137
|
# → {"species": 0}
|
|
98
138
|
```
|
|
99
139
|
|
|
140
|
+
---
|
|
141
|
+
|
|
100
142
|
## Core API
|
|
101
143
|
|
|
102
144
|
### `ModelTool`
|
|
@@ -155,6 +197,8 @@ ModelEnsemble(
|
|
|
155
197
|
|
|
156
198
|
`ModelEnsemble` exposes the same `.invoke()`, `.ainvoke()`, `.to_openai()`, and `.to_langchain()` interface as `ModelTool`.
|
|
157
199
|
|
|
200
|
+
---
|
|
201
|
+
|
|
158
202
|
## Field naming rule
|
|
159
203
|
|
|
160
204
|
**Your Pydantic schema field names must exactly match the column names the model was trained on.**
|
|
@@ -184,6 +228,8 @@ Schema has: ['square_footage', 'beds', 'bathrooms'], model expects: ['sqft', 'be
|
|
|
184
228
|
|
|
185
229
|
> **Tip:** If you trained with a numpy array (no DataFrame), predikit has no feature names to check — it uses your schema's field definition order instead.
|
|
186
230
|
|
|
231
|
+
---
|
|
232
|
+
|
|
187
233
|
## Cookbook
|
|
188
234
|
|
|
189
235
|
### XGBoost regression
|
|
@@ -339,23 +385,41 @@ tool = from_snowflake(
|
|
|
339
385
|
|
|
340
386
|
Pass `output_method="predict_proba"` or any other method your Snowflake model exposes. The returned `ModelTool` is identical to one built directly — all exporters, confidence routing, and ensemble strategies work as-is. Requires `pip install predikit[snowflake]`.
|
|
341
387
|
|
|
342
|
-
###
|
|
388
|
+
### End-to-end demo
|
|
389
|
+
|
|
390
|
+
See [`examples/03_orlando_real_estate.py`](examples/03_orlando_real_estate.py) for a full walkthrough: synthetic dataset → XGBoost training → `ModelTool` → registry → OpenAI schema → prediction.
|
|
343
391
|
|
|
344
|
-
|
|
392
|
+
---
|
|
345
393
|
|
|
346
394
|
## Roadmap
|
|
347
395
|
|
|
348
|
-
|
|
396
|
+
### Shipped
|
|
397
|
+
|
|
398
|
+
- [x] OpenAI function-calling schema export
|
|
399
|
+
- [x] LangChain `StructuredTool` export
|
|
400
|
+
- [x] Pydantic v2 typed I/O validation
|
|
401
|
+
- [x] Multi-model `ModelEnsemble` — collect / mean / vote / weighted variants
|
|
402
|
+
- [x] Confidence routing — `warn` / `raise` / `fallback`
|
|
403
|
+
- [x] Async `ainvoke()` via thread pool executor
|
|
404
|
+
- [x] MLflow Model Registry loader
|
|
405
|
+
- [x] Snowflake Model Registry loader
|
|
406
|
+
- [x] `predikit inspect` CLI
|
|
407
|
+
|
|
408
|
+
### Planned
|
|
349
409
|
|
|
350
|
-
- HuggingFace / PyTorch / TensorFlow model support
|
|
351
|
-
- Streaming inference support
|
|
352
|
-
- OpenAI Assistants API integration
|
|
410
|
+
- [ ] HuggingFace / PyTorch / TensorFlow model support
|
|
411
|
+
- [ ] Streaming inference support
|
|
412
|
+
- [ ] OpenAI Assistants API integration
|
|
413
|
+
- [ ] MCP server mode
|
|
414
|
+
|
|
415
|
+
---
|
|
353
416
|
|
|
354
417
|
## Contributing
|
|
355
418
|
|
|
356
419
|
See [CONTRIBUTING.md](CONTRIBUTING.md) for development setup, code style, and PR guidelines. The [CHANGELOG](CHANGELOG.md) tracks notable changes per release.
|
|
357
420
|
|
|
421
|
+
Issues and PRs are welcome — if you're wrapping a model type or registry that predikit doesn't support yet, open a discussion.
|
|
422
|
+
|
|
358
423
|
## License
|
|
359
424
|
|
|
360
425
|
MIT © Tejas Tumakuru Ashok
|
|
361
|
-
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
artifact_path: file:C:/AI/predikit/mlruns/1/models/m-27a74bc0ab2f40e09dc3d6c4f026cc1e/artifacts
|
|
2
|
+
flavors:
|
|
3
|
+
python_function:
|
|
4
|
+
env:
|
|
5
|
+
conda: conda.yaml
|
|
6
|
+
virtualenv: python_env.yaml
|
|
7
|
+
loader_module: mlflow.sklearn
|
|
8
|
+
model_path: model.skops
|
|
9
|
+
predict_fn: predict
|
|
10
|
+
python_version: 3.13.5
|
|
11
|
+
sklearn:
|
|
12
|
+
code: null
|
|
13
|
+
pickled_model: model.skops
|
|
14
|
+
serialization_format: skops
|
|
15
|
+
sklearn_version: 1.7.2
|
|
16
|
+
skops_trusted_types: null
|
|
17
|
+
mlflow_version: 3.14.0
|
|
18
|
+
model_id: m-27a74bc0ab2f40e09dc3d6c4f026cc1e
|
|
19
|
+
model_size_bytes: 9581
|
|
20
|
+
model_uuid: m-27a74bc0ab2f40e09dc3d6c4f026cc1e
|
|
21
|
+
prompts: null
|
|
22
|
+
run_id: cf4fc6366185416489e3a600ec4d813d
|
|
23
|
+
utc_time_created: '2026-06-20 21:48:25.168465'
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
channels:
|
|
2
|
+
- conda-forge
|
|
3
|
+
dependencies:
|
|
4
|
+
- python=3.13.5
|
|
5
|
+
- pip
|
|
6
|
+
- pip:
|
|
7
|
+
- mlflow==3.14.0
|
|
8
|
+
- annotated-types==0.7.0
|
|
9
|
+
- joblib==1.5.3
|
|
10
|
+
- numpy==2.2.6; python_full_version < "3.11"
|
|
11
|
+
- numpy==2.4.6; python_full_version >= "3.11"
|
|
12
|
+
- pydantic-core==2.46.4
|
|
13
|
+
- pydantic==2.13.4
|
|
14
|
+
- scikit-learn==1.7.2
|
|
15
|
+
- scipy==1.15.3; python_full_version < "3.11"
|
|
16
|
+
- scipy==1.17.1; python_full_version == "3.11.*"
|
|
17
|
+
- scipy==1.18.0; python_full_version >= "3.12"
|
|
18
|
+
- skops==0.14.0
|
|
19
|
+
- threadpoolctl==3.6.0
|
|
20
|
+
- typing-extensions==4.15.0
|
|
21
|
+
- typing-inspection==0.4.2
|
|
22
|
+
name: mlflow-env
|
|
Binary file
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
mlflow==3.14.0
|
|
2
|
+
annotated-types==0.7.0
|
|
3
|
+
joblib==1.5.3
|
|
4
|
+
numpy==2.2.6; python_full_version < "3.11"
|
|
5
|
+
numpy==2.4.6; python_full_version >= "3.11"
|
|
6
|
+
pydantic-core==2.46.4
|
|
7
|
+
pydantic==2.13.4
|
|
8
|
+
scikit-learn==1.7.2
|
|
9
|
+
scipy==1.15.3; python_full_version < "3.11"
|
|
10
|
+
scipy==1.17.1; python_full_version == "3.11.*"
|
|
11
|
+
scipy==1.18.0; python_full_version >= "3.12"
|
|
12
|
+
skops==0.14.0
|
|
13
|
+
threadpoolctl==3.6.0
|
|
14
|
+
typing-extensions==4.15.0
|
|
15
|
+
typing-inspection==0.4.2
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
artifact_path: file:C:/AI/predikit/mlruns/1/models/m-28173468f0874040a705d2d3820a4f5c/artifacts
|
|
2
|
+
flavors:
|
|
3
|
+
python_function:
|
|
4
|
+
env:
|
|
5
|
+
conda: conda.yaml
|
|
6
|
+
virtualenv: python_env.yaml
|
|
7
|
+
loader_module: mlflow.sklearn
|
|
8
|
+
model_path: model.skops
|
|
9
|
+
predict_fn: predict
|
|
10
|
+
python_version: 3.13.5
|
|
11
|
+
sklearn:
|
|
12
|
+
code: null
|
|
13
|
+
pickled_model: model.skops
|
|
14
|
+
serialization_format: skops
|
|
15
|
+
sklearn_version: 1.7.2
|
|
16
|
+
skops_trusted_types: null
|
|
17
|
+
mlflow_version: 3.14.0
|
|
18
|
+
model_id: m-28173468f0874040a705d2d3820a4f5c
|
|
19
|
+
model_size_bytes: 9581
|
|
20
|
+
model_uuid: m-28173468f0874040a705d2d3820a4f5c
|
|
21
|
+
prompts: null
|
|
22
|
+
run_id: c0cfa92fb12c454fb2715f1ef48be4ff
|
|
23
|
+
utc_time_created: '2026-06-20 21:47:19.880624'
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
channels:
|
|
2
|
+
- conda-forge
|
|
3
|
+
dependencies:
|
|
4
|
+
- python=3.13.5
|
|
5
|
+
- pip
|
|
6
|
+
- pip:
|
|
7
|
+
- mlflow==3.14.0
|
|
8
|
+
- annotated-types==0.7.0
|
|
9
|
+
- joblib==1.5.3
|
|
10
|
+
- numpy==2.2.6; python_full_version < "3.11"
|
|
11
|
+
- numpy==2.4.6; python_full_version >= "3.11"
|
|
12
|
+
- pydantic-core==2.46.4
|
|
13
|
+
- pydantic==2.13.4
|
|
14
|
+
- scikit-learn==1.7.2
|
|
15
|
+
- scipy==1.15.3; python_full_version < "3.11"
|
|
16
|
+
- scipy==1.17.1; python_full_version == "3.11.*"
|
|
17
|
+
- scipy==1.18.0; python_full_version >= "3.12"
|
|
18
|
+
- skops==0.14.0
|
|
19
|
+
- threadpoolctl==3.6.0
|
|
20
|
+
- typing-extensions==4.15.0
|
|
21
|
+
- typing-inspection==0.4.2
|
|
22
|
+
name: mlflow-env
|
|
Binary file
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
mlflow==3.14.0
|
|
2
|
+
annotated-types==0.7.0
|
|
3
|
+
joblib==1.5.3
|
|
4
|
+
numpy==2.2.6; python_full_version < "3.11"
|
|
5
|
+
numpy==2.4.6; python_full_version >= "3.11"
|
|
6
|
+
pydantic-core==2.46.4
|
|
7
|
+
pydantic==2.13.4
|
|
8
|
+
scikit-learn==1.7.2
|
|
9
|
+
scipy==1.15.3; python_full_version < "3.11"
|
|
10
|
+
scipy==1.17.1; python_full_version == "3.11.*"
|
|
11
|
+
scipy==1.18.0; python_full_version >= "3.12"
|
|
12
|
+
skops==0.14.0
|
|
13
|
+
threadpoolctl==3.6.0
|
|
14
|
+
typing-extensions==4.15.0
|
|
15
|
+
typing-inspection==0.4.2
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
artifact_path: file:c:/AI/predikit/mlruns/1/models/m-3eabd93b6ac447808321a1d58fef2b9b/artifacts
|
|
2
|
+
flavors:
|
|
3
|
+
python_function:
|
|
4
|
+
env:
|
|
5
|
+
conda: conda.yaml
|
|
6
|
+
virtualenv: python_env.yaml
|
|
7
|
+
loader_module: mlflow.sklearn
|
|
8
|
+
model_path: model.skops
|
|
9
|
+
predict_fn: predict
|
|
10
|
+
python_version: 3.13.5
|
|
11
|
+
sklearn:
|
|
12
|
+
code: null
|
|
13
|
+
pickled_model: model.skops
|
|
14
|
+
serialization_format: skops
|
|
15
|
+
sklearn_version: 1.7.2
|
|
16
|
+
skops_trusted_types: null
|
|
17
|
+
mlflow_version: 3.14.0
|
|
18
|
+
model_id: m-3eabd93b6ac447808321a1d58fef2b9b
|
|
19
|
+
model_size_bytes: 9581
|
|
20
|
+
model_uuid: m-3eabd93b6ac447808321a1d58fef2b9b
|
|
21
|
+
prompts: null
|
|
22
|
+
run_id: ede0865607194eba8f4bcb00ba747744
|
|
23
|
+
utc_time_created: '2026-06-20 21:49:57.444715'
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
channels:
|
|
2
|
+
- conda-forge
|
|
3
|
+
dependencies:
|
|
4
|
+
- python=3.13.5
|
|
5
|
+
- pip
|
|
6
|
+
- pip:
|
|
7
|
+
- mlflow==3.14.0
|
|
8
|
+
- annotated-types==0.7.0
|
|
9
|
+
- joblib==1.5.3
|
|
10
|
+
- numpy==2.2.6; python_full_version < "3.11"
|
|
11
|
+
- numpy==2.4.6; python_full_version >= "3.11"
|
|
12
|
+
- pydantic-core==2.46.4
|
|
13
|
+
- pydantic==2.13.4
|
|
14
|
+
- scikit-learn==1.7.2
|
|
15
|
+
- scipy==1.15.3; python_full_version < "3.11"
|
|
16
|
+
- scipy==1.17.1; python_full_version == "3.11.*"
|
|
17
|
+
- scipy==1.18.0; python_full_version >= "3.12"
|
|
18
|
+
- skops==0.14.0
|
|
19
|
+
- threadpoolctl==3.6.0
|
|
20
|
+
- typing-extensions==4.15.0
|
|
21
|
+
- typing-inspection==0.4.2
|
|
22
|
+
name: mlflow-env
|
|
Binary file
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
mlflow==3.14.0
|
|
2
|
+
annotated-types==0.7.0
|
|
3
|
+
joblib==1.5.3
|
|
4
|
+
numpy==2.2.6; python_full_version < "3.11"
|
|
5
|
+
numpy==2.4.6; python_full_version >= "3.11"
|
|
6
|
+
pydantic-core==2.46.4
|
|
7
|
+
pydantic==2.13.4
|
|
8
|
+
scikit-learn==1.7.2
|
|
9
|
+
scipy==1.15.3; python_full_version < "3.11"
|
|
10
|
+
scipy==1.17.1; python_full_version == "3.11.*"
|
|
11
|
+
scipy==1.18.0; python_full_version >= "3.12"
|
|
12
|
+
skops==0.14.0
|
|
13
|
+
threadpoolctl==3.6.0
|
|
14
|
+
typing-extensions==4.15.0
|
|
15
|
+
typing-inspection==0.4.2
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
artifact_path: file:c:/AI/predikit/mlruns/1/models/m-4816da14ba9c47c2b69d7d959f186d4e/artifacts
|
|
2
|
+
flavors:
|
|
3
|
+
python_function:
|
|
4
|
+
env:
|
|
5
|
+
conda: conda.yaml
|
|
6
|
+
virtualenv: python_env.yaml
|
|
7
|
+
loader_module: mlflow.sklearn
|
|
8
|
+
model_path: model.skops
|
|
9
|
+
predict_fn: predict
|
|
10
|
+
python_version: 3.13.5
|
|
11
|
+
sklearn:
|
|
12
|
+
code: null
|
|
13
|
+
pickled_model: model.skops
|
|
14
|
+
serialization_format: skops
|
|
15
|
+
sklearn_version: 1.7.2
|
|
16
|
+
skops_trusted_types: null
|
|
17
|
+
mlflow_version: 3.14.0
|
|
18
|
+
model_id: m-4816da14ba9c47c2b69d7d959f186d4e
|
|
19
|
+
model_size_bytes: 9581
|
|
20
|
+
model_uuid: m-4816da14ba9c47c2b69d7d959f186d4e
|
|
21
|
+
prompts: null
|
|
22
|
+
run_id: e049ecc2fa2d4e1a920d7aed96dde64f
|
|
23
|
+
utc_time_created: '2026-06-20 21:50:39.894015'
|