From 71e6a0d0d181e3be45f3e47a677d088479d73c76 Mon Sep 17 00:00:00 2001 From: Jesse Gross Date: Wed, 20 Nov 2024 15:08:24 -0800 Subject: [PATCH] runner.go: Don't try to extract image tags for text models When processing a prompt, we look for image tags of the form [img-0], which are inserted by the Ollama server process. However, this can cause errors if the original prompt has these tags - typically an image not found error is returned. This changes tag searching behavior to be similar to the 0.3.x series, which will largely avoid these problems. However,they can still happen when input text with these tags is used with image models. The correct solution is to escape the tags but this is a larger issue with special sequences in general so this is an incremental fix that should avoid the problem for the majority of cases. --- llama/runner/runner.go | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/llama/runner/runner.go b/llama/runner/runner.go index 8762b3da..0255ed55 100644 --- a/llama/runner/runner.go +++ b/llama/runner/runner.go @@ -164,10 +164,16 @@ func (s *Server) NewSequence(prompt string, images []ImageData, params NewSequen // generating image embeddings for each image func (s *Server) inputs(prompt string, images []ImageData) ([]input, error) { var inputs []input + var parts []string + var matches [][]string - re := regexp.MustCompile(`\[img-(\d+)\]`) - parts := re.Split(prompt, -1) - matches := re.FindAllStringSubmatch(prompt, -1) + if s.image != nil { + re := regexp.MustCompile(`\[img-(\d+)\]`) + parts = re.Split(prompt, -1) + matches = re.FindAllStringSubmatch(prompt, -1) + } else { + parts = []string{prompt} + } for i, part := range parts { // text - tokenize