Documentation
¶
Index ¶
- Constants
- func IsChannelError(err *NewAPIError) bool
- func IsRecordErrorLog(e *NewAPIError) bool
- func IsSkipRetryError(err *NewAPIError) bool
- func LoadFromJsonString[K comparable, V any](m *RWMap[K, V], jsonStr string) error
- func LoadFromJsonStringWithCallback[K comparable, V any](m *RWMap[K, V], jsonStr string, onSuccess func()) error
- type Base64Source
- func (b *Base64Source) ClearCache()
- func (b *Base64Source) ClearRawData()
- func (b *Base64Source) GetCache() *CachedFileData
- func (b *Base64Source) GetIdentifier() string
- func (b *Base64Source) GetRawData() string
- func (b *Base64Source) HasCache() bool
- func (b *Base64Source) IsRegistered() bool
- func (b *Base64Source) IsURL() bool
- func (b *Base64Source) Mu() *sync.Mutex
- func (b *Base64Source) SetCache(data *CachedFileData)
- func (b *Base64Source) SetRegistered(registered bool)
- type CachedFileData
- type ChannelError
- type ClaudeError
- type ErrorCode
- type ErrorType
- type FileMeta
- type FileSource
- type FileType
- type GroupRatioInfo
- type LocalFileData
- type NewAPIError
- func InitOpenAIError(errorCode ErrorCode, statusCode int, ops ...NewAPIErrorOptions) *NewAPIError
- func NewError(err error, errorCode ErrorCode, ops ...NewAPIErrorOptions) *NewAPIError
- func NewErrorWithStatusCode(err error, errorCode ErrorCode, statusCode int, ops ...NewAPIErrorOptions) *NewAPIError
- func NewOpenAIError(err error, errorCode ErrorCode, statusCode int, ops ...NewAPIErrorOptions) *NewAPIError
- func WithClaudeError(claudeError ClaudeError, statusCode int, ops ...NewAPIErrorOptions) *NewAPIError
- func WithOpenAIError(openAIError OpenAIError, statusCode int, ops ...NewAPIErrorOptions) *NewAPIError
- func (e *NewAPIError) Error() string
- func (e *NewAPIError) ErrorWithStatusCode() string
- func (e *NewAPIError) GetErrorCode() ErrorCode
- func (e *NewAPIError) GetErrorType() ErrorType
- func (e *NewAPIError) MaskSensitiveError() string
- func (e *NewAPIError) MaskSensitiveErrorWithStatusCode() string
- func (e *NewAPIError) SetMessage(message string)
- func (e *NewAPIError) ToClaudeError() ClaudeError
- func (e *NewAPIError) ToOpenAIError() OpenAIError
- func (e *NewAPIError) Unwrap() error
- type NewAPIErrorOptions
- type OpenAIError
- type PriceData
- type RWMap
- func (m *RWMap[K, V]) AddAll(other map[K]V)
- func (m *RWMap[K, V]) Clear()
- func (m *RWMap[K, V]) Get(key K) (V, bool)
- func (m *RWMap[K, V]) Len() int
- func (m *RWMap[K, V]) MarshalJSON() ([]byte, error)
- func (m *RWMap[K, V]) MarshalJSONString() string
- func (m *RWMap[K, V]) ReadAll() map[K]V
- func (m *RWMap[K, V]) Set(key K, value V)
- func (m *RWMap[K, V]) UnmarshalJSON(b []byte) error
- type RelayFormat
- type RequestMeta
- type Set
- type TokenCountMeta
- type TokenType
- type URLSource
- func (b *URLSource) ClearCache()
- func (u *URLSource) ClearRawData()
- func (b *URLSource) GetCache() *CachedFileData
- func (u *URLSource) GetIdentifier() string
- func (u *URLSource) GetRawData() string
- func (b *URLSource) HasCache() bool
- func (b *URLSource) IsRegistered() bool
- func (u *URLSource) IsURL() bool
- func (b *URLSource) Mu() *sync.Mutex
- func (b *URLSource) SetCache(data *CachedFileData)
- func (b *URLSource) SetRegistered(registered bool)
Constants ¶
View Source
const ( RelayFormatOpenAI RelayFormat = "openai" RelayFormatClaude = "claude" RelayFormatGemini = "gemini" RelayFormatOpenAIResponses = "openai_responses" RelayFormatOpenAIResponsesCompaction = "openai_responses_compaction" RelayFormatOpenAIAudio = "openai_audio" RelayFormatOpenAIImage = "openai_image" RelayFormatOpenAIRealtime = "openai_realtime" RelayFormatRerank = "rerank" RelayFormatEmbedding = "embedding" RelayFormatTask = "task" RelayFormatMjProxy = "mj_proxy" )
Variables ¶
This section is empty.
Functions ¶
func IsChannelError ¶
func IsChannelError(err *NewAPIError) bool
func IsRecordErrorLog ¶
func IsRecordErrorLog(e *NewAPIError) bool
func IsSkipRetryError ¶
func IsSkipRetryError(err *NewAPIError) bool
func LoadFromJsonString ¶
func LoadFromJsonString[K comparable, V any](m *RWMap[K, V], jsonStr string) error
func LoadFromJsonStringWithCallback ¶ added in v0.10.9
func LoadFromJsonStringWithCallback[K comparable, V any](m *RWMap[K, V], jsonStr string, onSuccess func()) error
LoadFromJsonStringWithCallback loads a JSON string into the RWMap and calls the callback on success.
Types ¶
type Base64Source ¶ added in v0.12.2
type Base64Source struct {
Base64Data string
MimeType string
// contains filtered or unexported fields
}
func NewBase64FileSource ¶ added in v0.10.8
func NewBase64FileSource(base64Data string, mimeType string) *Base64Source
func (*Base64Source) ClearCache ¶ added in v0.12.2
func (b *Base64Source) ClearCache()
func (*Base64Source) ClearRawData ¶ added in v0.12.2
func (b *Base64Source) ClearRawData()
func (*Base64Source) GetCache ¶ added in v0.12.2
func (b *Base64Source) GetCache() *CachedFileData
func (*Base64Source) GetIdentifier ¶ added in v0.12.2
func (b *Base64Source) GetIdentifier() string
func (*Base64Source) GetRawData ¶ added in v0.12.2
func (b *Base64Source) GetRawData() string
func (*Base64Source) IsRegistered ¶ added in v0.12.2
func (b *Base64Source) IsRegistered() bool
func (*Base64Source) IsURL ¶ added in v0.12.2
func (b *Base64Source) IsURL() bool
func (*Base64Source) SetCache ¶ added in v0.12.2
func (b *Base64Source) SetCache(data *CachedFileData)
func (*Base64Source) SetRegistered ¶ added in v0.12.2
func (b *Base64Source) SetRegistered(registered bool)
type CachedFileData ¶ added in v0.10.8
type CachedFileData struct {
MimeType string // MIME 类型
Size int64 // 文件大小(字节)
DiskSize int64 // 磁盘缓存实际占用大小(字节,通常是 base64 长度)
ImageConfig *image.Config // 图片配置(如果是图片)
ImageFormat string // 图片格式(如果是图片)
OnClose func(size int64)
// contains filtered or unexported fields
}
func NewDiskCachedData ¶ added in v0.10.8
func NewDiskCachedData(diskPath string, mimeType string, size int64) *CachedFileData
func NewMemoryCachedData ¶ added in v0.10.8
func NewMemoryCachedData(base64Data string, mimeType string, size int64) *CachedFileData
func (*CachedFileData) Close ¶ added in v0.10.8
func (c *CachedFileData) Close() error
func (*CachedFileData) GetBase64Data ¶ added in v0.10.8
func (c *CachedFileData) GetBase64Data() (string, error)
func (*CachedFileData) IsDisk ¶ added in v0.10.8
func (c *CachedFileData) IsDisk() bool
func (*CachedFileData) SetBase64Data ¶ added in v0.10.8
func (c *CachedFileData) SetBase64Data(data string)
type ChannelError ¶
type ChannelError struct {
ChannelId int `json:"channel_id"`
ChannelType int `json:"channel_type"`
ChannelName string `json:"channel_name"`
IsMultiKey bool `json:"is_multi_key"`
AutoBan bool `json:"auto_ban"`
UsingKey string `json:"using_key"`
}
func NewChannelError ¶
type ClaudeError ¶
type ErrorCode ¶
type ErrorCode string
const ( ErrorCodeInvalidRequest ErrorCode = "invalid_request" ErrorCodeSensitiveWordsDetected ErrorCode = "sensitive_words_detected" ErrorCodeViolationFeeGrokCSAM ErrorCode = "violation_fee.grok.csam" // new api error ErrorCodeCountTokenFailed ErrorCode = "count_token_failed" ErrorCodeModelPriceError ErrorCode = "model_price_error" ErrorCodeInvalidApiType ErrorCode = "invalid_api_type" ErrorCodeJsonMarshalFailed ErrorCode = "json_marshal_failed" ErrorCodeDoRequestFailed ErrorCode = "do_request_failed" ErrorCodeGetChannelFailed ErrorCode = "get_channel_failed" ErrorCodeGenRelayInfoFailed ErrorCode = "gen_relay_info_failed" // channel error ErrorCodeChannelNoAvailableKey ErrorCode = "channel:no_available_key" ErrorCodeChannelParamOverrideInvalid ErrorCode = "channel:param_override_invalid" ErrorCodeChannelHeaderOverrideInvalid ErrorCode = "channel:header_override_invalid" ErrorCodeChannelModelMappedError ErrorCode = "channel:model_mapped_error" ErrorCodeChannelAwsClientError ErrorCode = "channel:aws_client_error" ErrorCodeChannelInvalidKey ErrorCode = "channel:invalid_key" ErrorCodeChannelResponseTimeExceeded ErrorCode = "channel:response_time_exceeded" // client request error ErrorCodeReadRequestBodyFailed ErrorCode = "read_request_body_failed" ErrorCodeConvertRequestFailed ErrorCode = "convert_request_failed" ErrorCodeAccessDenied ErrorCode = "access_denied" // request error ErrorCodeBadRequestBody ErrorCode = "bad_request_body" // response error ErrorCodeReadResponseBodyFailed ErrorCode = "read_response_body_failed" ErrorCodeBadResponseStatusCode ErrorCode = "bad_response_status_code" ErrorCodeBadResponse ErrorCode = "bad_response" ErrorCodeBadResponseBody ErrorCode = "bad_response_body" ErrorCodeEmptyResponse ErrorCode = "empty_response" ErrorCodeAwsInvokeError ErrorCode = "aws_invoke_error" ErrorCodeModelNotFound ErrorCode = "model_not_found" ErrorCodePromptBlocked ErrorCode = "prompt_blocked" // sql error ErrorCodeQueryDataError ErrorCode = "query_data_error" ErrorCodeUpdateDataError ErrorCode = "update_data_error" // quota error ErrorCodeInsufficientUserQuota ErrorCode = "insufficient_user_quota" ErrorCodePreConsumeTokenQuotaFailed ErrorCode = "pre_consume_token_quota_failed" )
type ErrorType ¶
type ErrorType string
const ( ErrorTypeNewAPIError ErrorType = "new_api_error" ErrorTypeOpenAIError ErrorType = "openai_error" ErrorTypeClaudeError ErrorType = "claude_error" ErrorTypeMidjourneyError ErrorType = "midjourney_error" ErrorTypeGeminiError ErrorType = "gemini_error" ErrorTypeRerankError ErrorType = "rerank_error" ErrorTypeUpstreamError ErrorType = "upstream_error" )
type FileMeta ¶
type FileMeta struct {
FileType
Source FileSource // 统一的文件来源(URL 或 base64)
Detail string // 图片细节级别(low/high/auto)
}
func NewFileMeta ¶ added in v0.10.8
func NewFileMeta(fileType FileType, source FileSource) *FileMeta
NewFileMeta 创建新的 FileMeta
func NewImageFileMeta ¶ added in v0.10.8
func NewImageFileMeta(source FileSource, detail string) *FileMeta
NewImageFileMeta 创建图片类型的 FileMeta
func (*FileMeta) GetIdentifier ¶ added in v0.10.8
GetIdentifier 获取文件标识符(用于日志)
func (*FileMeta) GetRawData ¶ added in v0.10.8
GetRawData 获取原始数据(兼容旧代码) Deprecated: 请使用 Source.GetRawData()
type FileSource ¶ added in v0.10.8
type FileSource interface {
IsURL() bool
GetIdentifier() string
GetRawData() string
ClearRawData()
SetCache(data *CachedFileData)
GetCache() *CachedFileData
HasCache() bool
ClearCache()
IsRegistered() bool
SetRegistered(registered bool)
Mu() *sync.Mutex
}
FileSource 统一的文件来源抽象接口 支持 URL 和 base64 两种来源,提供懒加载和缓存机制
func NewFileSourceFromData ¶ added in v0.12.2
func NewFileSourceFromData(data string, mimeType string) FileSource
type GroupRatioInfo ¶
type LocalFileData ¶
type NewAPIError ¶
type NewAPIError struct {
Err error
RelayError any
StatusCode int
Metadata json.RawMessage
// contains filtered or unexported fields
}
func InitOpenAIError ¶
func InitOpenAIError(errorCode ErrorCode, statusCode int, ops ...NewAPIErrorOptions) *NewAPIError
func NewError ¶
func NewError(err error, errorCode ErrorCode, ops ...NewAPIErrorOptions) *NewAPIError
func NewErrorWithStatusCode ¶
func NewErrorWithStatusCode(err error, errorCode ErrorCode, statusCode int, ops ...NewAPIErrorOptions) *NewAPIError
func NewOpenAIError ¶
func NewOpenAIError(err error, errorCode ErrorCode, statusCode int, ops ...NewAPIErrorOptions) *NewAPIError
func WithClaudeError ¶
func WithClaudeError(claudeError ClaudeError, statusCode int, ops ...NewAPIErrorOptions) *NewAPIError
func WithOpenAIError ¶
func WithOpenAIError(openAIError OpenAIError, statusCode int, ops ...NewAPIErrorOptions) *NewAPIError
func (*NewAPIError) Error ¶
func (e *NewAPIError) Error() string
func (*NewAPIError) ErrorWithStatusCode ¶
func (e *NewAPIError) ErrorWithStatusCode() string
func (*NewAPIError) GetErrorCode ¶
func (e *NewAPIError) GetErrorCode() ErrorCode
func (*NewAPIError) GetErrorType ¶
func (e *NewAPIError) GetErrorType() ErrorType
func (*NewAPIError) MaskSensitiveError ¶
func (e *NewAPIError) MaskSensitiveError() string
func (*NewAPIError) MaskSensitiveErrorWithStatusCode ¶
func (e *NewAPIError) MaskSensitiveErrorWithStatusCode() string
func (*NewAPIError) SetMessage ¶
func (e *NewAPIError) SetMessage(message string)
func (*NewAPIError) ToClaudeError ¶
func (e *NewAPIError) ToClaudeError() ClaudeError
func (*NewAPIError) ToOpenAIError ¶
func (e *NewAPIError) ToOpenAIError() OpenAIError
func (*NewAPIError) Unwrap ¶
func (e *NewAPIError) Unwrap() error
Unwrap enables errors.Is / errors.As to work with NewAPIError by exposing the underlying error.
type NewAPIErrorOptions ¶
type NewAPIErrorOptions func(*NewAPIError)
func ErrOptionWithHideErrMsg ¶
func ErrOptionWithHideErrMsg(replaceStr string) NewAPIErrorOptions
func ErrOptionWithNoRecordErrorLog ¶
func ErrOptionWithNoRecordErrorLog() NewAPIErrorOptions
func ErrOptionWithSkipRetry ¶
func ErrOptionWithSkipRetry() NewAPIErrorOptions
func ErrOptionWithStatusCode ¶ added in v0.12.7
func ErrOptionWithStatusCode(statusCode int) NewAPIErrorOptions
type OpenAIError ¶
type PriceData ¶
type PriceData struct {
FreeModel bool
ModelPrice float64
ModelRatio float64
CompletionRatio float64
CacheRatio float64
CacheCreationRatio float64
CacheCreation5mRatio float64
CacheCreation1hRatio float64
ImageRatio float64
AudioRatio float64
AudioCompletionRatio float64
OtherRatios map[string]float64
UsePrice bool
Quota int // 按次计费的最终额度(MJ / Task)
QuotaToPreConsume int // 按量计费的预消耗额度
GroupRatioInfo GroupRatioInfo
}
func (*PriceData) AddOtherRatio ¶
type RWMap ¶
type RWMap[K comparable, V any] struct { // contains filtered or unexported fields }
func NewRWMap ¶
func NewRWMap[K comparable, V any]() *RWMap[K, V]
func (*RWMap[K, V]) MarshalJSON ¶
func (*RWMap[K, V]) MarshalJSONString ¶ added in v0.10.9
MarshalJSONString returns the JSON string representation of the RWMap.
func (*RWMap[K, V]) ReadAll ¶
func (m *RWMap[K, V]) ReadAll() map[K]V
ReadAll returns a copy of the entire map.
func (*RWMap[K, V]) UnmarshalJSON ¶
type RelayFormat ¶
type RelayFormat string
type RequestMeta ¶
type Set ¶
type Set[T comparable] struct { // contains filtered or unexported fields }
type TokenCountMeta ¶
type TokenCountMeta struct {
TokenType TokenType `json:"token_type,omitempty"` // Type of tokens used in the request
CombineText string `json:"combine_text,omitempty"` // Combined text from all messages
ToolsCount int `json:"tools_count,omitempty"` // Number of tools used
NameCount int `json:"name_count,omitempty"` // Number of names in the request
MessagesCount int `json:"messages_count,omitempty"` // Number of messages in the request
Files []*FileMeta `json:"files,omitempty"` // List of files, each with type and content
MaxTokens int `json:"max_tokens,omitempty"` // Maximum tokens allowed in the request
ImagePriceRatio float64 `json:"image_ratio,omitempty"` // Ratio for image size, if applicable
}
type URLSource ¶ added in v0.12.2
type URLSource struct {
URL string
// contains filtered or unexported fields
}
func NewURLFileSource ¶ added in v0.10.8
func (*URLSource) ClearCache ¶ added in v0.12.2
func (b *URLSource) ClearCache()
func (*URLSource) ClearRawData ¶ added in v0.12.2
func (u *URLSource) ClearRawData()
func (*URLSource) GetCache ¶ added in v0.12.2
func (b *URLSource) GetCache() *CachedFileData
func (*URLSource) GetIdentifier ¶ added in v0.12.2
func (*URLSource) GetRawData ¶ added in v0.12.2
func (*URLSource) IsRegistered ¶ added in v0.12.2
func (b *URLSource) IsRegistered() bool
func (*URLSource) SetCache ¶ added in v0.12.2
func (b *URLSource) SetCache(data *CachedFileData)
func (*URLSource) SetRegistered ¶ added in v0.12.2
func (b *URLSource) SetRegistered(registered bool)
Click to show internal directories.
Click to hide internal directories.