From f66b34d92c2a97e46212a5ad9c8b6714e056b17f Mon Sep 17 00:00:00 2001 From: Vedant Madane <6527493+VedantMadane@users.noreply.github.com> Date: Mon, 2 Mar 2026 13:07:15 +0530 Subject: [PATCH 1/2] feat: expose richer model metadata in v1/models Enrich OpenAIModel schema with additional metadata: - context_window - architecture - parameters - quantization - size This allows client applications to better understand model capabilities. --- pkg/inference/models/api.go | 30 ++++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/pkg/inference/models/api.go b/pkg/inference/models/api.go index c764d4834..1dc9c4faf 100644 --- a/pkg/inference/models/api.go +++ b/pkg/inference/models/api.go @@ -82,11 +82,26 @@ func ToOpenAI(m types.Model) (*OpenAIModel, error) { id = tags[0] } + config, err := m.Config() + if err != nil { + return nil, fmt.Errorf("get config: %w", err) + } + + var contextWindow int32 + if cw := config.GetContextSize(); cw != nil { + contextWindow = *cw + } + return &OpenAIModel{ - ID: id, - Object: "model", - Created: created, - OwnedBy: "docker", + ID: id, + Object: "model", + Created: created, + OwnedBy: "docker", + ContextWindow: contextWindow, + Architecture: config.GetArchitecture(), + Parameters: config.GetParameters(), + Quantization: config.GetQuantization(), + Size: config.GetSize(), }, nil } @@ -100,6 +115,13 @@ type OpenAIModel struct { Created int64 `json:"created"` // OwnedBy is the model owner. At the moment, it is always "docker". OwnedBy string `json:"owned_by"` + + // Additional metadata + ContextWindow int32 `json:"context_window,omitempty"` + Architecture string `json:"architecture,omitempty"` + Parameters string `json:"parameters,omitempty"` + Quantization string `json:"quantization,omitempty"` + Size string `json:"size,omitempty"` } // OpenAIModelList represents a list of models using OpenAI conventions. From c442bd163ad2c7814cabddadd35c083dfca65608 Mon Sep 17 00:00:00 2001 From: Vedant Madane <6527493+VedantMadane@users.noreply.github.com> Date: Fri, 6 Mar 2026 01:24:35 +0530 Subject: [PATCH 2/2] fix: guard against nil config from m.Config() Made-with: Cursor --- pkg/inference/models/api.go | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/pkg/inference/models/api.go b/pkg/inference/models/api.go index 1dc9c4faf..be9b82622 100644 --- a/pkg/inference/models/api.go +++ b/pkg/inference/models/api.go @@ -88,8 +88,15 @@ func ToOpenAI(m types.Model) (*OpenAIModel, error) { } var contextWindow int32 - if cw := config.GetContextSize(); cw != nil { - contextWindow = *cw + var architecture, parameters, quantization, size string + if config != nil { + if cw := config.GetContextSize(); cw != nil { + contextWindow = *cw + } + architecture = config.GetArchitecture() + parameters = config.GetParameters() + quantization = config.GetQuantization() + size = config.GetSize() } return &OpenAIModel{ @@ -98,10 +105,10 @@ func ToOpenAI(m types.Model) (*OpenAIModel, error) { Created: created, OwnedBy: "docker", ContextWindow: contextWindow, - Architecture: config.GetArchitecture(), - Parameters: config.GetParameters(), - Quantization: config.GetQuantization(), - Size: config.GetSize(), + Architecture: architecture, + Parameters: parameters, + Quantization: quantization, + Size: size, }, nil }