|
@@ -26,7 +26,6 @@ func chatPrompt(ctx context.Context, m *Model, tokenize tokenizeFunc, opts *api.
|
|
var system []api.Message
|
|
var system []api.Message
|
|
|
|
|
|
isMllama := checkMllamaModelFamily(m)
|
|
isMllama := checkMllamaModelFamily(m)
|
|
- isGemma3 := checkGemma3ModelFamily(m)
|
|
|
|
|
|
|
|
var imageNumTokens int
|
|
var imageNumTokens int
|
|
// TODO: Ideally we would compute this from the projector metadata but some pieces are implementation dependent
|
|
// TODO: Ideally we would compute this from the projector metadata but some pieces are implementation dependent
|
|
@@ -41,7 +40,7 @@ func chatPrompt(ctx context.Context, m *Model, tokenize tokenizeFunc, opts *api.
|
|
n := len(msgs) - 1
|
|
n := len(msgs) - 1
|
|
// in reverse, find all messages that fit into context window
|
|
// in reverse, find all messages that fit into context window
|
|
for i := n; i >= 0; i-- {
|
|
for i := n; i >= 0; i-- {
|
|
- if (isMllama || isGemma3) && len(msgs[i].Images) > 1 {
|
|
|
|
|
|
+ if isMllama && len(msgs[i].Images) > 1 {
|
|
return "", nil, errTooManyImages
|
|
return "", nil, errTooManyImages
|
|
}
|
|
}
|
|
|
|
|
|
@@ -158,12 +157,3 @@ func checkMllamaModelFamily(m *Model) bool {
|
|
}
|
|
}
|
|
return false
|
|
return false
|
|
}
|
|
}
|
|
-
|
|
|
|
-func checkGemma3ModelFamily(m *Model) bool {
|
|
|
|
- for _, arch := range m.Config.ModelFamilies {
|
|
|
|
- if arch == "gemma3" {
|
|
|
|
- return true
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- return false
|
|
|
|
-}
|
|
|