Update ModelCapabilities to support flexible vision input handling

- Changed the Vision field in ModelCapabilities from bool to interface{} to accommodate both boolean values and VisionFormat strings.
- Modified the getConnectorCapabilities function to directly assign the Vision capability based on the updated model configuration, enhancing compatibility with various vision input formats.
This commit is contained in:
Max 2025-11-17 10:59:46 +08:00
parent a8d73f8f7b
commit 796f6437ef
2 changed files with 12 additions and 12 deletions

View file

@ -147,7 +147,7 @@ func (ast *Assistant) getConnectorCapabilities(connectorID string) *context.Mode
// Initialize with default capabilities (all disabled) // Initialize with default capabilities (all disabled)
falseVal := false falseVal := false
capabilities := &context.ModelCapabilities{ capabilities := &context.ModelCapabilities{
Vision: &falseVal, Vision: falseVal,
ToolCalls: &falseVal, ToolCalls: &falseVal,
Audio: &falseVal, Audio: &falseVal,
Reasoning: &falseVal, Reasoning: &falseVal,
@ -162,9 +162,9 @@ func (ast *Assistant) getConnectorCapabilities(connectorID string) *context.Mode
} }
// Update capabilities based on model configuration // Update capabilities based on model configuration
if modelCaps.Vision { // Vision can be bool or string (VisionFormat)
v := true if modelCaps.Vision != nil {
capabilities.Vision = &v capabilities.Vision = modelCaps.Vision
} }
// Handle both Tools (deprecated) and ToolCalls // Handle both Tools (deprecated) and ToolCalls

View file

@ -111,7 +111,7 @@ type Assistant struct {
// ModelCapabilities defines the capabilities of a language model // ModelCapabilities defines the capabilities of a language model
// This configuration is loaded from agent/models.yml // This configuration is loaded from agent/models.yml
type ModelCapabilities struct { type ModelCapabilities struct {
Vision bool `json:"vision,omitempty" yaml:"vision,omitempty"` // Supports vision/image input Vision interface{} `json:"vision,omitempty" yaml:"vision,omitempty"` // Supports vision/image input: bool or VisionFormat string ("openai", "claude"/"base64", "default")
Tools bool `json:"tools,omitempty" yaml:"tools,omitempty"` // Supports tool/function calling (deprecated, use ToolCalls) Tools bool `json:"tools,omitempty" yaml:"tools,omitempty"` // Supports tool/function calling (deprecated, use ToolCalls)
ToolCalls bool `json:"tool_calls,omitempty" yaml:"tool_calls,omitempty"` // Supports tool/function calling ToolCalls bool `json:"tool_calls,omitempty" yaml:"tool_calls,omitempty"` // Supports tool/function calling
Audio bool `json:"audio,omitempty" yaml:"audio,omitempty"` // Supports audio input/output Audio bool `json:"audio,omitempty" yaml:"audio,omitempty"` // Supports audio input/output