isa-model 0.1.0__py3-none-any.whl → 0.1.1__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 (76) hide show
  1. isa_model/__init__.py +1 -1
  2. isa_model/core/model_registry.py +273 -46
  3. isa_model/deployment/gpu_fp16_ds8/models/deepseek_r1/1/model.py +120 -0
  4. isa_model/deployment/gpu_fp16_ds8/scripts/download_model.py +18 -0
  5. isa_model/deployment/gpu_int8_ds8/app/server.py +66 -0
  6. isa_model/deployment/gpu_int8_ds8/scripts/test_client.py +43 -0
  7. isa_model/deployment/gpu_int8_ds8/scripts/test_client_os.py +35 -0
  8. isa_model/eval/__init__.py +56 -0
  9. isa_model/eval/benchmarks.py +469 -0
  10. isa_model/eval/factory.py +582 -0
  11. isa_model/eval/metrics.py +628 -0
  12. isa_model/inference/ai_factory.py +98 -93
  13. isa_model/inference/providers/openai_provider.py +21 -7
  14. isa_model/inference/providers/replicate_provider.py +18 -5
  15. isa_model/inference/providers/triton_provider.py +1 -1
  16. isa_model/inference/services/audio/base_stt_service.py +91 -0
  17. isa_model/inference/services/audio/base_tts_service.py +136 -0
  18. isa_model/inference/services/audio/{yyds_audio_service.py → openai_tts_service.py} +4 -4
  19. isa_model/inference/services/embedding/ollama_embed_service.py +48 -36
  20. isa_model/inference/services/llm/__init__.py +0 -4
  21. isa_model/inference/services/llm/base_llm_service.py +134 -0
  22. isa_model/inference/services/llm/ollama_llm_service.py +1 -10
  23. isa_model/inference/services/llm/openai_llm_service.py +70 -61
  24. isa_model/inference/services/vision/__init__.py +1 -1
  25. isa_model/inference/services/vision/ollama_vision_service.py +4 -4
  26. isa_model/inference/services/vision/{yyds_vision_service.py → openai_vision_service.py} +5 -5
  27. isa_model/inference/services/vision/replicate_image_gen_service.py +185 -0
  28. isa_model/training/__init__.py +44 -0
  29. isa_model/training/factory.py +393 -0
  30. isa_model-0.1.1.dist-info/METADATA +327 -0
  31. {isa_model-0.1.0.dist-info → isa_model-0.1.1.dist-info}/RECORD +35 -60
  32. isa_model/deployment/mlflow_gateway/__init__.py +0 -8
  33. isa_model/deployment/mlflow_gateway/start_gateway.py +0 -65
  34. isa_model/deployment/unified_multimodal_client.py +0 -341
  35. isa_model/inference/adapter/triton_adapter.py +0 -453
  36. isa_model/inference/backends/Pytorch/bge_embed_backend.py +0 -188
  37. isa_model/inference/backends/Pytorch/gemma_backend.py +0 -167
  38. isa_model/inference/backends/Pytorch/llama_backend.py +0 -166
  39. isa_model/inference/backends/Pytorch/whisper_backend.py +0 -194
  40. isa_model/inference/backends/__init__.py +0 -53
  41. isa_model/inference/backends/base_backend_client.py +0 -26
  42. isa_model/inference/backends/container_services.py +0 -104
  43. isa_model/inference/backends/local_services.py +0 -72
  44. isa_model/inference/backends/openai_client.py +0 -130
  45. isa_model/inference/backends/replicate_client.py +0 -197
  46. isa_model/inference/backends/third_party_services.py +0 -239
  47. isa_model/inference/backends/triton_client.py +0 -97
  48. isa_model/inference/client_sdk/client.py +0 -134
  49. isa_model/inference/client_sdk/client_data_std.py +0 -34
  50. isa_model/inference/client_sdk/client_sdk_schema.py +0 -16
  51. isa_model/inference/client_sdk/exceptions.py +0 -0
  52. isa_model/inference/engine/triton/model_repository/bge/1/model.py +0 -174
  53. isa_model/inference/engine/triton/model_repository/gemma/1/model.py +0 -250
  54. isa_model/inference/engine/triton/model_repository/llama/1/model.py +0 -76
  55. isa_model/inference/engine/triton/model_repository/whisper/1/model.py +0 -195
  56. isa_model/inference/providers/vllm_provider.py +0 -0
  57. isa_model/inference/providers/yyds_provider.py +0 -83
  58. isa_model/inference/services/audio/fish_speech/handler.py +0 -215
  59. isa_model/inference/services/audio/runpod_tts_fish_service.py +0 -212
  60. isa_model/inference/services/audio/triton_speech_service.py +0 -138
  61. isa_model/inference/services/audio/whisper_service.py +0 -186
  62. isa_model/inference/services/base_tts_service.py +0 -66
  63. isa_model/inference/services/embedding/bge_service.py +0 -183
  64. isa_model/inference/services/embedding/ollama_rerank_service.py +0 -118
  65. isa_model/inference/services/embedding/onnx_rerank_service.py +0 -73
  66. isa_model/inference/services/llm/gemma_service.py +0 -143
  67. isa_model/inference/services/llm/llama_service.py +0 -143
  68. isa_model/inference/services/llm/replicate_llm_service.py +0 -179
  69. isa_model/inference/services/llm/triton_llm_service.py +0 -230
  70. isa_model/inference/services/vision/replicate_vision_service.py +0 -241
  71. isa_model/inference/services/vision/triton_vision_service.py +0 -199
  72. isa_model-0.1.0.dist-info/METADATA +0 -116
  73. /isa_model/inference/{client_sdk/__init__.py → services/embedding/openai_embed_service.py} +0 -0
  74. {isa_model-0.1.0.dist-info → isa_model-0.1.1.dist-info}/WHEEL +0 -0
  75. {isa_model-0.1.0.dist-info → isa_model-0.1.1.dist-info}/licenses/LICENSE +0 -0
  76. {isa_model-0.1.0.dist-info → isa_model-0.1.1.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,327 @@
1
+ Metadata-Version: 2.4
2
+ Name: isa-model
3
+ Version: 0.1.1
4
+ Summary: Unified AI model serving framework
5
+ Author-email: isA_Model Contributors <your.email@example.com>
6
+ License-Expression: MIT
7
+ Classifier: Development Status :: 3 - Alpha
8
+ Classifier: Intended Audience :: Developers
9
+ Classifier: Operating System :: OS Independent
10
+ Classifier: Programming Language :: Python :: 3
11
+ Requires-Python: >=3.8
12
+ Description-Content-Type: text/markdown
13
+ License-File: LICENSE
14
+ Requires-Dist: fastapi>=0.95.0
15
+ Requires-Dist: numpy>=1.20.0
16
+ Requires-Dist: httpx>=0.23.0
17
+ Requires-Dist: pydantic>=2.0.0
18
+ Requires-Dist: uvicorn>=0.22.0
19
+ Requires-Dist: requests>=2.28.0
20
+ Requires-Dist: aiohttp>=3.8.0
21
+ Requires-Dist: transformers>=4.30.0
22
+ Requires-Dist: langchain-core>=0.1.0
23
+ Requires-Dist: huggingface-hub>=0.16.0
24
+ Requires-Dist: kubernetes>=25.3.0
25
+ Requires-Dist: mlflow>=2.4.0
26
+ Requires-Dist: torch>=2.0.0
27
+ Requires-Dist: openai>=1.10.0
28
+ Requires-Dist: replicate>=0.23.0
29
+ Requires-Dist: python-dotenv>=1.0.0
30
+ Dynamic: license-file
31
+
32
+ # isA Model - Unified AI Model Serving Framework
33
+
34
+ A comprehensive Python framework for working with multiple AI providers and models through a unified interface. Support for OpenAI, Replicate, Ollama, and more.
35
+
36
+ ## Installation
37
+
38
+ ```bash
39
+ pip install isa-model
40
+ ```
41
+
42
+ ## Quick Start
43
+
44
+ The isa-model package supports three main usage patterns:
45
+
46
+ ### 1. Pass API Keys Directly (Recommended)
47
+
48
+ This is the most flexible approach - no environment variables needed:
49
+
50
+ ```python
51
+ from isa_model.inference.ai_factory import AIFactory
52
+
53
+ # Create factory instance
54
+ factory = AIFactory.get_instance()
55
+
56
+ # Use OpenAI with API key
57
+ llm = factory.get_llm(
58
+ model_name="gpt-4o-mini",
59
+ provider="openai",
60
+ api_key="your-openai-api-key-here"
61
+ )
62
+
63
+ # Use Replicate for image generation
64
+ image_gen = factory.get_vision_model(
65
+ model_name="stability-ai/sdxl",
66
+ provider="replicate",
67
+ api_key="your-replicate-token-here"
68
+ )
69
+ ```
70
+
71
+ ### 2. Use Environment Variables
72
+
73
+ Set your API keys as environment variables:
74
+
75
+ ```bash
76
+ export OPENAI_API_KEY="your-openai-api-key"
77
+ export REPLICATE_API_TOKEN="your-replicate-token"
78
+ ```
79
+
80
+ Then use without passing keys:
81
+
82
+ ```python
83
+ from isa_model.inference.ai_factory import AIFactory
84
+
85
+ factory = AIFactory.get_instance()
86
+
87
+ # Will automatically use OPENAI_API_KEY from environment
88
+ llm = factory.get_llm(model_name="gpt-4o-mini", provider="openai")
89
+
90
+ # Will automatically use REPLICATE_API_TOKEN from environment
91
+ image_gen = factory.get_vision_model(model_name="stability-ai/sdxl", provider="replicate")
92
+ ```
93
+
94
+ ### 3. Use Local Models (No API Key Needed)
95
+
96
+ For local models like Ollama, no API keys are required:
97
+
98
+ ```python
99
+ from isa_model.inference.ai_factory import AIFactory
100
+
101
+ factory = AIFactory.get_instance()
102
+
103
+ # Use local Ollama model (no API key needed)
104
+ llm = factory.get_llm(model_name="llama3.1", provider="ollama")
105
+ ```
106
+
107
+ ## Supported Services
108
+
109
+ ### Language Models (LLM)
110
+
111
+ ```python
112
+ # OpenAI models
113
+ llm = factory.get_llm("gpt-4o-mini", "openai", api_key="your-key")
114
+ llm = factory.get_llm("gpt-4o", "openai", api_key="your-key")
115
+
116
+ # Ollama models (local)
117
+ llm = factory.get_llm("llama3.1", "ollama")
118
+ llm = factory.get_llm("codellama", "ollama")
119
+
120
+ # Replicate models
121
+ llm = factory.get_llm("meta/llama-3-70b-instruct", "replicate", api_key="your-token")
122
+ ```
123
+
124
+ ### Vision Models
125
+
126
+ ```python
127
+ # OpenAI vision
128
+ vision = factory.get_vision_model("gpt-4o", "openai", api_key="your-key")
129
+
130
+ # Replicate image generation
131
+ image_gen = factory.get_vision_model("stability-ai/sdxl", "replicate", api_key="your-token")
132
+
133
+ # Ollama vision (local)
134
+ vision = factory.get_vision_model("llava", "ollama")
135
+ ```
136
+
137
+ ### Embedding Models
138
+
139
+ ```python
140
+ # OpenAI embeddings
141
+ embedder = factory.get_embedding("text-embedding-3-small", "openai", {"api_key": "your-key"})
142
+
143
+ # Ollama embeddings (local)
144
+ embedder = factory.get_embedding("bge-m3", "ollama")
145
+ ```
146
+
147
+ ## Base Service Classes
148
+
149
+ The framework provides comprehensive base classes for implementing new AI services:
150
+
151
+ ### BaseLLMService
152
+ - `ainvoke()` - Universal invocation method
153
+ - `achat()` - Chat completion with messages
154
+ - `acompletion()` - Simple text completion
155
+ - `agenerate()` - Generate multiple completions
156
+ - `astream_chat()` - Streaming chat responses
157
+ - `get_token_usage()` - Token usage statistics
158
+
159
+ ### BaseVisionService
160
+ - `analyze_image()` - Analyze and describe images
161
+ - `describe_image()` - Generate detailed descriptions
162
+ - `extract_text()` - OCR text extraction
163
+ - `detect_objects()` - Object detection
164
+ - `classify_image()` - Image classification
165
+ - `compare_images()` - Image similarity comparison
166
+
167
+ ### BaseImageGenService
168
+ - `generate_image()` - Generate single image from text
169
+ - `generate_images()` - Generate multiple images
170
+ - `image_to_image()` - Transform existing images
171
+ - `get_supported_sizes()` - Get supported dimensions
172
+
173
+ ### BaseEmbedService
174
+ - `create_text_embedding()` - Single text embedding
175
+ - `create_text_embeddings()` - Batch text embeddings
176
+ - `compute_similarity()` - Similarity calculation
177
+ - `find_similar_texts()` - Semantic search
178
+
179
+ ### BaseSTTService (Speech-to-Text)
180
+ - `transcribe_audio()` - Audio transcription
181
+ - `transcribe_audio_batch()` - Batch transcription
182
+ - `detect_language()` - Language detection
183
+
184
+ ### BaseTTSService (Text-to-Speech)
185
+ - `synthesize_speech()` - Text to speech conversion
186
+ - `synthesize_speech_to_file()` - Save speech to file
187
+ - `get_available_voices()` - List available voices
188
+
189
+ ## Usage Examples
190
+
191
+ ### Chat Completion
192
+
193
+ ```python
194
+ import asyncio
195
+ from isa_model.inference.ai_factory import AIFactory
196
+
197
+ async def chat_example():
198
+ factory = AIFactory.get_instance()
199
+ llm = factory.get_llm("gpt-4o-mini", "openai", api_key="your-key")
200
+
201
+ messages = [
202
+ {"role": "user", "content": "Hello, how are you?"}
203
+ ]
204
+
205
+ response = await llm.achat(messages)
206
+ print(response)
207
+
208
+ # Run the async function
209
+ asyncio.run(chat_example())
210
+ ```
211
+
212
+ ### Image Analysis
213
+
214
+ ```python
215
+ import asyncio
216
+ from isa_model.inference.ai_factory import AIFactory
217
+
218
+ async def vision_example():
219
+ factory = AIFactory.get_instance()
220
+ vision = factory.get_vision_model("gpt-4o", "openai", api_key="your-key")
221
+
222
+ result = await vision.analyze_image(
223
+ image="path/to/your/image.jpg",
224
+ prompt="What do you see in this image?"
225
+ )
226
+
227
+ print(result["text"])
228
+
229
+ asyncio.run(vision_example())
230
+ ```
231
+
232
+ ### Image Generation
233
+
234
+ ```python
235
+ import asyncio
236
+ from isa_model.inference.ai_factory import AIFactory
237
+
238
+ async def image_gen_example():
239
+ factory = AIFactory.get_instance()
240
+ image_gen = factory.get_vision_model(
241
+ "stability-ai/sdxl",
242
+ "replicate",
243
+ api_key="your-replicate-token"
244
+ )
245
+
246
+ result = await image_gen.generate_image(
247
+ prompt="A beautiful sunset over mountains",
248
+ width=1024,
249
+ height=1024
250
+ )
251
+
252
+ # Save the generated image
253
+ with open("generated_image.png", "wb") as f:
254
+ f.write(result["image_data"])
255
+
256
+ asyncio.run(image_gen_example())
257
+ ```
258
+
259
+ ## Configuration Options
260
+
261
+ You can pass additional configuration options:
262
+
263
+ ```python
264
+ # Custom configuration
265
+ config = {
266
+ "temperature": 0.7,
267
+ "max_tokens": 1000,
268
+ "top_p": 0.9
269
+ }
270
+
271
+ llm = factory.get_llm(
272
+ model_name="gpt-4o-mini",
273
+ provider="openai",
274
+ config=config,
275
+ api_key="your-key"
276
+ )
277
+ ```
278
+
279
+ ## Error Handling
280
+
281
+ The framework provides informative error messages and graceful fallbacks:
282
+
283
+ ```python
284
+ try:
285
+ llm = factory.get_llm("gpt-4o-mini", "openai", api_key="invalid-key")
286
+ response = await llm.achat([{"role": "user", "content": "Hello"}])
287
+ except Exception as e:
288
+ print(f"Error: {e}")
289
+ ```
290
+
291
+ ## Development
292
+
293
+ ### Installing for Development
294
+
295
+ ```bash
296
+ git clone <repository-url>
297
+ cd isA_Model
298
+ pip install -e .
299
+ ```
300
+
301
+ ### Running Tests
302
+
303
+ ```bash
304
+ pytest tests/
305
+ ```
306
+
307
+ ### Building and Publishing
308
+
309
+ ```bash
310
+ # Build the package
311
+ python -m build
312
+
313
+ # Upload to PyPI (requires PYPI_API_TOKEN in .env.local)
314
+ bash scripts/normal_update.sh
315
+ ```
316
+
317
+ ## License
318
+
319
+ MIT License - see LICENSE file for details.
320
+
321
+ ## Contributing
322
+
323
+ Contributions are welcome! Please read our contributing guidelines and submit pull requests to our GitHub repository.
324
+
325
+ ## Support
326
+
327
+ For questions and support, please open an issue on our GitHub repository.
@@ -1,6 +1,6 @@
1
- isa_model/__init__.py,sha256=d63WuNpouABPnomHiQKmPp829-ba-CtKnyefZwgFNsc,87
1
+ isa_model/__init__.py,sha256=gr-wNN5AZw-rACDfAaQjU5yRHNvqAdimR4O7opDC7tE,87
2
2
  isa_model/core/model_manager.py,sha256=eQp0MV0x5sghL1qliPUWkFX4sEKqInyGLoICfNkJnZM,5275
3
- isa_model/core/model_registry.py,sha256=3K32y9N0M1fXoUH_EBPoFq9Tj1enFgOSx9H57upmsHs,4005
3
+ isa_model/core/model_registry.py,sha256=gT8yFxi1gC-45Bolc9WX19ZvrjuV1xyBgQX6TFhz62k,14032
4
4
  isa_model/core/model_router.py,sha256=WT45wP5Ta-c3QErPGUY86G9-IpWQXjLC5FG8cPI-qK0,8637
5
5
  isa_model/core/model_storage.py,sha256=yMLapW87EY1EPXw6S7H8UQAZh3hJ1KxsEohjgjw-HrA,4507
6
6
  isa_model/core/model_version.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -8,69 +8,42 @@ isa_model/core/resource_manager.py,sha256=jlrlhHqtCbq4sAFgfGEEhTWRcuftXtjfV6SjkZ
8
8
  isa_model/core/storage/hf_storage.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
9
  isa_model/core/storage/local_storage.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
10
  isa_model/core/storage/minio_storage.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
- isa_model/deployment/unified_multimodal_client.py,sha256=GjdQTfFAG4S3dvYvVrH9HraHuDMLPnoeTQKXx0Ybx5M,10858
12
- isa_model/deployment/mlflow_gateway/__init__.py,sha256=gXV4Vg5lTkqjf9ZQ1Xp-36U15GpoGo5x529stoH3zeI,197
13
- isa_model/deployment/mlflow_gateway/start_gateway.py,sha256=bfGuHggag3tIO9ItY5H6LSx1fZKDILBUog1JWw6Rlz4,1762
11
+ isa_model/deployment/gpu_fp16_ds8/models/deepseek_r1/1/model.py,sha256=jCAN_r-22gNR1HURAjmIZVeuU1TNidcyXRzxQdi2jOs,4015
12
+ isa_model/deployment/gpu_fp16_ds8/scripts/download_model.py,sha256=E6iSAgBu3OGfK-HLIXbGWfYSAIGQSGzj6wMAy1JAugI,566
13
+ isa_model/deployment/gpu_int8_ds8/app/server.py,sha256=lwWxdnR2DNEd0vIGQyfabKtDSUzSHVQsy3Z_AJejpVg,2102
14
+ isa_model/deployment/gpu_int8_ds8/scripts/test_client.py,sha256=aCULgRYzEQj_ELUK1bmPgN99yvFgNR5C0O3gc8S32pg,1421
15
+ isa_model/deployment/gpu_int8_ds8/scripts/test_client_os.py,sha256=XXrneTCHUeh1LNRcu-YtZQ5B4pNawlrxC-cTWmJU2A8,936
16
+ isa_model/eval/__init__.py,sha256=3sM7qLSIL_RMKcsmkCYcjOjv9ozuk16r7pnl4F-XeNA,1197
17
+ isa_model/eval/benchmarks.py,sha256=_L4Vwj2hwf2yhqoleIASO9z5e3LRCClCVEVCQbGt0I8,16885
18
+ isa_model/eval/factory.py,sha256=JmGRLTYPtZLqKwy8o1Z9NHUHX6mkRDw13ac_Qin_VrE,19529
19
+ isa_model/eval/metrics.py,sha256=mYeGwSa9PkgY0p-vadAscvak-pLrVfCSrsmAodVpgNQ,22584
14
20
  isa_model/inference/__init__.py,sha256=usfuQJ4zYY2RRtHkE-V6LuJ5aN7WJogtPUj9Qmy4Wvw,318
15
- isa_model/inference/ai_factory.py,sha256=VLmmgJe26khTSXm_0z1p73vvbsvmVv9T8xvcJmnsEHo,15704
21
+ isa_model/inference/ai_factory.py,sha256=mF-Pj8FUCsOvSG0IIg1OVMhDwXnpxIbZQJWVYWfjv2s,14660
16
22
  isa_model/inference/base.py,sha256=qwOddnSGI0GUdD6qIdGBPQpkW7UjU3Y-zaZvu70B4WA,1278
17
- isa_model/inference/adapter/triton_adapter.py,sha256=nmG1uNVXY28VxCdITDJw_p1FXVuBp9mtOutnHzv0cQ4,15120
18
23
  isa_model/inference/adapter/unified_api.py,sha256=67_Ok8W20m6Otf6r9WyOEVpnxondP4UAxOASk9ozDk4,8668
19
- isa_model/inference/backends/__init__.py,sha256=zNu9tlQlET5Jpr8kRGHV0vVW7XEyISeyNTxfkeEuYk4,1254
20
- isa_model/inference/backends/base_backend_client.py,sha256=aDlHnStvpxD8whX9E1TZ-8yh2SBfxHD_uzBNj84p1dE,648
21
- isa_model/inference/backends/container_services.py,sha256=BMa32QuFY19AOlhW4kFsPPrYDxiU5xbAPkf-l5cCCMo,4000
22
- isa_model/inference/backends/local_services.py,sha256=hReD3NimF5-TfrRl2gibHRs_TNF8TQ70IeDAQU4Xw1Q,2625
23
- isa_model/inference/backends/openai_client.py,sha256=gwB2VE-NfDtYaSM2ILh4uEp-i0X8SHf-fHPv1skF9WA,4703
24
- isa_model/inference/backends/replicate_client.py,sha256=kmcTvhyv09TWb-mx8As8GsjIJezI9Hsc4MZMinVqQo0,7062
25
- isa_model/inference/backends/third_party_services.py,sha256=jyvOoXulmIowcvbk5XzAUjUgUm2dn1ox3F1nPLI4fBQ,9471
26
- isa_model/inference/backends/triton_client.py,sha256=HuZB_FY4PhI-u6vpZMOzMjALFO9Jds1Vzyw8PMaTuxg,3712
27
- isa_model/inference/backends/Pytorch/bge_embed_backend.py,sha256=UNZbOYDzPvaxi8_8jRs881v-xpwGK1omB8uDWjL-N_s,5917
28
- isa_model/inference/backends/Pytorch/gemma_backend.py,sha256=i8W58H4iVfDvEHc6m5VZymNPTgexVGPDZ1rDn5s4ae0,5410
29
- isa_model/inference/backends/Pytorch/llama_backend.py,sha256=tRpAs9DdoqH1pjzDMg5T60sIYMOjtaSlLJ-Roxcl1aU,5248
30
- isa_model/inference/backends/Pytorch/whisper_backend.py,sha256=oMJ3Fg6O7zaURDg21IdM3HCdnyJiF-iyxIvNOuFFc8k,6218
31
- isa_model/inference/client_sdk/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
32
- isa_model/inference/client_sdk/client.py,sha256=pvKNwnTGcPX-5Q3ACfiftXfghUaIksFfd-zqEi-ze0g,5049
33
- isa_model/inference/client_sdk/client_data_std.py,sha256=tFBMb2F6pqNeq49fKkRSJW656qpO0BB1rs_wqYJGCS4,1817
34
- isa_model/inference/client_sdk/client_sdk_schema.py,sha256=Kq5pKrvEzCs2ZYJ44PaMTimHyyCttI-fE1MES-qkGFc,544
35
- isa_model/inference/client_sdk/exceptions.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
36
- isa_model/inference/engine/triton/model_repository/bge/1/model.py,sha256=43MuLQ_nNl64VTRPLmxe7SzkRJl-cZ3A_wnlgQMl_B8,6004
37
- isa_model/inference/engine/triton/model_repository/gemma/1/model.py,sha256=1aR7UG6W-Dv1PyOTRTmnKIerogricl2DI_4p__hfSt4,9481
38
- isa_model/inference/engine/triton/model_repository/llama/1/model.py,sha256=4m9_IorEeAPMve-93AECo3pRjK6Swhs38RbCfCn3WKo,3744
39
- isa_model/inference/engine/triton/model_repository/whisper/1/model.py,sha256=0hugV7MZYj4EwiF1JZzYjFSuj-HK7KVumwtPL2Dg8-w,7943
40
24
  isa_model/inference/providers/__init__.py,sha256=a83q-LMFv8u47wf0XtxvqOw_mlVgA_90wtuwy02qdDE,581
41
25
  isa_model/inference/providers/base_provider.py,sha256=btkSXE7o1IfOpv22hMM6_DNlm05tbLMszsP1J4T26KE,924
42
26
  isa_model/inference/providers/model_cache_manager.py,sha256=dLRpx7OJweQ5LcSAkU7D0DQRfLtIhG6nGvg4W_gau80,15315
43
27
  isa_model/inference/providers/ollama_provider.py,sha256=BLkWp4gmCw6Fwf1yNRY90VftMqwca9YOGOHf6DqVEKs,2692
44
- isa_model/inference/providers/openai_provider.py,sha256=Gwg7JALDs2xTEIWVX0foFue7PlSTjES3I-OLD9cnXOA,3280
45
- isa_model/inference/providers/replicate_provider.py,sha256=m4FzCd2BTtlPr11gUBDs6L4g4jTNHiPXrp2aoQ5bChs,3414
46
- isa_model/inference/providers/triton_provider.py,sha256=JRzj15a3HtuaZpLbgPxGfjDubVXzZCecUwfqnjHHa-g,15251
47
- isa_model/inference/providers/vllm_provider.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
48
- isa_model/inference/providers/yyds_provider.py,sha256=h0rAtEvsq4B1x94WAZkUY6hhbnQ1XycW1zV440Zio7w,3028
28
+ isa_model/inference/providers/openai_provider.py,sha256=8ywUsrvlvC7VY3LNOVJP1IcRwBMi1NvG0PoI0lYo4jM,3881
29
+ isa_model/inference/providers/replicate_provider.py,sha256=qXnK3Yzy5-gaduVJVY8asrIIi-97m4WGUkG963_4ifk,3948
30
+ isa_model/inference/providers/triton_provider.py,sha256=GKlth7cTOx6ERbsXXJ0gDNby3kVGQNULBDt098BXBSU,15258
49
31
  isa_model/inference/services/__init__.py,sha256=p-UlEGMnadGUD6zzwfAjf367S2QQ-z1sD6TP-K4EjEM,353
50
32
  isa_model/inference/services/base_service.py,sha256=PB6eZp-PynUdo9a0QofvHgrrJLUFYM_FSafTg7fvWrY,3083
51
- isa_model/inference/services/base_tts_service.py,sha256=UqfcjS9aE5eMURc0bU2nSmUTyn8QxeKEqU5kUwK-W5E,1934
52
- isa_model/inference/services/audio/runpod_tts_fish_service.py,sha256=CLeV8O68Y_L-ipaSj9aq348HavTpYAFE5yBDfZ_gfA0,7831
53
- isa_model/inference/services/audio/triton_speech_service.py,sha256=X3P8YsQmuOER7G7-8HaGlvhbuDAmMisV8M7S-ai3cuc,5033
54
- isa_model/inference/services/audio/whisper_service.py,sha256=fBc1z7YmvZTqn_CPkSDGsJj4emdDnomIBBwOQzHg2EM,6109
55
- isa_model/inference/services/audio/yyds_audio_service.py,sha256=mitm6o4a6N4wZAWyCl5_1B4-LMzlGDfVT87OP9mso30,2553
56
- isa_model/inference/services/audio/fish_speech/handler.py,sha256=YuFfxJiu6VvrsYbAzH_hQI1iwTWD6bTgTk8pcKwKWJ4,6673
57
- isa_model/inference/services/embedding/bge_service.py,sha256=Bx7jScA9RYaQD-9t6QgKeLIY9pmd99JnZCYJgXSrTcQ,6058
58
- isa_model/inference/services/embedding/ollama_embed_service.py,sha256=zoTHH8Z1IRkDMNciNJghjbV7uzxalIbWc1FYB6-nNoI,3168
59
- isa_model/inference/services/embedding/ollama_rerank_service.py,sha256=NdlH2fDGbFUdTVtmRLTEcer-f7PcmTDmf0bDkSCTPdI,4276
60
- isa_model/inference/services/embedding/onnx_rerank_service.py,sha256=GPxezAyZoDpkAdaxuGZ_Fjx3EPpuvSd9b0cQMk_4_8w,2698
61
- isa_model/inference/services/llm/__init__.py,sha256=hV0WaIb_-fbzzxPgqFihZN5-OcZYVpxYt3bhCJCZl3k,424
62
- isa_model/inference/services/llm/gemma_service.py,sha256=P8zh-FEYxpiRQJIal3TtZeplxs_GUqMa6C8FvwkQgp8,4396
63
- isa_model/inference/services/llm/llama_service.py,sha256=XlqVxG_THjNRrQ4cbSeLv3L-Mln5XVqp6gWQF0GtGlo,4396
64
- isa_model/inference/services/llm/ollama_llm_service.py,sha256=H2_m83taVFQCgIXtiYGfBrCo9YOuKcikzwHmHSf-_HI,4290
65
- isa_model/inference/services/llm/openai_llm_service.py,sha256=WE9YtjRJepZG756EoluJSr1NLtPTBjV1vqRs3EqufkM,4960
66
- isa_model/inference/services/llm/replicate_llm_service.py,sha256=ZNAsGrIrTYvj6cguVmqAGtAhW9_FTO8aJj8Xh11kwrQ,6962
67
- isa_model/inference/services/llm/triton_llm_service.py,sha256=V8XgJ1e9NLenX0SICvoJdGYsqAG7HnK2G_Pqqv5ON68,8102
33
+ isa_model/inference/services/audio/base_stt_service.py,sha256=tIfdRLEppcFEyTEmI8zi8OwMd7wVP423MQDN4iYDEcE,2800
34
+ isa_model/inference/services/audio/base_tts_service.py,sha256=BzZ3JrrLpm4COthNyNrIO2QgP7RZkXDNPEELEKHzIbA,4164
35
+ isa_model/inference/services/audio/openai_tts_service.py,sha256=0R3-AFSAU0sOCx9iXmRSLxgAh6Tm1n887mPK4_MGTgY,2560
36
+ isa_model/inference/services/embedding/ollama_embed_service.py,sha256=qspgGDcLPakG0yirdKDT0r7asgUkMO-soM2J1OaqE6g,3700
37
+ isa_model/inference/services/embedding/openai_embed_service.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
38
+ isa_model/inference/services/llm/__init__.py,sha256=Yf6zMjcHs-eGLzl9mRGRf75S_5oBuNxxpc2r3mDw-CE,269
39
+ isa_model/inference/services/llm/base_llm_service.py,sha256=HtlTArjeCywvkzlAp4R4iWkoaOEQg1RdltOZdbeRYFQ,3982
40
+ isa_model/inference/services/llm/ollama_llm_service.py,sha256=WYCuJG16x9RtQm0vFJNxQWSVKFtNnCk8kc3_HZB4UKs,3875
41
+ isa_model/inference/services/llm/openai_llm_service.py,sha256=EuduDfZ-10PEoFrjRr7KmZvxew2B-GQSYlvmqKQcVXA,5394
68
42
  isa_model/inference/services/others/table_transformer_service.py,sha256=r74h6QUSwSj6jTt-gRProz9SgwBwKWDe50NR0uqW0ZI,2367
69
- isa_model/inference/services/vision/__init__.py,sha256=ddHlbtZ_P2LaQHP2LiJc-yOqkXwPVRv6_q3qCjwrkng,274
70
- isa_model/inference/services/vision/ollama_vision_service.py,sha256=zPe9pRSP82K95WAaikQYDhzCcjKUrxioi3Qsltf9SLI,1997
71
- isa_model/inference/services/vision/replicate_vision_service.py,sha256=kfjzOIWK7S4FccEzLxFM77EVVkK9V4Rwh1w4EplfL5w,8405
72
- isa_model/inference/services/vision/triton_vision_service.py,sha256=XUs8bqZ-FN300ECyiw-C-fg1AbvhoespkJhawQkzEzo,7220
73
- isa_model/inference/services/vision/yyds_vision_service.py,sha256=hiBy_4s1L7k_4p6VX1Hu2GOgdTSheYf7ZgrRoy3Kpmc,2911
43
+ isa_model/inference/services/vision/__init__.py,sha256=t06-E1Fo89MTLJweHx3ai892HHbvnwh5G0ovj0Y-2wk,277
44
+ isa_model/inference/services/vision/ollama_vision_service.py,sha256=aGWMF11YZ-4-6kSkX5af0m1u704OYutO0wwmfWszhBE,2004
45
+ isa_model/inference/services/vision/openai_vision_service.py,sha256=5M182cV-wKCnV_U0CGWu4uFrggo--3YLD_0_FpNW9Ak,2920
46
+ isa_model/inference/services/vision/replicate_image_gen_service.py,sha256=03jhK31C_4p0Xj5V9GiCRlgF-UpNw7aHjCYiCCiqWNw,7826
74
47
  isa_model/inference/services/vision/helpers/image_utils.py,sha256=hTZi4MLktETupPIbE-TXMSi1kix6h8UfLiyEIDt2rzA,1751
75
48
  isa_model/inference/services/vision/helpers/text_splitter.py,sha256=6AbvcQ7H6MS54B9d9T1XBGg4GhvmKfZqp00lKp9pF-U,1635
76
49
  isa_model/inference/utils/conversion/bge_rerank_convert.py,sha256=1dvtxe5-PPCe2Au6SO8F2XaD-xdIoeA4zDTcid2L9FU,2691
@@ -81,6 +54,8 @@ isa_model/scripts/mlflow_manager.py,sha256=7xMN0_wELr1jcALuTW9WeWirRkPZPlE2LlFfZ
81
54
  isa_model/scripts/model_registry.py,sha256=7rycPkVk8WHUO3LJaHfdyy5Yq8qmd_4WkGk4wKan-2w,14279
82
55
  isa_model/scripts/start_mlflow.py,sha256=3AGKBzByjzbZ56I8w0IOfYnp3V6EU2Lv9NtX9maSqL8,2571
83
56
  isa_model/scripts/training_tracker.py,sha256=cnXPi8ip2OK76-aWAOgC-dKx90PqZLEnP6UbHso7Fwc,8080
57
+ isa_model/training/__init__.py,sha256=RQDQ0m8p9YXBXgyyFxADeRA_-m18-wgNyWpjJhJfudU,950
58
+ isa_model/training/factory.py,sha256=iX-OkKRud09F2VfGXKKKj3w9d26kh9Po4FKvxTqmFiI,12581
84
59
  isa_model/training/engine/llama_factory/__init__.py,sha256=WCqmUHTidASN4owGDOPSnKeLdG1gbK1MXQrRAzjP0z4,969
85
60
  isa_model/training/engine/llama_factory/config.py,sha256=3OvjuXs9IyfcY52pB1SpXSOe0VwmKZvsmy8VK9Ig6Ss,3178
86
61
  isa_model/training/engine/llama_factory/data_adapter.py,sha256=krqLp6Jy-IFQ6_M8O3FCtU-qqzUFJ65aNHpVq9C4Zyk,8865
@@ -110,8 +85,8 @@ isa_model/training/llm_model/annotation/tests/test_annotation_flow.py,sha256=DXY
110
85
  isa_model/training/llm_model/annotation/tests/test_minio copy.py,sha256=EI-PlH5xttAZF14Z_xn6LjgIJBkvP2qjLcvbX2hc0RM,3946
111
86
  isa_model/training/llm_model/annotation/tests/test_minio_upload.py,sha256=fL1eMubwR6L9lYc3zEwlWU9yjJuTsIYi93i0l9QUjm0,1109
112
87
  isa_model/training/llm_model/annotation/views/annotation_controller.py,sha256=3VzJ52yI-YIpcaAAXy2qac7sr4hTnFdtn-ZEKTt4IkM,5792
113
- isa_model-0.1.0.dist-info/licenses/LICENSE,sha256=nNPdMBBVrQz3f7AgKFZuyQgdar9d90Vdw51es-P72Dw,1084
114
- isa_model-0.1.0.dist-info/METADATA,sha256=qKxBtPmgD-U5QhkbO0LDAbVB0KQb9fxUXH6Hskfkk6g,3004
115
- isa_model-0.1.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
116
- isa_model-0.1.0.dist-info/top_level.txt,sha256=eHSy_Xb3kNkh2kK11mi1mZh0Wz91AQ5b8k2KFYO-rE8,10
117
- isa_model-0.1.0.dist-info/RECORD,,
88
+ isa_model-0.1.1.dist-info/licenses/LICENSE,sha256=nNPdMBBVrQz3f7AgKFZuyQgdar9d90Vdw51es-P72Dw,1084
89
+ isa_model-0.1.1.dist-info/METADATA,sha256=hTYSsOkklHerhi4whQn44KV0TOrbrmmNLpqVnVf6Cz4,8105
90
+ isa_model-0.1.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
91
+ isa_model-0.1.1.dist-info/top_level.txt,sha256=eHSy_Xb3kNkh2kK11mi1mZh0Wz91AQ5b8k2KFYO-rE8,10
92
+ isa_model-0.1.1.dist-info/RECORD,,
@@ -1,8 +0,0 @@
1
- """
2
- MLflow Gateway module for IsA Model.
3
- Replaces the custom adapter with industry-standard MLflow Gateway.
4
- """
5
-
6
- from .start_gateway import start_mlflow_gateway
7
-
8
- __all__ = ["start_mlflow_gateway"]
@@ -1,65 +0,0 @@
1
- #!/usr/bin/env python3
2
- """
3
- MLflow Gateway starter script.
4
- Replaces the custom adapter with industry-standard MLflow Gateway.
5
-
6
- Usage:
7
- python -m isa_model.deployment.mlflow_gateway.start_gateway
8
- """
9
-
10
- import os
11
- import sys
12
- import logging
13
- import subprocess
14
- from pathlib import Path
15
-
16
- # Configure logging
17
- logging.basicConfig(
18
- level=logging.INFO,
19
- format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
20
- )
21
- logger = logging.getLogger(__name__)
22
-
23
-
24
- def start_mlflow_gateway():
25
- """Start MLflow Gateway with our configuration."""
26
-
27
- # Get the directory containing this script
28
- script_dir = Path(__file__).parent
29
- config_file = script_dir / "gateway_config.yaml"
30
-
31
- if not config_file.exists():
32
- logger.error(f"Gateway config file not found: {config_file}")
33
- sys.exit(1)
34
-
35
- # Set environment variables
36
- os.environ["MLFLOW_GATEWAY_CONFIG_PATH"] = str(config_file)
37
-
38
- # MLflow Gateway command
39
- cmd = [
40
- "mlflow", "gateway", "start",
41
- "--config-path", str(config_file),
42
- "--host", "0.0.0.0",
43
- "--port", "8000"
44
- ]
45
-
46
- logger.info("🚀 Starting MLflow Gateway...")
47
- logger.info(f"📁 Config file: {config_file}")
48
- logger.info(f"🌐 Server: http://localhost:8000")
49
- logger.info(f"📚 Docs: http://localhost:8000/docs")
50
-
51
- try:
52
- # Start the gateway
53
- subprocess.run(cmd, check=True)
54
- except KeyboardInterrupt:
55
- logger.info("MLflow Gateway stopped by user")
56
- except subprocess.CalledProcessError as e:
57
- logger.error(f"MLflow Gateway failed to start: {e}")
58
- sys.exit(1)
59
- except Exception as e:
60
- logger.error(f"Unexpected error: {e}")
61
- sys.exit(1)
62
-
63
-
64
- if __name__ == "__main__":
65
- start_mlflow_gateway()