abstractcore 2.6.3__py3-none-any.whl → 2.6.6__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.
@@ -136,6 +136,36 @@ class ProviderRegistry:
136
136
  import_path="..providers.huggingface_provider"
137
137
  ))
138
138
 
139
+ # vLLM Provider
140
+ self.register_provider(ProviderInfo(
141
+ name="vllm",
142
+ display_name="vLLM",
143
+ provider_class=None,
144
+ description="High-throughput GPU inference with guided decoding, Multi-LoRA, and beam search",
145
+ default_model="Qwen/Qwen3-Coder-30B-A3B-Instruct",
146
+ supported_features=["chat", "completion", "embeddings", "prompted_tools", "streaming",
147
+ "structured_output", "guided_decoding", "multi_lora", "beam_search"],
148
+ authentication_required=False, # Optional API key
149
+ local_provider=True,
150
+ installation_extras="vllm",
151
+ import_path="..providers.vllm_provider"
152
+ ))
153
+
154
+ # OpenAI-Compatible Generic Provider
155
+ self.register_provider(ProviderInfo(
156
+ name="openai-compatible",
157
+ display_name="OpenAI-Compatible",
158
+ provider_class=None,
159
+ description="Generic provider for any OpenAI-compatible API endpoint (llama.cpp, text-generation-webui, LocalAI, etc.)",
160
+ default_model="default",
161
+ supported_features=["chat", "completion", "embeddings", "prompted_tools", "streaming",
162
+ "structured_output"],
163
+ authentication_required=False, # Optional API key
164
+ local_provider=True,
165
+ installation_extras=None, # No extra dependencies
166
+ import_path="..providers.openai_compatible_provider"
167
+ ))
168
+
139
169
 
140
170
  def register_provider(self, provider_info: ProviderInfo):
141
171
  """Register a provider in the registry."""
@@ -187,6 +217,12 @@ class ProviderRegistry:
187
217
  elif provider_info.name == "huggingface":
188
218
  from ..providers.huggingface_provider import HuggingFaceProvider
189
219
  return HuggingFaceProvider
220
+ elif provider_info.name == "vllm":
221
+ from ..providers.vllm_provider import VLLMProvider
222
+ return VLLMProvider
223
+ elif provider_info.name == "openai-compatible":
224
+ from ..providers.openai_compatible_provider import OpenAICompatibleProvider
225
+ return OpenAICompatibleProvider
190
226
  else:
191
227
  raise ImportError(f"No import logic for provider: {provider_info.name}")
192
228
  except ImportError as e:
@@ -215,7 +251,7 @@ class ProviderRegistry:
215
251
  provider_class = self.get_provider_class(provider_name)
216
252
 
217
253
  # Handle providers that need instance for model listing
218
- if provider_name in ["anthropic", "ollama", "lmstudio"]:
254
+ if provider_name in ["anthropic", "ollama", "lmstudio", "openai-compatible"]:
219
255
  provider_info = self.get_provider_info(provider_name)
220
256
  # Create minimal instance for API access
221
257
  instance = provider_class(model=provider_info.default_model, **kwargs)