translator

package
v0.0.0-...-60b0928 Latest Latest
Warning

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

Go to latest
Published: Jun 10, 2025 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CommonTranslator

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

func NewCommonTranslator

func NewCommonTranslator(opts TranslatorOptions) (ct *CommonTranslator)

func (*CommonTranslator) GetConfigWeight

func (ct *CommonTranslator) GetConfigWeight() int

func (*CommonTranslator) GetCurrentWeight

func (ct *CommonTranslator) GetCurrentWeight() int

func (*CommonTranslator) GetName

func (ct *CommonTranslator) GetName() string

func (*CommonTranslator) IsDisabled

func (ct *CommonTranslator) IsDisabled() bool

func (*CommonTranslator) SetCurrentWeight

func (ct *CommonTranslator) SetCurrentWeight(s int)

func (*CommonTranslator) Translate

func (ct *CommonTranslator) Translate(req TranslateRequest) (tr *TranslateResponse, err error)

type DefaultTranslatorConfig

type DefaultTranslatorConfig struct {
	// Positive
	Weight int `yaml:"weight"`

	// Optional
	SystemPrompt string `yaml:"system_prompt"`

	// Optional. Failover
	Failover common.FailoverConfig `yaml:"failover,omitempty"`
}

type Instance

type Instance interface {
	Translate(context.Context, TranslateRequest) (*TranslateResponse, error)
	Name() string
}

func NewInstance

func NewInstance(conf TranslatorConfig) (Instance, error)

type InstanceOpenAI

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

TranslatorInstanceOpenAI implements the translation logic using the OpenAI style API. It embeds baseTranslator for common functionalities.

func (*InstanceOpenAI) Name

func (t *InstanceOpenAI) Name() string

func (*InstanceOpenAI) Translate

func (t *InstanceOpenAI) Translate(ctx context.Context, req TranslateRequest) (resp *TranslateResponse, err error)

Translate sends the given text to the OpenAI API for translation. It respects the configured timeout and rate limiter. Returns the API's chat completion response or an error.

type TranslateRequest

type TranslateRequest struct {
	Text    string
	TraceId string
}

type TranslateResponse

type TranslateResponse struct {
	Text       string
	TokenUsage struct {
		Completion int64
		Prompt     int64
	}
}

type Translator

type Translator interface {
	selector.WeightedItem

	Translate(TranslateRequest) (*TranslateResponse, error)
	GetName() string
}

func NewTranslator

func NewTranslator(selectorType string, conf TranslatorConfig) (Translator, error)

type TranslatorConfig

type TranslatorConfig struct {
	DefaultTranslatorConfig `yaml:",inline"`

	// Required
	Name string `yaml:"name"`

	// Required
	Type string `yaml:"type"`

	// Positive
	Timeout int64 `yaml:"timeout"`

	// Optional
	Model string `yaml:"model"`

	// Required
	Endpoint string `yaml:"endpoint"`

	// Optional
	Token string `yaml:"token"`

	// Optional
	RateLimit common.RateLimitConfig `yaml:"rate_limit"`
}

func (*TranslatorConfig) CheckAndMergeDefaultConfig

func (tic *TranslatorConfig) CheckAndMergeDefaultConfig(dtc DefaultTranslatorConfig) (err error)

type TranslatorOptions

type TranslatorOptions struct {
	Instance Instance
	Timeout  int64

	// Failover
	FailoverConfig  common.FailoverConfig
	RateLimitConfig common.RateLimitConfig

	// Metrics
	UpMetric         *prometheus.GaugeVec
	SelectionMetric  *prometheus.CounterVec
	TasksMetric      *prometheus.GaugeVec
	TokensUsedMetric *prometheus.CounterVec

	// WRR
	Weight int
}

Jump to

Keyboard shortcuts

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