Commit 5e2e0b46 authored by Michael Yang's avatar Michael Yang
Browse files

fix: error if image requested without vision model

parent 45a13b1d
...@@ -22,6 +22,8 @@ import ( ...@@ -22,6 +22,8 @@ import (
"github.com/ollama/ollama/model/input" "github.com/ollama/ollama/model/input"
) )
var ErrNoVisionModel = errors.New("vision model not found")
// Model implements a specific model architecture, defining the forward pass and any model-specific configuration // Model implements a specific model architecture, defining the forward pass and any model-specific configuration
type Model interface { type Model interface {
Forward(ml.Context, input.Options) (ml.Tensor, error) Forward(ml.Context, input.Options) (ml.Tensor, error)
......
...@@ -84,6 +84,10 @@ func New(c ml.Config) (model.Model, error) { ...@@ -84,6 +84,10 @@ func New(c ml.Config) (model.Model, error) {
} }
func (m *Model) EncodeMultimodal(ctx ml.Context, multimodalData []byte) (any, error) { func (m *Model) EncodeMultimodal(ctx ml.Context, multimodalData []byte) (any, error) {
if len(m.VisionModel.Layers) == 0 {
return nil, model.ErrNoVisionModel
}
image, _, err := image.Decode(bytes.NewReader(multimodalData)) image, _, err := image.Decode(bytes.NewReader(multimodalData))
if err != nil { if err != nil {
return nil, err return nil, err
......
...@@ -63,6 +63,10 @@ func New(c ml.Config) (model.Model, error) { ...@@ -63,6 +63,10 @@ func New(c ml.Config) (model.Model, error) {
} }
func (m *Model) EncodeMultimodal(ctx ml.Context, multimodalData []byte) (any, error) { func (m *Model) EncodeMultimodal(ctx ml.Context, multimodalData []byte) (any, error) {
if len(m.VisionModel.Transformer.Layers) == 0 || len(m.GlobalTransformer.Layers) == 0 {
return nil, model.ErrNoVisionModel
}
image, _, err := image.Decode(bytes.NewReader(multimodalData)) image, _, err := image.Decode(bytes.NewReader(multimodalData))
if err != nil { if err != nil {
return nil, err return nil, err
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment