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.
- isa_model/__init__.py +30 -1
- isa_model/client.py +937 -0
- isa_model/core/config/__init__.py +16 -0
- isa_model/core/config/config_manager.py +514 -0
- isa_model/core/config.py +426 -0
- isa_model/core/models/model_billing_tracker.py +476 -0
- isa_model/core/models/model_manager.py +399 -0
- isa_model/core/{storage/supabase_storage.py → models/model_repo.py} +72 -73
- isa_model/core/pricing_manager.py +426 -0
- isa_model/core/services/__init__.py +19 -0
- isa_model/core/services/intelligent_model_selector.py +547 -0
- isa_model/core/types.py +291 -0
- isa_model/deployment/__init__.py +2 -0
- isa_model/deployment/cloud/modal/isa_vision_doc_service.py +157 -3
- isa_model/deployment/cloud/modal/isa_vision_table_service.py +532 -0
- isa_model/deployment/cloud/modal/isa_vision_ui_service.py +104 -3
- isa_model/deployment/cloud/modal/register_models.py +321 -0
- isa_model/deployment/runtime/deployed_service.py +338 -0
- isa_model/deployment/services/__init__.py +9 -0
- isa_model/deployment/services/auto_deploy_vision_service.py +538 -0
- isa_model/deployment/services/model_service.py +332 -0
- isa_model/deployment/services/service_monitor.py +356 -0
- isa_model/deployment/services/service_registry.py +527 -0
- isa_model/deployment/services/simple_auto_deploy_vision_service.py +275 -0
- isa_model/eval/__init__.py +80 -44
- isa_model/eval/config/__init__.py +10 -0
- isa_model/eval/config/evaluation_config.py +108 -0
- isa_model/eval/evaluators/__init__.py +18 -0
- isa_model/eval/evaluators/base_evaluator.py +503 -0
- isa_model/eval/evaluators/llm_evaluator.py +472 -0
- isa_model/eval/factory.py +417 -709
- isa_model/eval/infrastructure/__init__.py +24 -0
- isa_model/eval/infrastructure/experiment_tracker.py +466 -0
- isa_model/eval/metrics.py +191 -21
- isa_model/inference/ai_factory.py +257 -601
- isa_model/inference/services/audio/base_stt_service.py +65 -1
- isa_model/inference/services/audio/base_tts_service.py +75 -1
- isa_model/inference/services/audio/openai_stt_service.py +189 -151
- isa_model/inference/services/audio/openai_tts_service.py +12 -10
- isa_model/inference/services/audio/replicate_tts_service.py +61 -56
- isa_model/inference/services/base_service.py +55 -17
- isa_model/inference/services/embedding/base_embed_service.py +65 -1
- isa_model/inference/services/embedding/ollama_embed_service.py +103 -43
- isa_model/inference/services/embedding/openai_embed_service.py +8 -10
- isa_model/inference/services/helpers/stacked_config.py +148 -0
- isa_model/inference/services/img/__init__.py +18 -0
- isa_model/inference/services/{vision → img}/base_image_gen_service.py +80 -1
- isa_model/inference/services/{stacked → img}/flux_professional_service.py +25 -1
- isa_model/inference/services/{stacked → img/helpers}/base_stacked_service.py +40 -35
- isa_model/inference/services/{vision → img}/replicate_image_gen_service.py +44 -31
- isa_model/inference/services/llm/__init__.py +3 -3
- isa_model/inference/services/llm/base_llm_service.py +492 -40
- isa_model/inference/services/llm/helpers/llm_prompts.py +258 -0
- isa_model/inference/services/llm/helpers/llm_utils.py +280 -0
- isa_model/inference/services/llm/ollama_llm_service.py +51 -17
- isa_model/inference/services/llm/openai_llm_service.py +70 -19
- isa_model/inference/services/llm/yyds_llm_service.py +24 -23
- isa_model/inference/services/vision/__init__.py +38 -4
- isa_model/inference/services/vision/base_vision_service.py +218 -117
- isa_model/inference/services/vision/{isA_vision_service.py → disabled/isA_vision_service.py} +98 -0
- isa_model/inference/services/{stacked → vision}/doc_analysis_service.py +1 -1
- isa_model/inference/services/vision/helpers/base_stacked_service.py +274 -0
- isa_model/inference/services/vision/helpers/image_utils.py +272 -3
- isa_model/inference/services/vision/helpers/vision_prompts.py +297 -0
- isa_model/inference/services/vision/openai_vision_service.py +104 -307
- isa_model/inference/services/vision/replicate_vision_service.py +140 -325
- isa_model/inference/services/{stacked → vision}/ui_analysis_service.py +2 -498
- isa_model/scripts/register_models.py +370 -0
- isa_model/scripts/register_models_with_embeddings.py +510 -0
- isa_model/serving/api/fastapi_server.py +6 -1
- isa_model/serving/api/routes/unified.py +274 -0
- {isa_model-0.3.5.dist-info → isa_model-0.3.7.dist-info}/METADATA +4 -1
- {isa_model-0.3.5.dist-info → isa_model-0.3.7.dist-info}/RECORD +78 -53
- isa_model/config/__init__.py +0 -9
- isa_model/config/config_manager.py +0 -213
- isa_model/core/model_manager.py +0 -213
- isa_model/core/model_registry.py +0 -375
- isa_model/core/vision_models_init.py +0 -116
- isa_model/inference/billing_tracker.py +0 -406
- isa_model/inference/services/llm/triton_llm_service.py +0 -481
- isa_model/inference/services/stacked/__init__.py +0 -26
- isa_model/inference/services/stacked/config.py +0 -426
- isa_model/inference/services/vision/ollama_vision_service.py +0 -194
- /isa_model/core/{model_storage.py → models/model_storage.py} +0 -0
- /isa_model/inference/services/{vision → embedding}/helpers/text_splitter.py +0 -0
- /isa_model/inference/services/llm/{llm_adapter.py → helpers/llm_adapter.py} +0 -0
- {isa_model-0.3.5.dist-info → isa_model-0.3.7.dist-info}/WHEEL +0 -0
- {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.
|
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=
|
2
|
-
isa_model/
|
3
|
-
isa_model/config
|
4
|
-
isa_model/core/
|
5
|
-
isa_model/core/
|
6
|
-
isa_model/core/
|
7
|
-
isa_model/core/
|
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/
|
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=
|
16
|
-
isa_model/deployment/cloud/modal/
|
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/
|
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=
|
27
|
-
isa_model/eval/metrics.py,sha256=
|
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=
|
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=
|
45
|
-
isa_model/inference/services/audio/base_stt_service.py,sha256=
|
46
|
-
isa_model/inference/services/audio/base_tts_service.py,sha256=
|
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=
|
49
|
-
isa_model/inference/services/audio/openai_tts_service.py,sha256=
|
50
|
-
isa_model/inference/services/audio/replicate_tts_service.py,sha256=
|
51
|
-
isa_model/inference/services/embedding/base_embed_service.py,sha256=
|
52
|
-
isa_model/inference/services/embedding/ollama_embed_service.py,sha256=
|
53
|
-
isa_model/inference/services/embedding/openai_embed_service.py,sha256=
|
54
|
-
isa_model/inference/services/
|
55
|
-
isa_model/inference/services/
|
56
|
-
isa_model/inference/services/
|
57
|
-
isa_model/inference/services/
|
58
|
-
isa_model/inference/services/
|
59
|
-
isa_model/inference/services/
|
60
|
-
isa_model/inference/services/
|
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/
|
65
|
-
isa_model/inference/services/
|
66
|
-
isa_model/inference/services/
|
67
|
-
isa_model/inference/services/
|
68
|
-
isa_model/inference/services/
|
69
|
-
isa_model/inference/services/
|
70
|
-
isa_model/inference/services/vision/
|
71
|
-
isa_model/inference/services/vision/
|
72
|
-
isa_model/inference/services/vision/
|
73
|
-
isa_model/inference/services/vision/
|
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=
|
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.
|
121
|
-
isa_model-0.3.
|
122
|
-
isa_model-0.3.
|
123
|
-
isa_model-0.3.
|
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,,
|
isa_model/config/__init__.py
DELETED
@@ -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"]
|