lemonade-sdk 8.1.9__tar.gz → 8.1.11__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of lemonade-sdk might be problematic. Click here for more details.

Files changed (89) hide show
  1. {lemonade_sdk-8.1.9/src/lemonade_sdk.egg-info → lemonade_sdk-8.1.11}/PKG-INFO +9 -6
  2. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/README.md +7 -5
  3. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/setup.py +3 -0
  4. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade/common/inference_engines.py +13 -4
  5. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade/common/system_info.py +570 -1
  6. lemonade_sdk-8.1.11/src/lemonade/tools/flm/__init__.py +1 -0
  7. lemonade_sdk-8.1.11/src/lemonade/tools/flm/utils.py +255 -0
  8. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade/tools/llamacpp/utils.py +62 -13
  9. lemonade_sdk-8.1.11/src/lemonade/tools/server/flm.py +137 -0
  10. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade/tools/server/llamacpp.py +23 -5
  11. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade/tools/server/serve.py +292 -135
  12. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade/tools/server/static/js/chat.js +165 -82
  13. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade/tools/server/static/js/models.js +87 -54
  14. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade/tools/server/static/js/shared.js +5 -3
  15. lemonade_sdk-8.1.11/src/lemonade/tools/server/static/logs.html +47 -0
  16. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade/tools/server/static/styles.css +159 -8
  17. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade/tools/server/static/webapp.html +28 -10
  18. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade/tools/server/tray.py +158 -38
  19. lemonade_sdk-8.1.11/src/lemonade/tools/server/utils/macos_tray.py +226 -0
  20. lemonade_sdk-8.1.9/src/lemonade/tools/server/utils/system_tray.py → lemonade_sdk-8.1.11/src/lemonade/tools/server/utils/windows_tray.py +13 -0
  21. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade/tools/server/webapp.py +4 -1
  22. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade/tools/server/wrapped_server.py +91 -25
  23. lemonade_sdk-8.1.11/src/lemonade/version.py +1 -0
  24. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade_install/install.py +25 -2
  25. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11/src/lemonade_sdk.egg-info}/PKG-INFO +9 -6
  26. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade_sdk.egg-info/SOURCES.txt +6 -1
  27. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade_sdk.egg-info/requires.txt +3 -0
  28. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade_server/cli.py +105 -14
  29. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade_server/model_manager.py +186 -45
  30. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade_server/pydantic_models.py +25 -1
  31. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade_server/server_models.json +162 -62
  32. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade_server/settings.py +39 -39
  33. lemonade_sdk-8.1.9/src/lemonade/version.py +0 -1
  34. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/LICENSE +0 -0
  35. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/NOTICE.md +0 -0
  36. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/pyproject.toml +0 -0
  37. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/setup.cfg +0 -0
  38. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade/__init__.py +0 -0
  39. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade/api.py +0 -0
  40. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade/cache.py +0 -0
  41. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade/cli.py +0 -0
  42. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade/common/__init__.py +0 -0
  43. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade/common/build.py +0 -0
  44. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade/common/cli_helpers.py +0 -0
  45. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade/common/exceptions.py +0 -0
  46. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade/common/filesystem.py +0 -0
  47. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade/common/network.py +0 -0
  48. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade/common/printing.py +0 -0
  49. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade/common/status.py +0 -0
  50. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade/common/test_helpers.py +0 -0
  51. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade/profilers/__init__.py +0 -0
  52. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade/profilers/agt_power.py +0 -0
  53. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade/profilers/hwinfo_power.py +0 -0
  54. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade/profilers/memory_tracker.py +0 -0
  55. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade/profilers/profiler.py +0 -0
  56. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade/sequence.py +0 -0
  57. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade/state.py +0 -0
  58. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade/tools/__init__.py +0 -0
  59. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade/tools/accuracy.py +0 -0
  60. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade/tools/adapter.py +0 -0
  61. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade/tools/bench.py +0 -0
  62. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade/tools/huggingface/bench.py +0 -0
  63. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade/tools/huggingface/load.py +0 -0
  64. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade/tools/huggingface/utils.py +0 -0
  65. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade/tools/humaneval.py +0 -0
  66. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade/tools/llamacpp/bench.py +0 -0
  67. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade/tools/llamacpp/load.py +0 -0
  68. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade/tools/management_tools.py +0 -0
  69. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade/tools/mmlu.py +0 -0
  70. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade/tools/oga/__init__.py +0 -0
  71. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade/tools/oga/bench.py +0 -0
  72. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade/tools/oga/load.py +0 -0
  73. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade/tools/oga/utils.py +0 -0
  74. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade/tools/perplexity.py +0 -0
  75. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade/tools/prompt.py +0 -0
  76. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade/tools/report/__init__.py +0 -0
  77. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade/tools/report/llm_report.py +0 -0
  78. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade/tools/report/table.py +0 -0
  79. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade/tools/server/__init__.py +0 -0
  80. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade/tools/server/static/favicon.ico +0 -0
  81. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade/tools/server/static/js/model-settings.js +0 -0
  82. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade/tools/server/tool_calls.py +0 -0
  83. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade/tools/server/utils/port.py +0 -0
  84. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade/tools/server/utils/thread.py +0 -0
  85. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade/tools/tool.py +0 -0
  86. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade_install/__init__.py +0 -0
  87. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade_sdk.egg-info/dependency_links.txt +0 -0
  88. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade_sdk.egg-info/entry_points.txt +0 -0
  89. {lemonade_sdk-8.1.9 → lemonade_sdk-8.1.11}/src/lemonade_sdk.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: lemonade-sdk
3
- Version: 8.1.9
3
+ Version: 8.1.11
4
4
  Summary: Lemonade SDK: Your LLM Aide for Validation and Deployment
5
5
  Author-email: lemonade@amd.com
6
6
  Requires-Python: >=3.10, <3.14
@@ -29,6 +29,7 @@ Requires-Dist: tabulate
29
29
  Requires-Dist: sentencepiece
30
30
  Requires-Dist: huggingface-hub[hf_xet]==0.33.0
31
31
  Requires-Dist: python-dotenv
32
+ Requires-Dist: rumps>=0.4.0; sys_platform == "darwin"
32
33
  Provides-Extra: oga-ryzenai
33
34
  Requires-Dist: onnxruntime-genai-directml-ryzenai==0.7.0.2.1; extra == "oga-ryzenai"
34
35
  Requires-Dist: protobuf>=6.30.1; extra == "oga-ryzenai"
@@ -65,6 +66,8 @@ Dynamic: summary
65
66
  <img src="https://img.shields.io/badge/Windows-11-0078D6?logo=windows&logoColor=white" alt="Windows 11" /></a>
66
67
  <a href="https://lemonade-server.ai/#linux" title="Ubuntu 24.04 & 25.04 Supported">
67
68
  <img src="https://img.shields.io/badge/Ubuntu-24.04%20%7C%2025.04-E95420?logo=ubuntu&logoColor=white" alt="Ubuntu 24.04 | 25.04" /></a>
69
+ <a href="https://lemonade-server.ai/" title="macOS 14+ with Apple Silicon">
70
+ <img src="https://img.shields.io/badge/macOS-14%2B-000000?logo=apple&logoColor=white" alt="macOS 14+" /></a>
68
71
  <a href="docs/README.md#installation" title="Check out our instructions">
69
72
  <img src="https://img.shields.io/badge/Python-3.10--3.13-blue?logo=python&logoColor=white" alt="Made with Python" /></a>
70
73
  <a href="https://github.com/lemonade-sdk/lemonade/blob/main/docs/contribute.md" title="Contribution Guide">
@@ -152,11 +155,11 @@ You can also import custom GGUF and ONNX models from Hugging Face by using our [
152
155
 
153
156
  Lemonade supports the following configurations, while also making it easy to switch between them at runtime. Find more information about it [here](./docs/README.md#software-and-hardware-overview).
154
157
 
155
- | Hardware | Engine: OGA | Engine: llamacpp | Engine: HF | Windows | Linux |
156
- |----------|-------------|------------------|------------|---------|-------|
157
- | **🧠 CPU** | All platforms | All platforms | All platforms | ✅ | ✅ |
158
- | **🎮 GPU** | — | Vulkan: All platforms<br>ROCm: Selected AMD platforms* | — | ✅ | ✅ |
159
- | **🤖 NPU** | AMD Ryzen™ AI 300 series | — | | ✅ | — |
158
+ | Hardware | Engine: OGA | Engine: llamacpp | Engine: FLM | Windows | Linux | macOS |
159
+ |----------|-------------|------------------|------------|---------|-------|-------|
160
+ | **🧠 CPU** | All platforms | All platforms | - | | ✅ | ✅ |
161
+ | **🎮 GPU** | — | Vulkan: All platforms<br>ROCm: Selected AMD platforms*<br>Metal: Apple Silicon | — | ✅ | ✅ | ✅ |
162
+ | **🤖 NPU** | AMD Ryzen™ AI 300 series | — | Ryzen™ AI 300 series | ✅ | — | — |
160
163
 
161
164
  <details>
162
165
  <summary><small><i>* See supported AMD ROCm platforms</i></small></summary>
@@ -9,6 +9,8 @@
9
9
  <img src="https://img.shields.io/badge/Windows-11-0078D6?logo=windows&logoColor=white" alt="Windows 11" /></a>
10
10
  <a href="https://lemonade-server.ai/#linux" title="Ubuntu 24.04 & 25.04 Supported">
11
11
  <img src="https://img.shields.io/badge/Ubuntu-24.04%20%7C%2025.04-E95420?logo=ubuntu&logoColor=white" alt="Ubuntu 24.04 | 25.04" /></a>
12
+ <a href="https://lemonade-server.ai/" title="macOS 14+ with Apple Silicon">
13
+ <img src="https://img.shields.io/badge/macOS-14%2B-000000?logo=apple&logoColor=white" alt="macOS 14+" /></a>
12
14
  <a href="docs/README.md#installation" title="Check out our instructions">
13
15
  <img src="https://img.shields.io/badge/Python-3.10--3.13-blue?logo=python&logoColor=white" alt="Made with Python" /></a>
14
16
  <a href="https://github.com/lemonade-sdk/lemonade/blob/main/docs/contribute.md" title="Contribution Guide">
@@ -96,11 +98,11 @@ You can also import custom GGUF and ONNX models from Hugging Face by using our [
96
98
 
97
99
  Lemonade supports the following configurations, while also making it easy to switch between them at runtime. Find more information about it [here](./docs/README.md#software-and-hardware-overview).
98
100
 
99
- | Hardware | Engine: OGA | Engine: llamacpp | Engine: HF | Windows | Linux |
100
- |----------|-------------|------------------|------------|---------|-------|
101
- | **🧠 CPU** | All platforms | All platforms | All platforms | ✅ | ✅ |
102
- | **🎮 GPU** | — | Vulkan: All platforms<br>ROCm: Selected AMD platforms* | — | ✅ | ✅ |
103
- | **🤖 NPU** | AMD Ryzen™ AI 300 series | — | | ✅ | — |
101
+ | Hardware | Engine: OGA | Engine: llamacpp | Engine: FLM | Windows | Linux | macOS |
102
+ |----------|-------------|------------------|------------|---------|-------|-------|
103
+ | **🧠 CPU** | All platforms | All platforms | - | | ✅ | ✅ |
104
+ | **🎮 GPU** | — | Vulkan: All platforms<br>ROCm: Selected AMD platforms*<br>Metal: Apple Silicon | — | ✅ | ✅ | ✅ |
105
+ | **🤖 NPU** | AMD Ryzen™ AI 300 series | — | Ryzen™ AI 300 series | ✅ | — | — |
104
106
 
105
107
  <details>
106
108
  <summary><small><i>* See supported AMD ROCm platforms</i></small></summary>
@@ -17,6 +17,7 @@ setup(
17
17
  "lemonade.tools.huggingface",
18
18
  "lemonade.tools.oga",
19
19
  "lemonade.tools.llamacpp",
20
+ "lemonade.tools.flm",
20
21
  "lemonade.tools.report",
21
22
  "lemonade.tools.server.utils",
22
23
  "lemonade.tools.server",
@@ -48,6 +49,8 @@ setup(
48
49
  "sentencepiece",
49
50
  "huggingface-hub[hf_xet]==0.33.0",
50
51
  "python-dotenv",
52
+ # macOS-specific dependencies
53
+ "rumps>=0.4.0; sys_platform == 'darwin'",
51
54
  ],
52
55
  extras_require={
53
56
  # The non-dev extras are meant to deploy specific backends into end-user
@@ -24,7 +24,7 @@ class InferenceEngineDetector:
24
24
  Detect all available inference engines for a specific device type.
25
25
 
26
26
  Args:
27
- device_type: "cpu", "amd_igpu", "amd_dgpu", or "npu"
27
+ device_type: "cpu", "amd_igpu", "amd_dgpu", "nvidia_dgpu", or "npu"
28
28
 
29
29
  Returns:
30
30
  dict: Engine availability information
@@ -223,17 +223,26 @@ class LlamaCppDetector(BaseEngineDetector):
223
223
  """
224
224
  try:
225
225
 
226
- if device_type not in ["cpu", "amd_igpu", "amd_dgpu"]:
226
+ if device_type not in ["cpu", "amd_igpu", "amd_dgpu", "nvidia_dgpu"]:
227
227
  return None
228
228
 
229
229
  # Check if the device is supported by the backend
230
230
  if device_type == "cpu":
231
231
  device_supported = True
232
- elif device_type == "amd_igpu" or device_type == "amd_dgpu":
232
+ elif device_type in ["amd_igpu", "amd_dgpu"]:
233
233
  if backend == "vulkan":
234
234
  device_supported = self._check_vulkan_support()
235
235
  elif backend == "rocm":
236
236
  device_supported = self._check_rocm_support(device_name.lower())
237
+ else:
238
+ device_supported = False
239
+ elif device_type == "nvidia_dgpu":
240
+ if backend == "vulkan":
241
+ device_supported = self._check_vulkan_support()
242
+ else:
243
+ device_supported = False
244
+ else:
245
+ device_supported = False
237
246
  if not device_supported:
238
247
  return {"available": False, "error": f"{backend} not available"}
239
248
 
@@ -390,7 +399,7 @@ def detect_inference_engines(device_type: str, device_name: str) -> Dict[str, Di
390
399
  Helper function to detect inference engines for a device type.
391
400
 
392
401
  Args:
393
- device_type: "cpu", "amd_igpu", "amd_dgpu", or "npu"
402
+ device_type: "cpu", "amd_igpu", "amd_dgpu", "nvidia_dgpu", or "npu"
394
403
  device_name: device name
395
404
 
396
405
  Returns: