hugpy-engine 0.2.0a0__py3-none-any.whl

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.
Files changed (128) hide show
  1. hugpy_engine/__init__.py +163 -0
  2. hugpy_engine/alloc_modes.py +1254 -0
  3. hugpy_engine/allocation.py +68 -0
  4. hugpy_engine/apis/__init__.py +0 -0
  5. hugpy_engine/apis/call_api.py +149 -0
  6. hugpy_engine/apis/get_module.py +606 -0
  7. hugpy_engine/apis/reclassify.py +123 -0
  8. hugpy_engine/apis/reconcile.py +628 -0
  9. hugpy_engine/apis/serve/__init__.py +22 -0
  10. hugpy_engine/apis/serve/serve.py +34 -0
  11. hugpy_engine/apis/serve/serve_cli.py +9 -0
  12. hugpy_engine/apis/systemd_units.py +9 -0
  13. hugpy_engine/backend.py +86 -0
  14. hugpy_engine/backends/__init__.py +5 -0
  15. hugpy_engine/backends/local.py +163 -0
  16. hugpy_engine/catalog.py +99 -0
  17. hugpy_engine/catalog_bridge.py +223 -0
  18. hugpy_engine/categories.py +117 -0
  19. hugpy_engine/chat_context/__init__.py +27 -0
  20. hugpy_engine/chat_context/chat_context.py +199 -0
  21. hugpy_engine/chat_context/context_budget.py +223 -0
  22. hugpy_engine/chat_context/unbounded.py +55 -0
  23. hugpy_engine/config/__init__.py +0 -0
  24. hugpy_engine/config/main.py +270 -0
  25. hugpy_engine/config/models/__init__.py +0 -0
  26. hugpy_engine/config/models/model_meta.py +169 -0
  27. hugpy_engine/config/models/models_config.py +1495 -0
  28. hugpy_engine/config/models/models_default.py +196 -0
  29. hugpy_engine/config/models/models_dict.py +73 -0
  30. hugpy_engine/contracts.py +44 -0
  31. hugpy_engine/dispatch/__init__.py +37 -0
  32. hugpy_engine/dispatch/acquire.py +59 -0
  33. hugpy_engine/dispatch/activity.py +92 -0
  34. hugpy_engine/dispatch/dispatch.py +1100 -0
  35. hugpy_engine/draft_models.py +72 -0
  36. hugpy_engine/engines.py +44 -0
  37. hugpy_engine/eviction.py +654 -0
  38. hugpy_engine/generate/__init__.py +16 -0
  39. hugpy_engine/generate/coder.py +667 -0
  40. hugpy_engine/generate/config.py +185 -0
  41. hugpy_engine/generate/generate_runner.py +273 -0
  42. hugpy_engine/gguf_election.py +259 -0
  43. hugpy_engine/llama/__init__.py +23 -0
  44. hugpy_engine/llama/runners/__init__.py +23 -0
  45. hugpy_engine/llama/runners/chat_runner.py +243 -0
  46. hugpy_engine/llama/runners/get.py +524 -0
  47. hugpy_engine/llama/runners/src/__init__.py +9 -0
  48. hugpy_engine/llama/runners/src/base_runner.py +529 -0
  49. hugpy_engine/llama/runners/src/ccp_runner.py +332 -0
  50. hugpy_engine/llama/runners/src/imports/__init__.py +25 -0
  51. hugpy_engine/llama/runners/src/imports/config.py +16 -0
  52. hugpy_engine/llama/runners/src/imports/constants.py +38 -0
  53. hugpy_engine/llama/runners/src/imports/init_imports.py +6 -0
  54. hugpy_engine/llama/runners/src/imports/utils.py +64 -0
  55. hugpy_engine/llama/runners/src/python_runner.py +432 -0
  56. hugpy_engine/llama/runners/src/shard_server.py +339 -0
  57. hugpy_engine/llama/runners/src/shard_server.py.bak-shardorder +329 -0
  58. hugpy_engine/llama/serve.py +9 -0
  59. hugpy_engine/manifest.py +53 -0
  60. hugpy_engine/model_classifier.py +374 -0
  61. hugpy_engine/model_index/__init__.py +74 -0
  62. hugpy_engine/model_index/client.py +94 -0
  63. hugpy_engine/model_index/query_registry.py +245 -0
  64. hugpy_engine/model_index/repositories.py +163 -0
  65. hugpy_engine/model_index/service.py +243 -0
  66. hugpy_engine/name_match.py +287 -0
  67. hugpy_engine/native/__init__.py +19 -0
  68. hugpy_engine/native/build.py +98 -0
  69. hugpy_engine/native/fetch.py +194 -0
  70. hugpy_engine/native/resolve.py +352 -0
  71. hugpy_engine/peft_adapters.py +293 -0
  72. hugpy_engine/placement.py +459 -0
  73. hugpy_engine/py.typed +0 -0
  74. hugpy_engine/query.py +173 -0
  75. hugpy_engine/resolvers/__init__.py +24 -0
  76. hugpy_engine/resolvers/allocator.py +126 -0
  77. hugpy_engine/resolvers/assure_model_key.py +331 -0
  78. hugpy_engine/resolvers/categories/__init__.py +22 -0
  79. hugpy_engine/resolvers/categories/builders.py +159 -0
  80. hugpy_engine/resolvers/categories/frameworks.py +67 -0
  81. hugpy_engine/resolvers/groups.py +651 -0
  82. hugpy_engine/resolvers/model_dict_resolver.py +122 -0
  83. hugpy_engine/resolvers/model_resolver.py +533 -0
  84. hugpy_engine/resolvers/remote.py +2992 -0
  85. hugpy_engine/runtime.py +68 -0
  86. hugpy_engine/schemas/__init__.py +0 -0
  87. hugpy_engine/schemas/chat_schemas.py +320 -0
  88. hugpy_engine/schemas/event_schemas.py +52 -0
  89. hugpy_engine/schemas/metadata_schemas.py +62 -0
  90. hugpy_engine/schemas/model_schemas.py +101 -0
  91. hugpy_engine/schemas/runner_schemas.py +33 -0
  92. hugpy_engine/schemas/task_schemas.py +45 -0
  93. hugpy_engine/serve/__init__.py +58 -0
  94. hugpy_engine/serve/chunksum_verify.py +213 -0
  95. hugpy_engine/serve/hot_cache.py +1014 -0
  96. hugpy_engine/serve/model_cache.py +218 -0
  97. hugpy_engine/serve/overrides.py +968 -0
  98. hugpy_engine/serve/policy.py +45 -0
  99. hugpy_engine/serve/profiles.py +362 -0
  100. hugpy_engine/serve/serve.py +889 -0
  101. hugpy_engine/serve/serve.py.bak-present-20260918-035851 +863 -0
  102. hugpy_engine/serve/serve.py.bak-servelog-20260918-035149 +863 -0
  103. hugpy_engine/serve/serve_cli.py +85 -0
  104. hugpy_engine/serve/slot_agent.py +2119 -0
  105. hugpy_engine/serve/slot_agent.py.bak-quietlog-20260918-023710 +2046 -0
  106. hugpy_engine/serve/slot_agent.py.bak-slotparallel-20260918-112917 +2064 -0
  107. hugpy_engine/serve/slot_agent.py.bak-wzfilter-20260918-041625 +2047 -0
  108. hugpy_engine/serve/slots.py +630 -0
  109. hugpy_engine/serve/supervisor.py +148 -0
  110. hugpy_engine/spill.py +1464 -0
  111. hugpy_engine/task_deps.py +67 -0
  112. hugpy_engine/tasks.py +349 -0
  113. hugpy_engine/utils/__init__.py +0 -0
  114. hugpy_engine/utils/json_scavenge.py +111 -0
  115. hugpy_engine/utils/no_think.py +370 -0
  116. hugpy_engine/wire/__init__.py +0 -0
  117. hugpy_engine/wire/chat_schemas.py +66 -0
  118. hugpy_engine/wire/config_schemas.py +31 -0
  119. hugpy_engine/wire/install_schemas.py +17 -0
  120. hugpy_engine/wire/model_schemas.py +43 -0
  121. hugpy_engine/wire/request_schemas.py +13 -0
  122. hugpy_engine/wire/specs_schemas.py +9 -0
  123. hugpy_engine-0.2.0a0.dist-info/METADATA +116 -0
  124. hugpy_engine-0.2.0a0.dist-info/RECORD +128 -0
  125. hugpy_engine-0.2.0a0.dist-info/WHEEL +5 -0
  126. hugpy_engine-0.2.0a0.dist-info/entry_points.txt +2 -0
  127. hugpy_engine-0.2.0a0.dist-info/licenses/LICENSE +41 -0
  128. hugpy_engine-0.2.0a0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,163 @@
1
+ """Standalone Hugpy inference boundary.
2
+
3
+ Prompt/messages -> model discovery and resolution -> RAM/VRAM allocation ->
4
+ engine/runner selection -> generation -> streamed events or a completed reply.
5
+
6
+ The package imports CPU-only: llama_cpp / torch / transformers / peft load
7
+ lazily inside the runner that needs them (``pip install hugpy-engine[gguf]``,
8
+ ``[transformers]``, ``[finetune]``). Engine-owned contracts (task capability
9
+ map, catalog vocabulary, manifest helpers, wire schemas, the placement and
10
+ task-plugin seams) are exposed lazily via ``__getattr__`` so ``import
11
+ hugpy_engine`` stays light.
12
+ """
13
+
14
+ from __future__ import annotations
15
+
16
+ import importlib
17
+
18
+ try:
19
+ from importlib.metadata import version as _package_version
20
+
21
+ __version__ = _package_version("hugpy-engine")
22
+ except Exception:
23
+ __version__ = "0.0.0+unknown" # source tree without metadata
24
+
25
+ from .allocation import (
26
+ allocation_spill,
27
+ choose_allocation,
28
+ feasible_allocations,
29
+ plan_admission,
30
+ resource_status,
31
+ )
32
+ from .backend import InferenceBackend, backend_scope, configure_backend, get_backend
33
+ from .catalog import get_model, list_models, refresh_models, resolve_model, text_chat_task
34
+ from .contracts import ModelDescriptor, QueryError, QueryResult
35
+ from .engines import (
36
+ build_native_engine,
37
+ evict_llama_runner,
38
+ install_native_engine,
39
+ llama_runner,
40
+ loaded_llama_runners,
41
+ native_engine_binaries,
42
+ native_engine_status,
43
+ )
44
+ from .query import query, query_result, query_result_sync, query_sync, stream_query
45
+ from .runtime import (
46
+ clear_models,
47
+ evict_model,
48
+ execute_request,
49
+ loaded_models,
50
+ loading_models,
51
+ resolve_request,
52
+ runner_for,
53
+ stream_chat_request,
54
+ stream_request,
55
+ supported_tasks,
56
+ )
57
+
58
+ # Engine-owned contracts and seams, resolved on first attribute access
59
+ # (PEP 562) so the package import never touches discovery or pydantic.
60
+ _LAZY = {
61
+ # task capability map (consumed by fleet, oracle, server)
62
+ "TASK_DEPS": ("hugpy_engine.task_deps", "TASK_DEPS"),
63
+ "task_capabilities": ("hugpy_engine.task_deps", "task_capabilities"),
64
+ # catalog vocabulary
65
+ "HF_TASK_TO_TASKS": ("hugpy_engine.categories", "HF_TASK_TO_TASKS"),
66
+ "RUNNER_PAIRS": ("hugpy_engine.categories", "RUNNER_PAIRS"),
67
+ "TASK_DEFAULTS": ("hugpy_engine.categories", "TASK_DEFAULTS"),
68
+ "MEDIA_DEFAULTS": ("hugpy_engine.categories", "MEDIA_DEFAULTS"),
69
+ # manifest helpers
70
+ "load_manifest": ("hugpy_engine.manifest", "load_manifest"),
71
+ "load_manifest_or_empty": ("hugpy_engine.manifest", "load_manifest_or_empty"),
72
+ "save_manifest": ("hugpy_engine.manifest", "save_manifest"),
73
+ "key_for_hub_id": ("hugpy_engine.manifest", "key_for_hub_id"),
74
+ "upsert_model": ("hugpy_engine.manifest", "upsert_model"),
75
+ # seams
76
+ "placement": ("hugpy_engine.placement", None),
77
+ "tasks": ("hugpy_engine.tasks", None),
78
+ "register_task": ("hugpy_engine.tasks", "register_task"),
79
+ "runner_for_task": ("hugpy_engine.tasks", "runner_for_task"),
80
+ "request_builder_for_task": ("hugpy_engine.tasks", "request_builder_for_task"),
81
+ "catalog_bridge": ("hugpy_engine.catalog_bridge", None),
82
+ "LocalBackend": ("hugpy_engine.backends.local", "LocalBackend"),
83
+ # wire schema modules (pydantic bodies shared with the HTTP layer)
84
+ "wire": ("hugpy_engine.wire", None),
85
+ "schemas": ("hugpy_engine.schemas", None),
86
+ }
87
+
88
+
89
+ def __getattr__(name: str):
90
+ target = _LAZY.get(name)
91
+ if target is None:
92
+ raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
93
+ module = importlib.import_module(target[0])
94
+ value = module if target[1] is None else getattr(module, target[1])
95
+ globals()[name] = value
96
+ return value
97
+
98
+
99
+ def __dir__():
100
+ return sorted(set(globals()) | set(_LAZY))
101
+
102
+
103
+ __all__ = [
104
+ "HF_TASK_TO_TASKS",
105
+ "InferenceBackend",
106
+ "LocalBackend",
107
+ "MEDIA_DEFAULTS",
108
+ "ModelDescriptor",
109
+ "QueryError",
110
+ "QueryResult",
111
+ "RUNNER_PAIRS",
112
+ "TASK_DEFAULTS",
113
+ "TASK_DEPS",
114
+ "allocation_spill",
115
+ "backend_scope",
116
+ "build_native_engine",
117
+ "catalog_bridge",
118
+ "choose_allocation",
119
+ "clear_models",
120
+ "configure_backend",
121
+ "evict_llama_runner",
122
+ "evict_model",
123
+ "execute_request",
124
+ "feasible_allocations",
125
+ "get_backend",
126
+ "get_model",
127
+ "install_native_engine",
128
+ "key_for_hub_id",
129
+ "list_models",
130
+ "llama_runner",
131
+ "load_manifest",
132
+ "load_manifest_or_empty",
133
+ "loaded_llama_runners",
134
+ "loaded_models",
135
+ "loading_models",
136
+ "native_engine_binaries",
137
+ "native_engine_status",
138
+ "placement",
139
+ "plan_admission",
140
+ "query",
141
+ "query_result",
142
+ "query_result_sync",
143
+ "query_sync",
144
+ "refresh_models",
145
+ "register_task",
146
+ "request_builder_for_task",
147
+ "resolve_model",
148
+ "resolve_request",
149
+ "resource_status",
150
+ "runner_for",
151
+ "runner_for_task",
152
+ "save_manifest",
153
+ "schemas",
154
+ "stream_chat_request",
155
+ "stream_query",
156
+ "stream_request",
157
+ "supported_tasks",
158
+ "task_capabilities",
159
+ "tasks",
160
+ "text_chat_task",
161
+ "upsert_model",
162
+ "wire",
163
+ ]