1
0
mirror of https://github.com/coalaura/whiskr.git synced 2025-12-02 20:22:52 +00:00

fix image + file breaking message

This commit is contained in:
Laura
2025-11-11 16:24:53 +01:00
parent f57b64e8f0
commit 4771fa463c
2 changed files with 37 additions and 10 deletions

39
chat.go
View File

@@ -218,10 +218,20 @@ func (r *Request) Parse() (*openrouter.ChatCompletionRequest, error) {
},
})
case "user":
var content openrouter.Content
var (
content openrouter.Content
multi bool
last = -1
)
if model.Vision && strings.Contains(message.Text, "![") {
content.Multi = SplitImagePairs(message.Text)
multi = true
if content.Multi[len(content.Multi)-1].Type == openrouter.ChatMessagePartTypeText {
last = len(content.Multi) - 1
}
} else {
content.Text = message.Text
}
@@ -236,16 +246,33 @@ func (r *Request) Parse() (*openrouter.ChatCompletionRequest, error) {
lines := strings.Count(file.Content, "\n") + 1
if content.Text != "" {
content.Text += "\n\n"
}
content.Text += fmt.Sprintf(
entry := fmt.Sprintf(
"FILE %q LINES %d\n<<CONTENT>>\n%s\n<<END>>",
file.Name,
lines,
file.Content,
)
if multi {
if last != -1 {
if content.Multi[last].Text != "" {
content.Multi[last].Text += "\n\n"
}
content.Multi[last].Text += entry
} else {
content.Multi = append(content.Multi, openrouter.ChatMessagePart{
Type: openrouter.ChatMessagePartTypeText,
Text: entry,
})
}
} else {
if content.Text != "" {
content.Text += "\n\n"
}
content.Text += entry
}
}
}

View File

@@ -63,10 +63,6 @@ func SplitImagePairs(text string) []openrouter.ChatMessagePart {
rest := text[str:end]
if rest == "" {
return
}
total := len(parts)
if total > 0 && parts[total-1].Type == openrouter.ChatMessagePartTypeText {
@@ -75,6 +71,10 @@ func SplitImagePairs(text string) []openrouter.ChatMessagePart {
return
}
if strings.TrimSpace(rest) == "" {
return
}
parts = append(parts, openrouter.ChatMessagePart{
Type: openrouter.ChatMessagePartTypeText,
Text: rest,