renderer.go 565 Bytes
Newer Older
Devon Rifkin's avatar
Devon Rifkin committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package renderers

import (
	"fmt"

	"github.com/ollama/ollama/api"
)

type rendererFunc func([]api.Message, []api.Tool, *api.ThinkValue) (string, error)

func RenderWithRenderer(name string, msgs []api.Message, tools []api.Tool, think *api.ThinkValue) (string, error) {
	renderer := rendererForName(name)
	if renderer == nil {
		return "", fmt.Errorf("unknown renderer %q", name)
	}
	return renderer(msgs, tools, think)
}

func rendererForName(name string) rendererFunc {
	switch name {
	case "qwen3-coder":
		return Qwen3CoderRenderer
	default:
		return nil
	}
}