projectdavid-orm 1.6.3__tar.gz → 1.8.0__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.
- {projectdavid_orm-1.6.3 → projectdavid_orm-1.8.0}/CHANGELOG.md +14 -0
- {projectdavid_orm-1.6.3/src/projectdavid_orm.egg-info → projectdavid_orm-1.8.0}/PKG-INFO +1 -1
- {projectdavid_orm-1.6.3 → projectdavid_orm-1.8.0}/pyproject.toml +1 -1
- {projectdavid_orm-1.6.3 → projectdavid_orm-1.8.0}/src/projectdavid_orm/projectdavid_orm/models.py +91 -3
- {projectdavid_orm-1.6.3 → projectdavid_orm-1.8.0/src/projectdavid_orm.egg-info}/PKG-INFO +1 -1
- {projectdavid_orm-1.6.3 → projectdavid_orm-1.8.0}/LICENSE +0 -0
- {projectdavid_orm-1.6.3 → projectdavid_orm-1.8.0}/MANIFEST.in +0 -0
- {projectdavid_orm-1.6.3 → projectdavid_orm-1.8.0}/README.md +0 -0
- {projectdavid_orm-1.6.3 → projectdavid_orm-1.8.0}/setup.cfg +0 -0
- {projectdavid_orm-1.6.3 → projectdavid_orm-1.8.0}/src/projectdavid_common.egg-info/PKG-INFO +0 -0
- {projectdavid_orm-1.6.3 → projectdavid_orm-1.8.0}/src/projectdavid_common.egg-info/SOURCES.txt +0 -0
- {projectdavid_orm-1.6.3 → projectdavid_orm-1.8.0}/src/projectdavid_common.egg-info/dependency_links.txt +0 -0
- {projectdavid_orm-1.6.3 → projectdavid_orm-1.8.0}/src/projectdavid_common.egg-info/entry_points.txt +0 -0
- {projectdavid_orm-1.6.3 → projectdavid_orm-1.8.0}/src/projectdavid_common.egg-info/requires.txt +0 -0
- {projectdavid_orm-1.6.3 → projectdavid_orm-1.8.0}/src/projectdavid_common.egg-info/top_level.txt +0 -0
- {projectdavid_orm-1.6.3 → projectdavid_orm-1.8.0}/src/projectdavid_orm/__init__.py +0 -0
- {projectdavid_orm-1.6.3 → projectdavid_orm-1.8.0}/src/projectdavid_orm/constants/__init__.py +0 -0
- {projectdavid_orm-1.6.3 → projectdavid_orm-1.8.0}/src/projectdavid_orm/ormInterface.py +0 -0
- {projectdavid_orm-1.6.3 → projectdavid_orm-1.8.0}/src/projectdavid_orm/projectdavid_orm/__init__.py +0 -0
- {projectdavid_orm-1.6.3 → projectdavid_orm-1.8.0}/src/projectdavid_orm/projectdavid_orm/base.py +0 -0
- {projectdavid_orm-1.6.3 → projectdavid_orm-1.8.0}/src/projectdavid_orm/utilities/__init__.py +0 -0
- {projectdavid_orm-1.6.3 → projectdavid_orm-1.8.0}/src/projectdavid_orm.egg-info/SOURCES.txt +0 -0
- {projectdavid_orm-1.6.3 → projectdavid_orm-1.8.0}/src/projectdavid_orm.egg-info/dependency_links.txt +0 -0
- {projectdavid_orm-1.6.3 → projectdavid_orm-1.8.0}/src/projectdavid_orm.egg-info/requires.txt +0 -0
- {projectdavid_orm-1.6.3 → projectdavid_orm-1.8.0}/src/projectdavid_orm.egg-info/top_level.txt +0 -0
- {projectdavid_orm-1.6.3 → projectdavid_orm-1.8.0}/tests/test_clients.py +0 -0
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
# [1.8.0](https://github.com/project-david-ai/projectdavid-orm/compare/v1.7.0...v1.8.0) (2026-04-12)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* **inference_deployment:** add mm_processor_kwargs column ([ae55b96](https://github.com/project-david-ai/projectdavid-orm/commit/ae55b96acf0696b27b27afa24d9ab515bb35481c))
|
|
7
|
+
|
|
8
|
+
# [1.7.0](https://github.com/project-david-ai/projectdavid-orm/compare/v1.6.3...v1.7.0) (2026-04-12)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Features
|
|
12
|
+
|
|
13
|
+
* **inference_deployment:** add vLLM hyperparam columns ([6c6de67](https://github.com/project-david-ai/projectdavid-orm/commit/6c6de67eca69c7e71c9c3755765254fe1aeac25d))
|
|
14
|
+
|
|
1
15
|
## [1.6.3](https://github.com/project-david-ai/projectdavid-orm/compare/v1.6.2...v1.6.3) (2026-04-11)
|
|
2
16
|
|
|
3
17
|
|
{projectdavid_orm-1.6.3 → projectdavid_orm-1.8.0}/src/projectdavid_orm/projectdavid_orm/models.py
RENAMED
|
@@ -886,22 +886,110 @@ class BaseModel(Base):
|
|
|
886
886
|
|
|
887
887
|
|
|
888
888
|
class InferenceDeployment(Base):
|
|
889
|
+
"""
|
|
890
|
+
Tracks a live vLLM deployment on Ray Serve.
|
|
891
|
+
|
|
892
|
+
Hyperparams stored here override environment-level defaults at deploy time.
|
|
893
|
+
The reconciler reads these fields and passes them directly to vLLM engine args.
|
|
894
|
+
None values fall back to the VLLM_DEFAULT_* env vars in inference_worker.py.
|
|
895
|
+
|
|
896
|
+
Vision kwargs resolution priority:
|
|
897
|
+
1. mm_processor_kwargs DB column — set via activation API
|
|
898
|
+
2. _VISION_FAMILY_CONFIGS registry — inference_worker.py family defaults
|
|
899
|
+
3. vLLM built-in defaults — no kwargs injected for unknown families
|
|
900
|
+
"""
|
|
901
|
+
|
|
889
902
|
__tablename__ = "inference_deployments"
|
|
890
|
-
id = Column(String(64), primary_key=True, index=True)
|
|
891
903
|
|
|
904
|
+
# --- Identity ---
|
|
905
|
+
id = Column(String(64), primary_key=True, index=True)
|
|
892
906
|
node_id = Column(String(128), nullable=True)
|
|
893
|
-
|
|
894
907
|
internal_hostname = Column(String(128), nullable=True)
|
|
908
|
+
|
|
909
|
+
# --- Foreign Keys ---
|
|
895
910
|
base_model_id = Column(String(128), ForeignKey("base_models.id"))
|
|
896
911
|
fine_tuned_model_id = Column(
|
|
897
912
|
String(64), ForeignKey("fine_tuned_models.id"), nullable=True
|
|
898
913
|
)
|
|
914
|
+
|
|
915
|
+
# --- Deployment State ---
|
|
899
916
|
port = Column(Integer, default=8000)
|
|
900
917
|
status = Column(SAEnum(StatusEnum), default=StatusEnum.active)
|
|
901
918
|
current_throughput = Column(Float, default=0.0)
|
|
902
919
|
last_seen = Column(BigInteger, default=lambda: int(time.time()))
|
|
903
920
|
|
|
904
|
-
|
|
921
|
+
# --- Parallelism ---
|
|
922
|
+
tensor_parallel_size = Column(
|
|
923
|
+
Integer,
|
|
924
|
+
nullable=False,
|
|
925
|
+
default=1,
|
|
926
|
+
comment="Number of GPUs for tensor parallelism. 1 = single GPU.",
|
|
927
|
+
)
|
|
928
|
+
|
|
929
|
+
# --- Memory & Context ---
|
|
930
|
+
gpu_memory_utilization = Column(
|
|
931
|
+
Float,
|
|
932
|
+
nullable=False,
|
|
933
|
+
default=0.90,
|
|
934
|
+
server_default="0.90",
|
|
935
|
+
comment="Fraction of GPU VRAM vLLM may allocate. Overrides VLLM_DEFAULT_GPU_MEM_UTIL.",
|
|
936
|
+
)
|
|
937
|
+
max_model_len = Column(
|
|
938
|
+
Integer,
|
|
939
|
+
nullable=True,
|
|
940
|
+
default=None,
|
|
941
|
+
comment="Max sequence length in tokens. Overrides VLLM_DEFAULT_MAX_MODEL_LEN. None = env default.",
|
|
942
|
+
)
|
|
943
|
+
max_num_seqs = Column(
|
|
944
|
+
Integer,
|
|
945
|
+
nullable=True,
|
|
946
|
+
default=None,
|
|
947
|
+
comment="Max concurrent sequences. Critical for vision — each image eats slots. None = vLLM default.",
|
|
948
|
+
)
|
|
949
|
+
|
|
950
|
+
# --- Quantization & Precision ---
|
|
951
|
+
quantization = Column(
|
|
952
|
+
String(32),
|
|
953
|
+
nullable=True,
|
|
954
|
+
default=None,
|
|
955
|
+
comment="Quantization scheme: 'awq', 'awq_marlin', 'gptq', 'bitsandbytes', or None for full precision.",
|
|
956
|
+
)
|
|
957
|
+
dtype = Column(
|
|
958
|
+
String(16),
|
|
959
|
+
nullable=True,
|
|
960
|
+
default=None,
|
|
961
|
+
comment="Compute dtype: 'float16', 'bfloat16', 'auto', or None to let vLLM decide.",
|
|
962
|
+
)
|
|
963
|
+
|
|
964
|
+
# --- Runtime Behaviour ---
|
|
965
|
+
enforce_eager = Column(
|
|
966
|
+
Boolean,
|
|
967
|
+
nullable=False,
|
|
968
|
+
default=False,
|
|
969
|
+
server_default="0",
|
|
970
|
+
comment="Disable CUDA graphs. Slower but useful for debugging OOM crashes.",
|
|
971
|
+
)
|
|
972
|
+
|
|
973
|
+
# --- Multimodal Limits ---
|
|
974
|
+
limit_mm_per_prompt = Column(
|
|
975
|
+
JSON,
|
|
976
|
+
nullable=True,
|
|
977
|
+
default=None,
|
|
978
|
+
comment='Per-modality token cap per request. e.g. {"image": 2, "video": 0}. None = family registry default.',
|
|
979
|
+
)
|
|
980
|
+
mm_processor_kwargs = Column(
|
|
981
|
+
JSON,
|
|
982
|
+
nullable=True,
|
|
983
|
+
default=None,
|
|
984
|
+
comment=(
|
|
985
|
+
"Processor-level kwargs passed to vLLM multimodal processor at engine init. "
|
|
986
|
+
"Overrides family registry defaults (_VISION_FAMILY_CONFIGS) when set. "
|
|
987
|
+
'Examples: {"min_pixels": 784, "max_pixels": 50176} for Qwen2.5-VL, '
|
|
988
|
+
'{"num_crops": 4} for Phi-3.5-Vision. '
|
|
989
|
+
"None = fall back to inference_worker.py family registry defaults."
|
|
990
|
+
),
|
|
991
|
+
)
|
|
905
992
|
|
|
993
|
+
# --- Relationships (always last) ---
|
|
906
994
|
base_model = relationship("BaseModel")
|
|
907
995
|
fine_tuned_model = relationship("FineTunedModel")
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{projectdavid_orm-1.6.3 → projectdavid_orm-1.8.0}/src/projectdavid_common.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
{projectdavid_orm-1.6.3 → projectdavid_orm-1.8.0}/src/projectdavid_common.egg-info/entry_points.txt
RENAMED
|
File without changes
|
{projectdavid_orm-1.6.3 → projectdavid_orm-1.8.0}/src/projectdavid_common.egg-info/requires.txt
RENAMED
|
File without changes
|
{projectdavid_orm-1.6.3 → projectdavid_orm-1.8.0}/src/projectdavid_common.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|
{projectdavid_orm-1.6.3 → projectdavid_orm-1.8.0}/src/projectdavid_orm/constants/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{projectdavid_orm-1.6.3 → projectdavid_orm-1.8.0}/src/projectdavid_orm/projectdavid_orm/__init__.py
RENAMED
|
File without changes
|
{projectdavid_orm-1.6.3 → projectdavid_orm-1.8.0}/src/projectdavid_orm/projectdavid_orm/base.py
RENAMED
|
File without changes
|
{projectdavid_orm-1.6.3 → projectdavid_orm-1.8.0}/src/projectdavid_orm/utilities/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{projectdavid_orm-1.6.3 → projectdavid_orm-1.8.0}/src/projectdavid_orm.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{projectdavid_orm-1.6.3 → projectdavid_orm-1.8.0}/src/projectdavid_orm.egg-info/requires.txt
RENAMED
|
File without changes
|
{projectdavid_orm-1.6.3 → projectdavid_orm-1.8.0}/src/projectdavid_orm.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|