relay_util

package
v0.5.2 Latest Latest
Warning

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

Go to latest
Published: Mar 14, 2026 License: Apache-2.0 Imports: 18 Imported by: 0

Documentation

Index

Constants

View Source
const HeartbeatJsonText = "\n"
View Source
const HeartbeatStreamText = "::PING\n\n"

Variables

This section is empty.

Functions

This section is empty.

Types

type ExtraBillingData

type ExtraBillingData struct {
	Type      string  `json:"type"`
	CallCount int     `json:"call_count"`
	Price     float64 `json:"price"`
}

type ExtraServicePriceConfig

type ExtraServicePriceConfig struct {
	// Web Search 价格配置
	WebSearch map[string]float64 `json:"web_search"` // tier -> price
	// File Search 价格
	FileSearch float64 `json:"file_search"`
	// Code Interpreter 价格
	CodeInterpreter float64 `json:"code_interpreter"`

	ImageGeneration map[string]map[string]float64 `json:"image_generation"`
}

暂时先放这里,简单处理

type Heartbeat

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

Heartbeat 心跳处理器

func NewHeartbeat

func NewHeartbeat(isStream bool, config HeartbeatConfig, c *gin.Context) *Heartbeat

NewHeartbeat 创建一个新的心跳处理器

func (*Heartbeat) Close

func (h *Heartbeat) Close()

Close 关闭心跳(可以在defer中使用)

func (*Heartbeat) HasWrittenHeader

func (h *Heartbeat) HasWrittenHeader() bool

HasWrittenHeader 检查头部是否已写入

func (*Heartbeat) IsSafeWriteStream

func (h *Heartbeat) IsSafeWriteStream() bool

IsSafeWriteStream 检查是否可以安全地写入Stream

func (*Heartbeat) Start

func (h *Heartbeat) Start()

Start 启动心跳机制,在指定的超时时间后开始发送心跳

func (*Heartbeat) Stop

func (h *Heartbeat) Stop()

Stop 停止心跳

type HeartbeatConfig

type HeartbeatConfig struct {
	TimeoutSeconds  int // 心跳超时时间(秒)
	IntervalSeconds int // 心跳间隔(秒)
}

心跳配置

type OpenAIResponsesStreamConverter

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

func NewOpenAIResponsesStreamConverter

func NewOpenAIResponsesStreamConverter(c *gin.Context, request *types.OpenAIResponsesRequest, usage *types.Usage) *OpenAIResponsesStreamConverter

func (*OpenAIResponsesStreamConverter) GetResponseType

func (converter *OpenAIResponsesStreamConverter) GetResponseType(choice *types.ChatCompletionStreamChoice) string

func (*OpenAIResponsesStreamConverter) ProcessError

func (converter *OpenAIResponsesStreamConverter) ProcessError(jsonStr string)

func (*OpenAIResponsesStreamConverter) ProcessOpenAIError

func (converter *OpenAIResponsesStreamConverter) ProcessOpenAIError(err *types.OpenAIErrorWithStatusCode)

func (*OpenAIResponsesStreamConverter) ProcessStreamData

func (converter *OpenAIResponsesStreamConverter) ProcessStreamData(jsonStr string)

type Quota

type Quota struct {
	HandelStatus bool
	// contains filtered or unexported fields
}

func NewQuota

func NewQuota(c *gin.Context, modelName string, promptTokens int) *Quota

func (*Quota) Consume

func (q *Quota) Consume(c *gin.Context, usage *types.Usage, isStream bool)

func (*Quota) GetExtraBillingData

func (q *Quota) GetExtraBillingData(extraBilling map[string]types.ExtraBilling)

func (*Quota) GetFirstResponseTime

func (q *Quota) GetFirstResponseTime() int64

func (*Quota) GetInputRatio

func (q *Quota) GetInputRatio() float64

func (*Quota) GetLogMeta

func (q *Quota) GetLogMeta(usage *types.Usage) map[string]any

func (*Quota) GetTotalQuota

func (q *Quota) GetTotalQuota(promptTokens, completionTokens int, extraBilling map[string]types.ExtraBilling) (quota int)

通过 token 数获取消费配额

func (*Quota) GetTotalQuotaByUsage

func (q *Quota) GetTotalQuotaByUsage(usage *types.Usage) (quota int)

通过 usage 获取消费配额

func (*Quota) PreQuotaConsumption

func (q *Quota) PreQuotaConsumption() *types.OpenAIErrorWithStatusCode

func (*Quota) SetFirstResponseTime

func (q *Quota) SetFirstResponseTime(firstResponseTime time.Time)

func (*Quota) Undo

func (q *Quota) Undo(c *gin.Context)

func (*Quota) UpdateUserRealtimeQuota

func (q *Quota) UpdateUserRealtimeQuota(usage *types.UsageEvent, nowUsage *types.UsageEvent) error

更新用户实时配额

Jump to

Keyboard shortcuts

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