renderers

package
v0.18.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 18, 2026 License: MIT Imports: 7 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

View Source
var RenderImgTags bool

RenderImgTags is a global flag that tells renderers to use [img] tags for images. This is set by the Ollama server package on init, or left as false for other environments where renderers are used

Functions

func Register added in v0.12.6

func Register(name string, renderer RendererConstructor)

func RenderWithRenderer

func RenderWithRenderer(name string, msgs []api.Message, tools []api.Tool, think *api.ThinkValue) (string, error)

Types

type CogitoRenderer added in v0.13.0

type CogitoRenderer struct {
	// contains filtered or unexported fields
}

func (*CogitoRenderer) Render added in v0.13.0

func (r *CogitoRenderer) Render(messages []api.Message, tools []api.Tool, thinkValue *api.ThinkValue) (string, error)

type DeepSeek3Renderer added in v0.13.4

type DeepSeek3Renderer struct {
	IsThinking bool
	Variant    DeepSeek3Variant
}

func (*DeepSeek3Renderer) Render added in v0.13.4

func (r *DeepSeek3Renderer) Render(messages []api.Message, tools []api.Tool, thinkValue *api.ThinkValue) (string, error)

type DeepSeek3Variant added in v0.13.4

type DeepSeek3Variant int
const (
	Deepseek31 DeepSeek3Variant = iota
)

type FunctionGemmaRenderer added in v0.13.5

type FunctionGemmaRenderer struct{}

func (*FunctionGemmaRenderer) Render added in v0.13.5

func (r *FunctionGemmaRenderer) Render(messages []api.Message, tools []api.Tool, thinkValue *api.ThinkValue) (string, error)

type GLM46Renderer added in v0.14.3

type GLM46Renderer struct{}

func (*GLM46Renderer) Render added in v0.14.3

func (r *GLM46Renderer) Render(messages []api.Message, tools []api.Tool, thinkValue *api.ThinkValue) (string, error)

type GLM47Renderer added in v0.14.3

type GLM47Renderer struct{}

GLM47Renderer renders messages for GLM-4.7 models.

GLM-4.7 Thinking Modes (ref: https://docs.z.ai/guides/capabilities/thinking-mode):

  1. INTERLEAVED THINKING The model thinks between tool calls and after receiving tool results. This enables complex step-by-step reasoning: interpreting each tool output before deciding what to do next. Thinking blocks are preserved and returned with tool results to maintain reasoning continuity.

  2. PRESERVED THINKING The model retains reasoning content from previous assistant turns in context. This preserves reasoning continuity across multi-turn conversations. The upstream API has a "clear_thinking" parameter to control this: - clear_thinking=true: clears reasoning from previous turns (outputs </think>) - clear_thinking=false: preserves <think>...</think> blocks from previous turns

  3. TURN-LEVEL THINKING Controls whether the model should reason on each turn. The upstream API uses "enable_thinking" parameter: - enable_thinking=true: outputs <think> to start reasoning - enable_thinking=false: outputs </think> to skip reasoning

OLLAMA DEFAULTS:

  • Thinking is ENABLED by default (thinkValue=nil or true outputs <think>)
  • Thinking is PRESERVED by default (reasoning content from previous turns is always included in <think>...</think> blocks, equivalent to clear_thinking=false)
  • Users can disable thinking per-turn via thinkValue=false

func (*GLM47Renderer) Render added in v0.14.3

func (r *GLM47Renderer) Render(messages []api.Message, tools []api.Tool, thinkValue *api.ThinkValue) (string, error)

type GlmOcrRenderer added in v0.15.5

type GlmOcrRenderer struct {
	// contains filtered or unexported fields
}

func (*GlmOcrRenderer) Render added in v0.15.5

func (r *GlmOcrRenderer) Render(messages []api.Message, tools []api.Tool, thinkValue *api.ThinkValue) (string, error)

type LFM2Renderer added in v0.14.3

type LFM2Renderer struct {
	IsThinking bool
	// contains filtered or unexported fields
}

func (*LFM2Renderer) Render added in v0.14.3

func (r *LFM2Renderer) Render(messages []api.Message, tools []api.Tool, thinkValue *api.ThinkValue) (string, error)

type Nemotron3NanoRenderer added in v0.13.4

type Nemotron3NanoRenderer struct{}

func (*Nemotron3NanoRenderer) Render added in v0.13.4

func (r *Nemotron3NanoRenderer) Render(messages []api.Message, tools []api.Tool, thinkValue *api.ThinkValue) (string, error)

type Olmo3Renderer added in v0.13.3

type Olmo3Renderer struct {
	UseExtendedSystemMessage bool
}

func (*Olmo3Renderer) Render added in v0.13.3

func (r *Olmo3Renderer) Render(messages []api.Message, tools []api.Tool, _ *api.ThinkValue) (string, error)

type Olmo3ThinkRenderer added in v0.13.3

type Olmo3ThinkRenderer struct {
	Variant Olmo3ThinkVariant
}

func (*Olmo3ThinkRenderer) Render added in v0.13.3

func (r *Olmo3ThinkRenderer) Render(messages []api.Message, _ []api.Tool, _ *api.ThinkValue) (string, error)

type Olmo3ThinkVariant added in v0.13.4

type Olmo3ThinkVariant int
const (
	// Olmo3Think32B is for allenai/Olmo-3-32B-Think
	Olmo3Think32B Olmo3ThinkVariant = iota
	// Olmo31Think is for allenai/Olmo-3-7B-Think and allenai/Olmo-3.1-32B-Think (includes model info)
	Olmo31Think
)

type Qwen3CoderRenderer

type Qwen3CoderRenderer struct{}

func (*Qwen3CoderRenderer) Render added in v0.12.6

func (r *Qwen3CoderRenderer) Render(messages []api.Message, tools []api.Tool, _ *api.ThinkValue) (string, error)

type Qwen3VLRenderer added in v0.12.6

type Qwen3VLRenderer struct {
	// contains filtered or unexported fields
}

func (*Qwen3VLRenderer) Render added in v0.12.6

func (r *Qwen3VLRenderer) Render(messages []api.Message, tools []api.Tool, think *api.ThinkValue) (string, error)

type Qwen35Renderer added in v0.17.7

type Qwen35Renderer struct {
	// contains filtered or unexported fields
}

func (*Qwen35Renderer) Render added in v0.17.7

func (r *Qwen35Renderer) Render(messages []api.Message, tools []api.Tool, think *api.ThinkValue) (string, error)

type Renderer added in v0.12.6

type Renderer interface {
	Render(messages []api.Message, tools []api.Tool, think *api.ThinkValue) (string, error)
}

type RendererConstructor added in v0.12.6

type RendererConstructor func() Renderer

type RendererRegistry added in v0.12.6

type RendererRegistry struct {
	// contains filtered or unexported fields
}

func (*RendererRegistry) Register added in v0.12.6

func (r *RendererRegistry) Register(name string, renderer RendererConstructor)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL