Class AbstractOpenAICompatProvider
java.lang.Object
net.thevpc.naru.api.model.AbstractNaruModelProvider
net.thevpc.naru.ext.models.openapi.AbstractOpenAICompatProvider
- All Implemented Interfaces:
NaruModelProvider,net.thevpc.nuts.spi.NComponent
- Direct Known Subclasses:
NaruCerebrasProvider,NaruColibriProvider,NaruCustomProvider,NaruGeminiProvider,NaruGitHubModelsProvider,NaruGroqProvider,NaruMistralProvider,NaruOllamaProvider,NaruOpenRouterProvider,NaruXaiProvider
Base class for OpenAI-compatible cloud providers (Groq, Cerebras, OpenRouter, GitHub Models, ...).
Subclasses provide a name, a default base url, a model list and static capabilities;
the wire protocol and auth handling are inherited.
-
Field Summary
Fields -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedAbstractOpenAICompatProvider(String name, String[] defaultEnvKeys) -
Method Summary
Modifier and TypeMethodDescriptionprotected abstract StringbaseUrl(NaruSession session) Fallback base url when<name>.urlconfig is not set.protected StringchatPath()protected net.thevpc.nuts.time.NDurationconnectTimeout(NaruSession session) protected NaruModelProtocolcreateProtocol(NaruModelConfig model, NaruModelCapabilities capabilities, NaruSession session) fetchLiveModelIds(NaruSession session) findModelIds(NaruSession session) findModelIdsWithLiveFallback(NaruSession session, List<String> staticFallback) net.thevpc.nuts.util.NOptional<NaruModelProtocol>getProtocol(NaruModelConfig model, NaruSession session) booleanisApiKeySet(NaruSession session) protected booleanisReachable(String url) Short-timeout liveness probe on the given url with a small TTL cache.protected Stringprotected net.thevpc.nuts.time.NDurationreadTimeout(NaruSession session) protected abstract NaruModelCapabilitiesresolveCapabilities(String modelName, NaruSession session) Statically maps capabilities since cloud-hosted capabilities cannot be polled natively.Methods inherited from class net.thevpc.naru.api.model.AbstractNaruModelProvider
apiKey, defaultEnvKey, getParam, getParamNames, getSecureParam, isEnabled, name, onParamChanged, setEnabled, setParamMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface net.thevpc.naru.api.model.NaruModelProvider
installModel, isAvailable, isSupportedInstallModel, isSupportedPsModel, isSupportedUninstallModel, isSupportedUnloadModel, psModel, uninstallModel, unloadModel
-
Field Details
-
protocols
-
-
Constructor Details
-
AbstractOpenAICompatProvider
-
-
Method Details
-
chatPath
-
baseUrl
Fallback base url when<name>.urlconfig is not set. -
resolveCapabilities
Statically maps capabilities since cloud-hosted capabilities cannot be polled natively. -
createProtocol
protected NaruModelProtocol createProtocol(NaruModelConfig model, NaruModelCapabilities capabilities, NaruSession session) -
getProtocol
public net.thevpc.nuts.util.NOptional<NaruModelProtocol> getProtocol(NaruModelConfig model, NaruSession session) -
isApiKeySet
-
findModelIds
-
connectTimeout
-
readTimeout
-
modelsPath
-
fetchLiveModelIds
-
findModelIdsWithLiveFallback
protected List<String> findModelIdsWithLiveFallback(NaruSession session, List<String> staticFallback) -
isReachable
Short-timeout liveness probe on the given url with a small TTL cache. Any HTTP response (even 4xx/5xx) means the endpoint is reachable; connection failures/timeouts mean it is not.
-