isa-model 0.3.5__py3-none-any.whl → 0.3.7__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 (88) hide show
  1. isa_model/__init__.py +30 -1
  2. isa_model/client.py +937 -0
  3. isa_model/core/config/__init__.py +16 -0
  4. isa_model/core/config/config_manager.py +514 -0
  5. isa_model/core/config.py +426 -0
  6. isa_model/core/models/model_billing_tracker.py +476 -0
  7. isa_model/core/models/model_manager.py +399 -0
  8. isa_model/core/{storage/supabase_storage.py → models/model_repo.py} +72 -73
  9. isa_model/core/pricing_manager.py +426 -0
  10. isa_model/core/services/__init__.py +19 -0
  11. isa_model/core/services/intelligent_model_selector.py +547 -0
  12. isa_model/core/types.py +291 -0
  13. isa_model/deployment/__init__.py +2 -0
  14. isa_model/deployment/cloud/modal/isa_vision_doc_service.py +157 -3
  15. isa_model/deployment/cloud/modal/isa_vision_table_service.py +532 -0
  16. isa_model/deployment/cloud/modal/isa_vision_ui_service.py +104 -3
  17. isa_model/deployment/cloud/modal/register_models.py +321 -0
  18. isa_model/deployment/runtime/deployed_service.py +338 -0
  19. isa_model/deployment/services/__init__.py +9 -0
  20. isa_model/deployment/services/auto_deploy_vision_service.py +538 -0
  21. isa_model/deployment/services/model_service.py +332 -0
  22. isa_model/deployment/services/service_monitor.py +356 -0
  23. isa_model/deployment/services/service_registry.py +527 -0
  24. isa_model/deployment/services/simple_auto_deploy_vision_service.py +275 -0
  25. isa_model/eval/__init__.py +80 -44
  26. isa_model/eval/config/__init__.py +10 -0
  27. isa_model/eval/config/evaluation_config.py +108 -0
  28. isa_model/eval/evaluators/__init__.py +18 -0
  29. isa_model/eval/evaluators/base_evaluator.py +503 -0
  30. isa_model/eval/evaluators/llm_evaluator.py +472 -0
  31. isa_model/eval/factory.py +417 -709
  32. isa_model/eval/infrastructure/__init__.py +24 -0
  33. isa_model/eval/infrastructure/experiment_tracker.py +466 -0
  34. isa_model/eval/metrics.py +191 -21
  35. isa_model/inference/ai_factory.py +257 -601
  36. isa_model/inference/services/audio/base_stt_service.py +65 -1
  37. isa_model/inference/services/audio/base_tts_service.py +75 -1
  38. isa_model/inference/services/audio/openai_stt_service.py +189 -151
  39. isa_model/inference/services/audio/openai_tts_service.py +12 -10
  40. isa_model/inference/services/audio/replicate_tts_service.py +61 -56
  41. isa_model/inference/services/base_service.py +55 -17
  42. isa_model/inference/services/embedding/base_embed_service.py +65 -1
  43. isa_model/inference/services/embedding/ollama_embed_service.py +103 -43
  44. isa_model/inference/services/embedding/openai_embed_service.py +8 -10
  45. isa_model/inference/services/helpers/stacked_config.py +148 -0
  46. isa_model/inference/services/img/__init__.py +18 -0
  47. isa_model/inference/services/{vision → img}/base_image_gen_service.py +80 -1
  48. isa_model/inference/services/{stacked → img}/flux_professional_service.py +25 -1
  49. isa_model/inference/services/{stacked → img/helpers}/base_stacked_service.py +40 -35
  50. isa_model/inference/services/{vision → img}/replicate_image_gen_service.py +44 -31
  51. isa_model/inference/services/llm/__init__.py +3 -3
  52. isa_model/inference/services/llm/base_llm_service.py +492 -40
  53. isa_model/inference/services/llm/helpers/llm_prompts.py +258 -0
  54. isa_model/inference/services/llm/helpers/llm_utils.py +280 -0
  55. isa_model/inference/services/llm/ollama_llm_service.py +51 -17
  56. isa_model/inference/services/llm/openai_llm_service.py +70 -19
  57. isa_model/inference/services/llm/yyds_llm_service.py +24 -23
  58. isa_model/inference/services/vision/__init__.py +38 -4
  59. isa_model/inference/services/vision/base_vision_service.py +218 -117
  60. isa_model/inference/services/vision/{isA_vision_service.py → disabled/isA_vision_service.py} +98 -0
  61. isa_model/inference/services/{stacked → vision}/doc_analysis_service.py +1 -1
  62. isa_model/inference/services/vision/helpers/base_stacked_service.py +274 -0
  63. isa_model/inference/services/vision/helpers/image_utils.py +272 -3
  64. isa_model/inference/services/vision/helpers/vision_prompts.py +297 -0
  65. isa_model/inference/services/vision/openai_vision_service.py +104 -307
  66. isa_model/inference/services/vision/replicate_vision_service.py +140 -325
  67. isa_model/inference/services/{stacked → vision}/ui_analysis_service.py +2 -498
  68. isa_model/scripts/register_models.py +370 -0
  69. isa_model/scripts/register_models_with_embeddings.py +510 -0
  70. isa_model/serving/api/fastapi_server.py +6 -1
  71. isa_model/serving/api/routes/unified.py +274 -0
  72. {isa_model-0.3.5.dist-info → isa_model-0.3.7.dist-info}/METADATA +4 -1
  73. {isa_model-0.3.5.dist-info → isa_model-0.3.7.dist-info}/RECORD +78 -53
  74. isa_model/config/__init__.py +0 -9
  75. isa_model/config/config_manager.py +0 -213
  76. isa_model/core/model_manager.py +0 -213
  77. isa_model/core/model_registry.py +0 -375
  78. isa_model/core/vision_models_init.py +0 -116
  79. isa_model/inference/billing_tracker.py +0 -406
  80. isa_model/inference/services/llm/triton_llm_service.py +0 -481
  81. isa_model/inference/services/stacked/__init__.py +0 -26
  82. isa_model/inference/services/stacked/config.py +0 -426
  83. isa_model/inference/services/vision/ollama_vision_service.py +0 -194
  84. /isa_model/core/{model_storage.py → models/model_storage.py} +0 -0
  85. /isa_model/inference/services/{vision → embedding}/helpers/text_splitter.py +0 -0
  86. /isa_model/inference/services/llm/{llm_adapter.py → helpers/llm_adapter.py} +0 -0
  87. {isa_model-0.3.5.dist-info → isa_model-0.3.7.dist-info}/WHEEL +0 -0
  88. {isa_model-0.3.5.dist-info → isa_model-0.3.7.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,274 @@
1
+ """
2
+ Unified API Route - Single endpoint for all AI services
3
+
4
+ This is the main API that handles all types of AI requests:
5
+ - Vision tasks (image analysis, OCR, UI detection)
6
+ - Text tasks (chat, generation, translation)
7
+ - Audio tasks (TTS, STT)
8
+ - Image generation tasks
9
+ - Embedding tasks
10
+ """
11
+
12
+ from fastapi import APIRouter, HTTPException, UploadFile, File, Form
13
+ from fastapi.responses import StreamingResponse
14
+ from pydantic import BaseModel, Field
15
+ from typing import Optional, Dict, Any, Union, List
16
+ import logging
17
+ import asyncio
18
+ import json
19
+ from pathlib import Path
20
+
21
+ from isa_model.client import ISAModelClient
22
+
23
+ logger = logging.getLogger(__name__)
24
+ router = APIRouter()
25
+
26
+ class UnifiedRequest(BaseModel):
27
+ """Unified request model for all AI services"""
28
+ input_data: Union[str, Dict[str, Any]] = Field(..., description="Input data (text, image URL, etc.)")
29
+ task: str = Field(..., description="Task to perform (chat, analyze_image, generate_speech, etc.)")
30
+ service_type: str = Field(..., description="Service type (text, vision, audio, image, embedding)")
31
+ model_hint: Optional[str] = Field(None, description="Optional model preference")
32
+ provider_hint: Optional[str] = Field(None, description="Optional provider preference")
33
+ stream: Optional[bool] = Field(False, description="Enable streaming for text services")
34
+ parameters: Optional[Dict[str, Any]] = Field(default_factory=dict, description="Additional task parameters")
35
+
36
+ class UnifiedResponse(BaseModel):
37
+ """Unified response model for all AI services"""
38
+ success: bool
39
+ result: Optional[Any] = None
40
+ error: Optional[str] = None
41
+ metadata: Dict[str, Any]
42
+
43
+ # Global ISA client instance for server-side processing
44
+ _isa_client = None
45
+
46
+ def get_isa_client():
47
+ """Get or create ISA client for local processing"""
48
+ global _isa_client
49
+ if _isa_client is None:
50
+ _isa_client = ISAModelClient(mode="local") # Use local mode
51
+ return _isa_client
52
+
53
+ @router.get("/")
54
+ async def unified_info():
55
+ """API information"""
56
+ return {
57
+ "service": "unified_api",
58
+ "status": "active",
59
+ "description": "Single endpoint for all AI services",
60
+ "supported_service_types": ["vision", "text", "audio", "image", "embedding"],
61
+ "version": "1.0.0"
62
+ }
63
+
64
+ @router.post("/invoke", response_model=UnifiedResponse)
65
+ async def unified_invoke(request: UnifiedRequest) -> UnifiedResponse:
66
+ """
67
+ **Unified API endpoint for all AI services**
68
+
69
+ This single endpoint handles:
70
+ - Vision: image analysis, OCR, UI detection
71
+ - Text: chat, generation, translation
72
+ - Audio: TTS, STT, transcription
73
+ - Image: generation, img2img
74
+ - Embedding: text embedding, similarity
75
+
76
+ **Uses ISAModelClient in local mode - all the complex logic is in client.py**
77
+ """
78
+ try:
79
+ # Get ISA client instance (local mode)
80
+ client = get_isa_client()
81
+
82
+ # Use client's local invoke method directly
83
+ # This handles all the complexity: model selection, service routing, execution
84
+ result = await client._invoke_local(
85
+ input_data=request.input_data,
86
+ task=request.task,
87
+ service_type=request.service_type,
88
+ model_hint=request.model_hint,
89
+ provider_hint=request.provider_hint,
90
+ **request.parameters
91
+ )
92
+
93
+ # Return the result in our API format
94
+ return UnifiedResponse(
95
+ success=result["success"],
96
+ result=result.get("result"),
97
+ error=result.get("error"),
98
+ metadata=result["metadata"]
99
+ )
100
+
101
+ except Exception as e:
102
+ logger.error(f"Unified invoke failed: {e}")
103
+ return UnifiedResponse(
104
+ success=False,
105
+ error=str(e),
106
+ metadata={
107
+ "task": request.task,
108
+ "service_type": request.service_type,
109
+ "model_hint": request.model_hint,
110
+ "provider_hint": request.provider_hint
111
+ }
112
+ )
113
+
114
+ @router.post("/stream")
115
+ async def unified_stream(request: UnifiedRequest):
116
+ """
117
+ **Unified streaming endpoint for text services**
118
+
119
+ Returns Server-Sent Events (SSE) stream for real-time token generation.
120
+ Only supports text service types.
121
+ """
122
+ try:
123
+ # Validate streaming request
124
+ if request.service_type != "text":
125
+ raise HTTPException(status_code=400, detail="Streaming only supported for text services")
126
+
127
+ # Get ISA client instance (local mode)
128
+ client = get_isa_client()
129
+
130
+ async def generate_stream():
131
+ """Generator for SSE streaming"""
132
+ try:
133
+ # Use client's streaming method
134
+ stream_gen = await client.invoke(
135
+ input_data=request.input_data,
136
+ task=request.task,
137
+ service_type=request.service_type,
138
+ model_hint=request.model_hint,
139
+ provider_hint=request.provider_hint,
140
+ stream=True,
141
+ **request.parameters
142
+ )
143
+
144
+ # Stream tokens as SSE format
145
+ async for token in stream_gen:
146
+ # SSE format: "data: {json}\n\n"
147
+ token_data = {
148
+ "token": token,
149
+ "type": "token"
150
+ }
151
+ yield f"data: {json.dumps(token_data)}\n\n"
152
+
153
+ # Send completion signal
154
+ completion_data = {
155
+ "type": "completion",
156
+ "status": "finished"
157
+ }
158
+ yield f"data: {json.dumps(completion_data)}\n\n"
159
+
160
+ except Exception as e:
161
+ logger.error(f"Streaming error: {e}")
162
+ error_data = {
163
+ "type": "error",
164
+ "error": str(e)
165
+ }
166
+ yield f"data: {json.dumps(error_data)}\n\n"
167
+
168
+ # Return SSE stream response
169
+ return StreamingResponse(
170
+ generate_stream(),
171
+ media_type="text/plain",
172
+ headers={
173
+ "Cache-Control": "no-cache",
174
+ "Connection": "keep-alive",
175
+ "Content-Type": "text/plain; charset=utf-8"
176
+ }
177
+ )
178
+
179
+ except Exception as e:
180
+ logger.error(f"Streaming setup failed: {e}")
181
+ raise HTTPException(status_code=500, detail=str(e))
182
+
183
+ @router.post("/invoke-file", response_model=UnifiedResponse)
184
+ async def unified_invoke_file(
185
+ task: str = Form(...),
186
+ service_type: str = Form(...),
187
+ model_hint: Optional[str] = Form(None),
188
+ provider_hint: Optional[str] = Form(None),
189
+ file: UploadFile = File(...)
190
+ ) -> UnifiedResponse:
191
+ """
192
+ Unified file upload endpoint
193
+
194
+ For tasks that require file input (images, audio, documents)
195
+ """
196
+ try:
197
+ # Read file data
198
+ file_data = await file.read()
199
+
200
+ # Get ISA client instance (local mode)
201
+ client = get_isa_client()
202
+
203
+ # Use client's local invoke method with binary data
204
+ result = await client._invoke_local(
205
+ input_data=file_data, # Binary data
206
+ task=task,
207
+ service_type=service_type,
208
+ model_hint=model_hint,
209
+ provider_hint=provider_hint,
210
+ filename=file.filename,
211
+ content_type=file.content_type,
212
+ file_size=len(file_data)
213
+ )
214
+
215
+ # Return the result in our API format
216
+ return UnifiedResponse(
217
+ success=result["success"],
218
+ result=result.get("result"),
219
+ error=result.get("error"),
220
+ metadata={
221
+ **result["metadata"],
222
+ "filename": file.filename,
223
+ "content_type": file.content_type,
224
+ "file_size": len(file_data)
225
+ }
226
+ )
227
+
228
+ except Exception as e:
229
+ logger.error(f"File invoke failed: {e}")
230
+ return UnifiedResponse(
231
+ success=False,
232
+ error=str(e),
233
+ metadata={
234
+ "task": task,
235
+ "service_type": service_type,
236
+ "filename": file.filename if file else None
237
+ }
238
+ )
239
+
240
+ @router.get("/models")
241
+ async def get_available_models(service_type: Optional[str] = None):
242
+ """Get available models (optional filter by service type)"""
243
+ try:
244
+ client = get_isa_client()
245
+ return await client.get_available_models(service_type)
246
+ except Exception as e:
247
+ logger.error(f"Failed to get available models: {e}")
248
+ # Fallback static model list
249
+ return {
250
+ "models": [
251
+ {"service_type": "vision", "provider": "openai", "model_id": "gpt-4.1-mini"},
252
+ {"service_type": "text", "provider": "openai", "model_id": "gpt-4.1-mini"},
253
+ {"service_type": "audio", "provider": "openai", "model_id": "whisper-1"},
254
+ {"service_type": "audio", "provider": "openai", "model_id": "tts-1"},
255
+ {"service_type": "embedding", "provider": "openai", "model_id": "text-embedding-3-small"},
256
+ {"service_type": "image", "provider": "replicate", "model_id": "black-forest-labs/flux-schnell"}
257
+ ]
258
+ }
259
+
260
+ @router.get("/health")
261
+ async def health_check():
262
+ """Health check for unified API"""
263
+ try:
264
+ client = get_isa_client()
265
+ health_result = await client.health_check()
266
+ return {
267
+ "api": "healthy",
268
+ "client_health": health_result
269
+ }
270
+ except Exception as e:
271
+ return {
272
+ "api": "error",
273
+ "error": str(e)
274
+ }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: isa_model
3
- Version: 0.3.5
3
+ Version: 0.3.7
4
4
  Summary: Unified AI model serving framework
5
5
  Author: isA_Model Contributors
6
6
  Classifier: Development Status :: 3 - Alpha
@@ -34,6 +34,9 @@ Requires-Dist: accelerate>=0.20.0
34
34
  Requires-Dist: bitsandbytes>=0.39.0
35
35
  Requires-Dist: peft>=0.4.0
36
36
  Requires-Dist: trl>=0.4.0
37
+ Requires-Dist: supabase>=2.0.0
38
+ Requires-Dist: pgvector>=0.2.0
39
+ Requires-Dist: psycopg2-binary>=2.9.0
37
40
 
38
41
  # isa_model_sdk - Unified AI Model Serving Framework
39
42
 
@@ -1,19 +1,26 @@
1
- isa_model/__init__.py,sha256=skxx7AA-1BzIT_UaDHcNmIo4rEhgL8MqOk8vPpZPrAo,87
2
- isa_model/config/__init__.py,sha256=FHWgjehhr-Mk_qDj7ZqGYLP1Iwc5F7aT93Owk_lymTk,262
3
- isa_model/config/config_manager.py,sha256=jedSOySXpyYw-xA1pKP6w1fAdpFSoAgzrNNRKYz4mgU,6720
4
- isa_model/core/model_manager.py,sha256=-lffVoNdy19pDRoag9v-jYfppcY-hua0ciPl5_BLTw4,8732
5
- isa_model/core/model_registry.py,sha256=D0V95SBC0u5lJOJ0_kMqWJMtrH13ouxyCErQzp4Wdpo,15395
6
- isa_model/core/model_storage.py,sha256=yMLapW87EY1EPXw6S7H8UQAZh3hJ1KxsEohjgjw-HrA,4507
7
- isa_model/core/vision_models_init.py,sha256=wlv1hSs_KlN8wJCjtCDxJMeyaVpYsPDs3GSVw74mAJ0,4112
1
+ isa_model/__init__.py,sha256=bAbHdrDVQ-mySC_GJtgfLNI8KPcs2LfReBkIOOtpaQQ,867
2
+ isa_model/client.py,sha256=ly4614_LIz5Csg1qG7M-eXtN8VR36ClsMWqsgz111BE,34285
3
+ isa_model/core/config.py,sha256=h9GVTEEMlaJYSCDd0W9q1KtaWTV5V5TawMsKtGuphds,15686
4
+ isa_model/core/pricing_manager.py,sha256=b7HcZsBQ8ZSCzMepOhqN-J9kU43vhTxX5NabQS0aM70,17125
5
+ isa_model/core/types.py,sha256=XLUs442WGNc8E0gF2M-nb6dutD_s-XCfpr2BfGBCA2M,8445
6
+ isa_model/core/config/__init__.py,sha256=SLeHQtYGDHl64NDVyb3ECQXOKepGM8YNHEoM8CVEWus,350
7
+ isa_model/core/config/config_manager.py,sha256=hx0qcdvYEE_cCp-qb8tnVkXnpsTXEuRM1108DoAiUnE,19905
8
+ isa_model/core/models/model_billing_tracker.py,sha256=hxqG5DvQ8kqROC3WVb5Y0tespp73TPPWYq-AwatMZwc,18782
9
+ isa_model/core/models/model_manager.py,sha256=9_JHok4i2q79dhFD3nckrlG-k3z8UGb6bM82iUR-T84,14917
10
+ isa_model/core/models/model_repo.py,sha256=OqvtUrvWmn_k4tkAgdOQ61NneUHsJGbUjkobJf3LNSw,14036
11
+ isa_model/core/models/model_storage.py,sha256=yMLapW87EY1EPXw6S7H8UQAZh3hJ1KxsEohjgjw-HrA,4507
12
+ isa_model/core/services/__init__.py,sha256=M1ob5N-PDPUW0o03ioHORRl5ye5ZEEzT7265-u-NrP4,481
13
+ isa_model/core/services/intelligent_model_selector.py,sha256=vf8BhITetIh5VJcccsESrHyeh9p-V6AHD9NRAEt6a5w,21501
8
14
  isa_model/core/storage/hf_storage.py,sha256=HTj1-YGJM3Q-9_Adw7u4NjEmSdr0njsFEL45KXzfcFw,14701
9
15
  isa_model/core/storage/local_storage.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
16
  isa_model/core/storage/minio_storage.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
- isa_model/core/storage/supabase_storage.py,sha256=gW8EMhQGsodnPYqzDAKedLKOc7EZZ6uuuJ2B4fn20OU,14284
12
- isa_model/deployment/__init__.py,sha256=Wu-sBbQtwx7wzWu_MRON3RPmI4y8UfhK8pGe12-iUzs,1323
17
+ isa_model/deployment/__init__.py,sha256=tzBOOvDXl6Hh8IiS2ehW6RKeUcBia_MY1uegQFFfFRg,1400
13
18
  isa_model/deployment/cloud/__init__.py,sha256=ztahTvIZYNoEU_bqmVAvb3xL_ttWHAGO_UAiwQP4dHY,135
14
19
  isa_model/deployment/cloud/modal/__init__.py,sha256=iD65eaqvI7L_W31p-tDO4fMIG5EWfkir1l3SKRSp72Y,265
15
- isa_model/deployment/cloud/modal/isa_vision_doc_service.py,sha256=5XHnX8BCILlzGEK53-WY7S1WJHSfiZv_qDJJw-9-4sc,23744
16
- isa_model/deployment/cloud/modal/isa_vision_ui_service.py,sha256=drCoK-ZZWg685FPnhY25X4OImsGYarjxIJAF3Mm8SnE,10318
20
+ isa_model/deployment/cloud/modal/isa_vision_doc_service.py,sha256=GnIOwMNibXFqeA4ToUOovPxuj0NQTLXgkSbR1r6nUcU,30386
21
+ isa_model/deployment/cloud/modal/isa_vision_table_service.py,sha256=ewuRLIM1sqeet_7Vb9y1xcB1vXg2OAHVZNDfeFA_KHM,19814
22
+ isa_model/deployment/cloud/modal/isa_vision_ui_service.py,sha256=75iTaucfLYvWBqAvNdSXJT80R7hInYWOeLamxCyfteQ,14027
23
+ isa_model/deployment/cloud/modal/register_models.py,sha256=gqvKDE8hdwOlSyg5nWrAYNlQ0AjHa4aP9OhFBw7UXLw,12162
17
24
  isa_model/deployment/core/__init__.py,sha256=QJkJrs0FYgYcjvnHMSvAtUBiT6uq_ciqLKWLwx0mkDg,803
18
25
  isa_model/deployment/core/deployment_config.py,sha256=__bHohsvbdZK_rS_86S1rSHPPP1bTkOnx_G0cj1HMcA,11305
19
26
  isa_model/deployment/core/deployment_manager.py,sha256=kICHX1V8wIlmldkrfdqakz2OAjitUfGY6ZG_QjGzZbM,20068
@@ -21,14 +28,27 @@ isa_model/deployment/core/isa_deployment_service.py,sha256=sXU7REZ4xhUUGrpqxlJh-
21
28
  isa_model/deployment/gpu_int8_ds8/app/server.py,sha256=lwWxdnR2DNEd0vIGQyfabKtDSUzSHVQsy3Z_AJejpVg,2102
22
29
  isa_model/deployment/gpu_int8_ds8/scripts/test_client.py,sha256=aCULgRYzEQj_ELUK1bmPgN99yvFgNR5C0O3gc8S32pg,1421
23
30
  isa_model/deployment/gpu_int8_ds8/scripts/test_client_os.py,sha256=XXrneTCHUeh1LNRcu-YtZQ5B4pNawlrxC-cTWmJU2A8,936
24
- isa_model/eval/__init__.py,sha256=3sM7qLSIL_RMKcsmkCYcjOjv9ozuk16r7pnl4F-XeNA,1197
31
+ isa_model/deployment/runtime/deployed_service.py,sha256=0Z_Hg42oXasEVvuKjwBylJPazcmJYXhS-L9uPainaIg,13400
32
+ isa_model/deployment/services/__init__.py,sha256=JrLlmBlLb6RfiqGMzVVxKZfF5tAKliQqpon_rPoNoeA,216
33
+ isa_model/deployment/services/auto_deploy_vision_service.py,sha256=bZmkNG2DWvG6DdHfHvUuf8fonygic4vI_A4aogrXzvU,19670
34
+ isa_model/deployment/services/model_service.py,sha256=_ncC--8hr5BUwzCWh59yRXPKIPVLapx_31TorB2DIr8,13492
35
+ isa_model/deployment/services/service_monitor.py,sha256=P1zGoeqkNEJwt9AXZF2qTjfSLRm5PKUa80GJVNDSIdA,15223
36
+ isa_model/deployment/services/service_registry.py,sha256=LQgWQOvoP0lb7mC6WTS6shEt6WuX6xc8rRmcixrKwTc,22765
37
+ isa_model/deployment/services/simple_auto_deploy_vision_service.py,sha256=rfXsv9mh_w5cXHVYxA4fBD5ppyNY4HplsH34xp4WpY8,9882
38
+ isa_model/eval/__init__.py,sha256=CRbxC5SN7ow4ymdALSNTHawqw4f82DEdAb7twNT_Pw0,2447
25
39
  isa_model/eval/benchmarks.py,sha256=_L4Vwj2hwf2yhqoleIASO9z5e3LRCClCVEVCQbGt0I8,16885
26
- isa_model/eval/factory.py,sha256=uQXD1cZGPaMss2YGwtr8xONK9i_K7kHZG7-uwvNgEpk,29416
27
- isa_model/eval/metrics.py,sha256=mYeGwSa9PkgY0p-vadAscvak-pLrVfCSrsmAodVpgNQ,22584
40
+ isa_model/eval/factory.py,sha256=bm5OVY7HIxdBgjlH1n7e5K1YO4ytv8e4KB7z_JS9HVQ,20737
41
+ isa_model/eval/metrics.py,sha256=VMQqcB13OScJsEmfuMZeBk5RLCs01zWknuMqQRVFCjo,30315
42
+ isa_model/eval/config/__init__.py,sha256=SDwprIRp1GSG7PAXJuyNldUZ6dPeuIcwdxCkHZXIeVQ,181
43
+ isa_model/eval/config/evaluation_config.py,sha256=y4tQAqafx5snoQ0QD239C9QXHmqcQvjH34uGSEJUhvI,3051
44
+ isa_model/eval/evaluators/__init__.py,sha256=bDMBhD8bTW740dQEt8Ru-nWPGiJHkyQQcfGEejgzkh4,461
45
+ isa_model/eval/evaluators/base_evaluator.py,sha256=1RivgnnuA-k9EtsZ-KMEtts_5gcfnaTGAoF-uBVSesE,19292
46
+ isa_model/eval/evaluators/llm_evaluator.py,sha256=yfFJFdxwGV2F3mzEWjZ-0fr9u8SR3A20UJ7zS7OgKsw,18054
47
+ isa_model/eval/infrastructure/__init__.py,sha256=fxTdtwAFtjCDOV9MJ3GbhY0A-DqKeTwr_u9WTBnGI_U,648
48
+ isa_model/eval/infrastructure/experiment_tracker.py,sha256=yfMWIAk6oA8Lfer3AtmKg0OEZiGhczmsCD5gmp--uew,15283
28
49
  isa_model/inference/__init__.py,sha256=usfuQJ4zYY2RRtHkE-V6LuJ5aN7WJogtPUj9Qmy4Wvw,318
29
- isa_model/inference/ai_factory.py,sha256=iSMHLMJ4iiPVCgzldjTdRS-2F0PsWK7Qlnjn9xQFtKk,33939
50
+ isa_model/inference/ai_factory.py,sha256=oGtRd4wp6IZOTyI3GVKBNN4AtlnrLS7yFZuq2wvkaUg,19784
30
51
  isa_model/inference/base.py,sha256=qwOddnSGI0GUdD6qIdGBPQpkW7UjU3Y-zaZvu70B4WA,1278
31
- isa_model/inference/billing_tracker.py,sha256=uimayifP3oBZfU03qgveArJGl-1u6Vw2VTPj40O27t8,14888
32
52
  isa_model/inference/adapter/unified_api.py,sha256=67_Ok8W20m6Otf6r9WyOEVpnxondP4UAxOASk9ozDk4,8668
33
53
  isa_model/inference/providers/__init__.py,sha256=a83q-LMFv8u47wf0XtxvqOw_mlVgA_90wtuwy02qdDE,581
34
54
  isa_model/inference/providers/base_provider.py,sha256=PT-YnGwBu-Jn_4T3iAphkAJw_mYmKVLjUID62vf2_Ow,2711
@@ -41,59 +61,64 @@ isa_model/inference/providers/replicate_provider.py,sha256=0oi_BglIE6-HYgzLau9if
41
61
  isa_model/inference/providers/triton_provider.py,sha256=GKlth7cTOx6ERbsXXJ0gDNby3kVGQNULBDt098BXBSU,15258
42
62
  isa_model/inference/providers/yyds_provider.py,sha256=KbDsopShs11_G9oX3b2i2NgHIqkZV7HYWe9K9uZLccc,4284
43
63
  isa_model/inference/services/__init__.py,sha256=yfLz0YGl8ixk6LfTRL6cRTvZMb9F_Pv1QRgGyNc9xYM,386
44
- isa_model/inference/services/base_service.py,sha256=eTPlUAGAokEqruW9sXYN4A7jnfxfSSVsk2J28VhQRQo,3469
45
- isa_model/inference/services/audio/base_stt_service.py,sha256=OP2kFU5ZZT8yMpcbD3dpuCVzYOryY9XjQqAdalaFeYc,3347
46
- isa_model/inference/services/audio/base_tts_service.py,sha256=BzZ3JrrLpm4COthNyNrIO2QgP7RZkXDNPEELEKHzIbA,4164
64
+ isa_model/inference/services/base_service.py,sha256=fVaSx0CogHK71UEsNJeSyM8mhqmq5_9ePbbSZVi3Al8,5085
65
+ isa_model/inference/services/audio/base_stt_service.py,sha256=sfzAfreFdvEOBHtphoTrQSjb-gCoCOW4WCj6iIe51oU,5804
66
+ isa_model/inference/services/audio/base_tts_service.py,sha256=PgctcV98Pe9I2kSjScsm8epRwdaEU-vAGCIfdd2P8us,6924
47
67
  isa_model/inference/services/audio/openai_realtime_service.py,sha256=UENsx1bEb7aJoXNuBtFGIbTmETpNTZcCHlv0RydEp_U,13340
48
- isa_model/inference/services/audio/openai_stt_service.py,sha256=S1BEhEctj5Aw86edn1Nd38tqB-cWq2RdiGxWCzhH2a8,10225
49
- isa_model/inference/services/audio/openai_tts_service.py,sha256=KtzcvS_szB_Xo26Lu3T9-Wc641aiyppCfyX4xUsYhSw,8132
50
- isa_model/inference/services/audio/replicate_tts_service.py,sha256=bW074ohLM4QQp0eaDq395_2hggUVMVAHoVVbSf75bvI,10000
51
- isa_model/inference/services/embedding/base_embed_service.py,sha256=Nr6snNtOM0_ZqFfJdV7ThTb2nYVHYddGoOJXkGuyBIg,3259
52
- isa_model/inference/services/embedding/ollama_embed_service.py,sha256=s6LPSh-D06kFYXQjoKJp8jnatW5cx_unGbVFaq7tm5c,4745
53
- isa_model/inference/services/embedding/openai_embed_service.py,sha256=cjAzmYXlY0XLgwemdlhhUVlDecgzFy2xn3DSycoYvdo,8474
54
- isa_model/inference/services/llm/__init__.py,sha256=C6t9w33j3Ap4oGcJal9-htifKe0rxwws_kC3F-_B_Ps,341
55
- isa_model/inference/services/llm/base_llm_service.py,sha256=rPVNq6UoTcuO387UzCxXxK_0BFFbd_t4BKcQB6TYU5g,6300
56
- isa_model/inference/services/llm/llm_adapter.py,sha256=gkKND55EoizRxsaGOCEazUmL-2yTIBI-_njpEOXt-4k,21779
57
- isa_model/inference/services/llm/ollama_llm_service.py,sha256=NXEStAL-A5znG9Ig62uwd9tpGttjxb8fOAhgRueJvzY,14696
58
- isa_model/inference/services/llm/openai_llm_service.py,sha256=h-hg_NBEf2ADSjAXeiIlSLv9uuLikAyOUunG-Aw_9Hg,10167
59
- isa_model/inference/services/llm/triton_llm_service.py,sha256=ZFo7JoZ799Nvyi8Cz1jfWOa6TUn0hDRJtBrotadMAd4,17673
60
- isa_model/inference/services/llm/yyds_llm_service.py,sha256=tKje8H-RpP_uAIrgKbEtA5k_uhY1ELW1BMH352vaMGk,10280
68
+ isa_model/inference/services/audio/openai_stt_service.py,sha256=chqVuSU8JtwkqY6Y7INm0AdSoDqh-bsg9POzJkxN3h0,10989
69
+ isa_model/inference/services/audio/openai_tts_service.py,sha256=C4vIRvCKoySs4-zBEteI_DZYZsATS84W_ZUwbxjJjpA,8253
70
+ isa_model/inference/services/audio/replicate_tts_service.py,sha256=kCG_bBNgW7GQwt5-ZdwPSqsMiTV54-FhSowFwNWGvg0,10292
71
+ isa_model/inference/services/embedding/base_embed_service.py,sha256=_9HLzwDfKXbhFWT_3VbLQpDF3N1Rr3JS-QXqAZM9Wyc,6045
72
+ isa_model/inference/services/embedding/ollama_embed_service.py,sha256=Pbc3jePaEsudHOn07BSf_A525weoesH3d3r5vs8ODvc,6702
73
+ isa_model/inference/services/embedding/openai_embed_service.py,sha256=Egzq0sxFWf5lndf12xijLuvJSw1wnLeU9wdNR9pnzkQ,8342
74
+ isa_model/inference/services/embedding/helpers/text_splitter.py,sha256=6AbvcQ7H6MS54B9d9T1XBGg4GhvmKfZqp00lKp9pF-U,1635
75
+ isa_model/inference/services/helpers/stacked_config.py,sha256=xPGvWBu364qSF5RXAefAdsqC9SUHC6frTtJamQRQZX8,5473
76
+ isa_model/inference/services/img/__init__.py,sha256=Mip969-_UGRAADfDlcXEBPrsYY7sZleztolcjjmKfyA,518
77
+ isa_model/inference/services/img/base_image_gen_service.py,sha256=PECzUood4E25Bh2hAbe-d62nB6CwRbg1pORdDkLlEjg,7194
78
+ isa_model/inference/services/img/flux_professional_service.py,sha256=c-3F9ANUuYiZPG4SgsOgb6jTDFIXWD52Kz-RC9g_a-Q,26407
79
+ isa_model/inference/services/img/replicate_image_gen_service.py,sha256=QLjgrXNmtdXmKQPCLkmrTjNPL7_icy6enWmeArRCicU,17240
80
+ isa_model/inference/services/img/helpers/base_stacked_service.py,sha256=Y2g2Hz3n2Uwo4RoCbsC33IXxTeQ2TeT6T-2HnXd-2B0,10546
81
+ isa_model/inference/services/llm/__init__.py,sha256=hSdfeqE0463CtQ6ZzREqPBvtzXNuzi3W5PFKS0nwhvo,336
82
+ isa_model/inference/services/llm/base_llm_service.py,sha256=fg79J5mKy27qahvtLscMcquOe4O2L-EoNjE33yPRI9E,22196
83
+ isa_model/inference/services/llm/ollama_llm_service.py,sha256=c0i9TLce6YcPlsLpj11kvwd-H2Uvw23G0ACuNShGyAM,16009
84
+ isa_model/inference/services/llm/openai_llm_service.py,sha256=yhqsExCWvVs6G7EhwZnoXMtKncpwY1VPeZqgLibMSX0,11922
85
+ isa_model/inference/services/llm/yyds_llm_service.py,sha256=WA5vwK9j7PrEEffdvP4thNwBlZ5Z13vFXX_F3Kd5V-Y,10475
86
+ isa_model/inference/services/llm/helpers/llm_adapter.py,sha256=gkKND55EoizRxsaGOCEazUmL-2yTIBI-_njpEOXt-4k,21779
87
+ isa_model/inference/services/llm/helpers/llm_prompts.py,sha256=4ZOovr_Jx5bwPiMkgO1lZF7GMyEFbITP3ZrhhI48QMs,10964
88
+ isa_model/inference/services/llm/helpers/llm_utils.py,sha256=LNfB3qzREyD2TyleOyVa20FU8HbhdxA8G6QV-N-wfZs,10016
61
89
  isa_model/inference/services/ml/base_ml_service.py,sha256=mLBA6ENowa3KVzNqHyhWxf_Pr-cJJj84lDE4TniPzYI,2894
62
90
  isa_model/inference/services/ml/sklearn_ml_service.py,sha256=Lf9JrwvI25lca7JBbjB_e66eAUtXFbwxZ3Hs13dVGkA,5512
63
91
  isa_model/inference/services/others/table_transformer_service.py,sha256=r74h6QUSwSj6jTt-gRProz9SgwBwKWDe50NR0uqW0ZI,2367
64
- isa_model/inference/services/stacked/__init__.py,sha256=ud8OgxsykEUzB3hGV-2heEYh1kXVOgiF9IYj5UvdSHs,824
65
- isa_model/inference/services/stacked/base_stacked_service.py,sha256=13Pb2FiB3iLHft0l27ril8czY6Pznti8UY-frN5gCB0,10546
66
- isa_model/inference/services/stacked/config.py,sha256=BCJhZQNwC4vP2FA6eKogRJ1TW6O_whuYkqDdmciWqac,16758
67
- isa_model/inference/services/stacked/doc_analysis_service.py,sha256=q6yB_RU3C2l94S49XKPOZjd0LAnRRpYhckRuFuyn8fs,24825
68
- isa_model/inference/services/stacked/flux_professional_service.py,sha256=DwfcSNSt3sahbzaDFzci2hsnUoAqKbZReL1fvwchzU4,25297
69
- isa_model/inference/services/stacked/ui_analysis_service.py,sha256=5-8qS6hZSRkEFluVrvU0K7EvH0IWUVLxMQBjk0Juolg,52266
70
- isa_model/inference/services/vision/__init__.py,sha256=N9Zr7o2uQKoyUEvpmyOIgXPx9ivrix3gQ1OLoiQ7BLo,283
71
- isa_model/inference/services/vision/base_image_gen_service.py,sha256=k88mWy5yReqMbz-ZT8aK9P3Bbh2KaykJV9p_MB6DD2g,4247
72
- isa_model/inference/services/vision/base_vision_service.py,sha256=ismIKNxZa0TQi0KSyEXewubjgMERl_5Pzqu4eQih7Qg,6840
73
- isa_model/inference/services/vision/isA_vision_service.py,sha256=9lgxW83CInwmndtI_9-4iRMhcl0vG-sSx3xLfNnfojs,14620
74
- isa_model/inference/services/vision/ollama_vision_service.py,sha256=Btm3jJmnSBcJDiTujr51eWC3a3eA_58xKMj5TsatXJQ,6821
75
- isa_model/inference/services/vision/openai_vision_service.py,sha256=aGjYI5jRzL73hchFFLb1077rnnoUFDJ_EEV14EjqJG8,18686
76
- isa_model/inference/services/vision/replicate_image_gen_service.py,sha256=NMOPNTLKOJi_SF86pI5mgvGIO1IMEEiU9TmBbRcfLXM,16509
77
- isa_model/inference/services/vision/replicate_vision_service.py,sha256=UtuC_jrSD_ZYwLbrRZPzTo5ElXHQNYyAywcwTHaXpTM,28474
78
- isa_model/inference/services/vision/helpers/image_utils.py,sha256=ieEL69LQ9-T4zsSFj2Mmt2jRUU_UOUAgt1W6Je9kaa8,1800
79
- isa_model/inference/services/vision/helpers/text_splitter.py,sha256=6AbvcQ7H6MS54B9d9T1XBGg4GhvmKfZqp00lKp9pF-U,1635
92
+ isa_model/inference/services/vision/__init__.py,sha256=9JkNzwZa6WQPUXtq4i7x78mPxkzBNRB-6CkU2WyoCYE,1191
93
+ isa_model/inference/services/vision/base_vision_service.py,sha256=FInmrdhKaeu0vBUbxScH3_B9a_fk3pj2foLx0P81a6o,12645
94
+ isa_model/inference/services/vision/doc_analysis_service.py,sha256=_klnuI99tSkA1gcs5hPQmj6Ld8GElg0S823LXa9id2Y,24797
95
+ isa_model/inference/services/vision/openai_vision_service.py,sha256=IcDX0nBPqt9TJSwMEUD89Fojz1X8jF3ZD1voJGOzu4A,9609
96
+ isa_model/inference/services/vision/replicate_vision_service.py,sha256=smRkSCTwk5mvyKVnvyplqPNuVYjRZngVBWxTCbFmrxA,20679
97
+ isa_model/inference/services/vision/ui_analysis_service.py,sha256=LTFY5rMIQwgWh_kh9KWA44ZI01Mb3We5NsG2scSgBeA,32153
98
+ isa_model/inference/services/vision/disabled/isA_vision_service.py,sha256=VYa8VJtxDB9KdnfNW0GPEP_TPker4pHp33gLD_TnpaM,18336
99
+ isa_model/inference/services/vision/helpers/base_stacked_service.py,sha256=Y2g2Hz3n2Uwo4RoCbsC33IXxTeQ2TeT6T-2HnXd-2B0,10546
100
+ isa_model/inference/services/vision/helpers/image_utils.py,sha256=7RZ368o2UXcRCqyzldUOGhzB5vWbCCJOVR24UdiVdhs,11061
101
+ isa_model/inference/services/vision/helpers/vision_prompts.py,sha256=WbzOYu-Z2-8Xn9dcvuPRTA7VTy23_uoMRRGO4t0wZ8Q,12098
80
102
  isa_model/inference/utils/conversion/bge_rerank_convert.py,sha256=1dvtxe5-PPCe2Au6SO8F2XaD-xdIoeA4zDTcid2L9FU,2691
81
103
  isa_model/inference/utils/conversion/onnx_converter.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
82
104
  isa_model/inference/utils/conversion/torch_converter.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
83
105
  isa_model/scripts/inference_tracker.py,sha256=T6qQJMHJcAIQ8eYlgqpM9RWxfiV4z5xIolaoglKBBsg,8831
84
106
  isa_model/scripts/mlflow_manager.py,sha256=7xMN0_wELr1jcALuTW9WeWirRkPZPlE2LlFfZKflXBY,12142
85
107
  isa_model/scripts/model_registry.py,sha256=7rycPkVk8WHUO3LJaHfdyy5Yq8qmd_4WkGk4wKan-2w,14279
108
+ isa_model/scripts/register_models.py,sha256=ukqhUFiXkZh2IGzJTjEKpqRpf6VW4oSYm4PP_JjYcM8,14658
109
+ isa_model/scripts/register_models_with_embeddings.py,sha256=A4utiT5_uqvgMQJ9qioIZM2XMreHLgJoqZOysNbzmM8,20990
86
110
  isa_model/scripts/start_mlflow.py,sha256=3AGKBzByjzbZ56I8w0IOfYnp3V6EU2Lv9NtX9maSqL8,2571
87
111
  isa_model/scripts/training_tracker.py,sha256=cnXPi8ip2OK76-aWAOgC-dKx90PqZLEnP6UbHso7Fwc,8080
88
112
  isa_model/serving/__init__.py,sha256=LTO0Adbvm7A-bgQqtuOQSoHvdu9OH3OrEjYgQanuHgI,429
89
113
  isa_model/serving/api/__init__.py,sha256=wgWD69eqV37fFTLxhz8b0rOn_34P7SZHoWw2sufWjk4,162
90
- isa_model/serving/api/fastapi_server.py,sha256=Q9rvdyAyDD7fMqZ-EusOWYXPXyvce86a7_wKuTwLvFg,2403
114
+ isa_model/serving/api/fastapi_server.py,sha256=UP3CZim8E2tNcyUGaoU9cYM80_yzzpWQFd3ADfo6ANk,2628
91
115
  isa_model/serving/api/middleware/__init__.py,sha256=iCKUYECf0bjNGXgV91K03hb8Dnp0Jc_wnUL897Rd0sg,163
92
116
  isa_model/serving/api/middleware/request_logger.py,sha256=d48n6tp1pqZ7HFWFl8jg6er24ugWkWkMOc1y80aqPU8,2938
93
117
  isa_model/serving/api/routes/__init__.py,sha256=RIaG9OPg0AjAIVbtMzwnqGyNU-tuQXbdvFcYOt4b_Do,84
94
118
  isa_model/serving/api/routes/health.py,sha256=NwQcC_bpcaI4YZHTIKbGtg82yQ6QLdp0TwcqbEiqbWs,2208
95
119
  isa_model/serving/api/routes/llm.py,sha256=5ZVxWugff0i6VBKz_Nv5CqacMZJsPZEKyoSB6XDrW34,385
96
120
  isa_model/serving/api/routes/ui_analysis.py,sha256=-WxLaRKQNHnRh4okB85cWA4blTegpEPZtzHTsF3yeeU,6848
121
+ isa_model/serving/api/routes/unified.py,sha256=r6O_X9ql2EDqiTWaWz_anPERwfzNnF9ZvSdjqht8WxE,9727
97
122
  isa_model/serving/api/routes/vision.py,sha256=U9jxssQYe6igtayUW0C2fcYwqmLRIE15__X-5Ru9J4c,396
98
123
  isa_model/serving/api/schemas/__init__.py,sha256=Tu_hzxoKW1ZHpww3-5ER4A2hNuDByZ0rAfrgaJ7Bs-M,275
99
124
  isa_model/serving/api/schemas/common.py,sha256=HVaAS7wlvqrwC1gMZ2Cvo0vzHB053x2uOTAwUoY2vsE,696
@@ -117,7 +142,7 @@ isa_model/training/core/config.py,sha256=oqgKpBvtzrN6jwLIQYQ2707lH6nmjrktRiSxp9i
117
142
  isa_model/training/core/dataset.py,sha256=XCFsnf0NUMU1dJpdvo_CAMyvXB-9_RCUEiy8TU50e20,7802
118
143
  isa_model/training/core/trainer.py,sha256=h5TjqjdFr0Fsv5y4-0siy1KmOlqLfliVaUXybvuoeXU,26932
119
144
  isa_model/training/core/utils.py,sha256=Nik0M2ssfNbWqP6fKO0Kfyhzr_H6Q19ioxB-qCYbn5E,8387
120
- isa_model-0.3.5.dist-info/METADATA,sha256=jhARc6WBDaFWWScGhArHukMp4m1J4iJlo7KlGMIl2p0,12226
121
- isa_model-0.3.5.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
122
- isa_model-0.3.5.dist-info/top_level.txt,sha256=eHSy_Xb3kNkh2kK11mi1mZh0Wz91AQ5b8k2KFYO-rE8,10
123
- isa_model-0.3.5.dist-info/RECORD,,
145
+ isa_model-0.3.7.dist-info/METADATA,sha256=yjnMzsQji2XQeqdlohiHFdWkXahAuXr9aQJOd6tOnQ0,12326
146
+ isa_model-0.3.7.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
147
+ isa_model-0.3.7.dist-info/top_level.txt,sha256=eHSy_Xb3kNkh2kK11mi1mZh0Wz91AQ5b8k2KFYO-rE8,10
148
+ isa_model-0.3.7.dist-info/RECORD,,
@@ -1,9 +0,0 @@
1
- """
2
- Configuration Management Module
3
-
4
- Unified configuration system for all ISA Model components
5
- """
6
-
7
- from .config_manager import ConfigManager, get_config, DeploymentConfig, ModelConfig
8
-
9
- __all__ = ["ConfigManager", "get_config", "DeploymentConfig", "ModelConfig"]