transformer

package
v0.260313.0-preview Latest Latest
Warning

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

Go to latest
Published: Mar 12, 2026 License: MPL-2.0 Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ProviderConfigs = []providerConfig{

	{
		APIBasePattern: "api.deepseek.com",
		ModelPattern:   "*",
		Transform:      applyDeepSeekTransform,
	},

	{
		APIBasePattern: "generativelanguage.googleapis.com",
		ModelPattern:   "gemini",
		Transform:      applyGeminiTransform,
	},

	{
		APIBasePattern: "poe.com",
		ModelPattern:   "gemini",
		Transform:      applyGeminiPoeTransform,
	},
}

ProviderConfigs holds all registered provider configurations Add new providers here with their APIBase domain patterns

View Source
var ResponseConfigs = []responseConfig{

	{"api.deepseek.com", applyDeepSeekResponseTransform},
}

ResponseConfigs holds all registered provider response configurations

Functions

func ApplyProviderTransforms

func ApplyProviderTransforms(req *openai.ChatCompletionNewParams, provider *typ.Provider, model string, config *OpenAIConfig) *openai.ChatCompletionNewParams

ApplyProviderTransforms applies provider-specific transformations Falls back to default handling if no specific transform found

func ApplyResponseTransforms

func ApplyResponseTransforms(resp map[string]interface{}, provider *typ.Provider, model string) map[string]interface{}

ApplyResponseTransforms applies provider-specific transformations to responses

func MessageToMap

func MessageToMap(msg openai.ChatCompletionMessageParamUnion) (map[string]interface{}, error)

MessageToMap converts a ChatCompletionMessageParamUnion to a map for modification

Types

type OpenAIConfig

type OpenAIConfig struct {
	// HasThinking indicates whether the request contains thinking content
	// This can be used by providers like DeepSeek to handle reasoning_content
	HasThinking bool

	// ReasoningEffort specifies the reasoning effort level for OpenAI-compatible APIs
	// Valid values: "none", "minimal", "low", "medium", "high", "xhigh"
	// Defaults to "low" when HasThinking is true
	ReasoningEffort shared.ReasoningEffort
}

OpenAIConfig contains additional metadata that may be used by provider transforms

type ProviderTransform

ProviderTransform applies provider-specific transformations to OpenAI requests

func GetProviderTransform

func GetProviderTransform(provider *typ.Provider, model string) ProviderTransform

GetProviderTransform identifies provider by APIBase and returns its transform Returns nil if no specific transform is needed (fallback to default)

type ResponseTransform

type ResponseTransform func(map[string]interface{}, *typ.Provider, string) map[string]interface{}

ResponseTransform applies provider-specific transformations to OpenAI responses

func GetResponseTransform

func GetResponseTransform(provider *typ.Provider) ResponseTransform

GetResponseTransform identifies provider by APIBase and returns its response transform

Jump to

Keyboard shortcuts

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