Documentation
¶
Index ¶
- func RegisterAnthropic(i IAnthropic)
- func RegisterApp(i IApp)
- func RegisterAppKey(i IAppKey)
- func RegisterAudio(i IAudio)
- func RegisterAuth(i IAuth)
- func RegisterBatch(i IBatch)
- func RegisterChat(i IChat)
- func RegisterCommon(i ICommon)
- func RegisterCore(i ICore)
- func RegisterDashboard(i IDashboard)
- func RegisterEmbedding(i IEmbedding)
- func RegisterFile(i IFile)
- func RegisterGeneral(i IGeneral)
- func RegisterGoogle(i IGoogle)
- func RegisterGroup(i IGroup)
- func RegisterImage(i IImage)
- func RegisterKey(i IKey)
- func RegisterLog(i ILog)
- func RegisterMidjourney(i IMidjourney)
- func RegisterModel(i IModel)
- func RegisterModelAgent(i IModelAgent)
- func RegisterModeration(i IModeration)
- func RegisterOpenAI(i IOpenAI)
- func RegisterProvider(i IProvider)
- func RegisterRealtime(i IRealtime)
- func RegisterReseller(i IReseller)
- func RegisterSession(i ISession)
- func RegisterSessionKeepModelAgent(i ISessionKeepModelAgent)
- func RegisterSysConfig(i ISysConfig)
- func RegisterUser(i IUser)
- func RegisterVideo(i IVideo)
- func RegisterVolcEngine(i IVolcEngine)
- type IAnthropic
- type IApp
- type IAppKey
- type IAudio
- type IAuth
- type IBatch
- type IChat
- type ICommon
- type ICore
- type IDashboard
- type IEmbedding
- type IFile
- type IGeneral
- type IGoogle
- type IGroup
- type IImage
- type IKey
- type ILog
- type IMidjourney
- type IModel
- type IModelAgent
- type IModeration
- type IOpenAI
- type IProvider
- type IRealtime
- type IReseller
- type ISession
- type ISessionKeepModelAgent
- type ISysConfig
- type IUser
- type IVideo
- type IVolcEngine
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func RegisterAnthropic ¶
func RegisterAnthropic(i IAnthropic)
func RegisterApp ¶
func RegisterApp(i IApp)
func RegisterAppKey ¶
func RegisterAppKey(i IAppKey)
func RegisterAudio ¶
func RegisterAudio(i IAudio)
func RegisterAuth ¶
func RegisterAuth(i IAuth)
func RegisterBatch ¶
func RegisterBatch(i IBatch)
func RegisterChat ¶
func RegisterChat(i IChat)
func RegisterCommon ¶
func RegisterCommon(i ICommon)
func RegisterCore ¶
func RegisterCore(i ICore)
func RegisterDashboard ¶
func RegisterDashboard(i IDashboard)
func RegisterEmbedding ¶
func RegisterEmbedding(i IEmbedding)
func RegisterFile ¶
func RegisterFile(i IFile)
func RegisterGeneral ¶
func RegisterGeneral(i IGeneral)
func RegisterGoogle ¶
func RegisterGoogle(i IGoogle)
func RegisterGroup ¶
func RegisterGroup(i IGroup)
func RegisterImage ¶
func RegisterImage(i IImage)
func RegisterKey ¶
func RegisterKey(i IKey)
func RegisterLog ¶
func RegisterLog(i ILog)
func RegisterMidjourney ¶
func RegisterMidjourney(i IMidjourney)
func RegisterModel ¶
func RegisterModel(i IModel)
func RegisterModelAgent ¶
func RegisterModelAgent(i IModelAgent)
func RegisterModeration ¶
func RegisterModeration(i IModeration)
func RegisterOpenAI ¶
func RegisterOpenAI(i IOpenAI)
func RegisterProvider ¶
func RegisterProvider(i IProvider)
func RegisterRealtime ¶
func RegisterRealtime(i IRealtime)
func RegisterReseller ¶
func RegisterReseller(i IReseller)
func RegisterSession ¶
func RegisterSession(i ISession)
func RegisterSessionKeepModelAgent ¶ added in v2.3.0
func RegisterSessionKeepModelAgent(i ISessionKeepModelAgent)
func RegisterSysConfig ¶
func RegisterSysConfig(i ISysConfig)
func RegisterUser ¶
func RegisterUser(i IUser)
func RegisterVideo ¶
func RegisterVideo(i IVideo)
func RegisterVolcEngine ¶ added in v2.3.0
func RegisterVolcEngine(i IVolcEngine)
Types ¶
type IAnthropic ¶
type IAnthropic interface {
// Completions
Completions(ctx context.Context, request *ghttp.Request, fallbackModelAgent *model.ModelAgent, fallbackModel *model.Model, retry ...int) (response smodel.ChatCompletionResponse, err error)
// CompletionsStream
CompletionsStream(ctx context.Context, request *ghttp.Request, fallbackModelAgent *model.ModelAgent, fallbackModel *model.Model, retry ...int) (err error)
}
func Anthropic ¶
func Anthropic() IAnthropic
type IApp ¶
type IApp interface {
// 根据应用ID获取应用信息
GetByAppId(ctx context.Context, appId int) (*model.App, error)
// 应用列表
List(ctx context.Context) ([]*model.App, error)
// 应用花费额度
SpendQuota(ctx context.Context, appId int, spendQuota int, currentQuota int) error
// 应用已用额度
UsedQuota(ctx context.Context, appId int, quota int) error
// 保存应用额度到缓存
SaveCacheQuota(ctx context.Context, appId int, quota int) error
// 获取缓存中的应用额度
GetCacheQuota(ctx context.Context, appId int) int
// 保存应用信息到缓存
SaveCache(ctx context.Context, app *model.App) error
// 获取缓存中的应用信息
GetCache(ctx context.Context, appId int) (*model.App, error)
// 更新缓存中的应用信息
UpdateCache(ctx context.Context, app *entity.App)
// 移除缓存中的应用信息
RemoveCache(ctx context.Context, appId int)
// 变更订阅
Subscribe(ctx context.Context, msg string) error
}
type IAppKey ¶
type IAppKey interface {
// 根据secretKey获取应用密钥信息
GetBySecretKey(ctx context.Context, secretKey string) (*model.AppKey, error)
// 应用密钥列表
List(ctx context.Context) ([]*model.AppKey, error)
// 保存应用密钥信息到缓存
SaveCache(ctx context.Context, key *model.AppKey) error
// 获取缓存中的应用密钥信息
GetCache(ctx context.Context, secretKey string) (*model.AppKey, error)
// 更新缓存中的应用密钥信息
UpdateCache(ctx context.Context, key *entity.AppKey)
// 移除缓存中的应用密钥信息
RemoveCache(ctx context.Context, secretKey string)
// 应用密钥花费额度
SpendQuota(ctx context.Context, secretKey string, spendQuota int, currentQuota int) error
// 应用密钥已用额度
UsedQuota(ctx context.Context, secretKey string, quota int) error
// 保存应用密钥额度到缓存
SaveCacheQuota(ctx context.Context, secretKey string, quota int) error
// 获取缓存中的应用密钥额度
GetCacheQuota(ctx context.Context, secretKey string) int
// 更新应用密钥额度过期时间
UpdateQuotaExpiresAt(ctx context.Context, key *model.AppKey) error
// 变更订阅
Subscribe(ctx context.Context, msg string) error
}
type IAudio ¶
type IAudio interface {
// Speech
Speech(ctx context.Context, data []byte, fallbackModelAgent *model.ModelAgent, fallbackModel *model.Model, retry ...int) (response smodel.SpeechResponse, err error)
// Transcriptions
Transcriptions(ctx context.Context, params *v1.TranscriptionsReq, fallbackModelAgent *model.ModelAgent, fallbackModel *model.Model, retry ...int) (response smodel.AudioResponse, err error)
}
type IAuth ¶
type IBatch ¶
type IBatch interface {
// Create
Create(ctx context.Context, params *v1.CreateReq, fallbackModelAgent *model.ModelAgent, fallbackModel *model.Model, retry ...int) (response smodel.BatchResponse, err error)
// List
List(ctx context.Context, params *v1.ListReq) (response smodel.BatchListResponse, err error)
// Retrieve
Retrieve(ctx context.Context, params *v1.RetrieveReq) (response smodel.BatchResponse, err error)
// Cancel
Cancel(ctx context.Context, params *v1.CancelReq) (response smodel.BatchResponse, err error)
}
type IChat ¶
type IChat interface {
// Completions
Completions(ctx context.Context, params smodel.ChatCompletionRequest, fallbackModelAgent *model.ModelAgent, fallbackModel *model.Model, retry ...int) (response smodel.ChatCompletionResponse, err error)
// CompletionsStream
CompletionsStream(ctx context.Context, params smodel.ChatCompletionRequest, fallbackModelAgent *model.ModelAgent, fallbackModel *model.Model, retry ...int) (err error)
// SmartCompletions
SmartCompletions(ctx context.Context, params smodel.ChatCompletionRequest, reqModel *model.Model, fallbackModelAgent *model.ModelAgent, fallbackModel *model.Model, retry ...int) (response smodel.ChatCompletionResponse, err error)
}
type ICommon ¶
type IDashboard ¶
type IDashboard interface {
// Subscription
Subscription(ctx context.Context) (*model.DashboardSubscriptionRes, error)
// Usage
Usage(ctx context.Context) (*model.DashboardUsageRes, error)
}
func Dashboard ¶
func Dashboard() IDashboard
type IEmbedding ¶
type IEmbedding interface {
// Embeddings
Embeddings(ctx context.Context, data []byte, fallbackModelAgent *model.ModelAgent, fallbackModel *model.Model, retry ...int) (response smodel.EmbeddingResponse, err error)
}
func Embedding ¶
func Embedding() IEmbedding
type IFile ¶
type IFile interface {
// Upload
Upload(ctx context.Context, params *v1.UploadReq, fallbackModelAgent *model.ModelAgent, fallbackModel *model.Model, retry ...int) (response smodel.FileResponse, err error)
// List
List(ctx context.Context, params *v1.ListReq) (response smodel.FileListResponse, err error)
// Retrieve
Retrieve(ctx context.Context, params *v1.RetrieveReq) (response smodel.FileResponse, err error)
// Delete
Delete(ctx context.Context, params *v1.DeleteReq) (response smodel.FileResponse, err error)
// Content
Content(ctx context.Context, params *v1.ContentReq) (response smodel.FileContentResponse, err error)
}
type IGeneral ¶
type IGeneral interface {
// General
General(ctx context.Context, request *ghttp.Request, fallbackModelAgent *model.ModelAgent, fallbackModel *model.Model, retry ...int) (response smodel.ChatCompletionResponse, err error)
// GeneralStream
GeneralStream(ctx context.Context, request *ghttp.Request, fallbackModelAgent *model.ModelAgent, fallbackModel *model.Model, retry ...int) (err error)
}
type IGoogle ¶
type IGoogle interface {
// Completions
Completions(ctx context.Context, request *ghttp.Request, fallbackModelAgent *model.ModelAgent, fallbackModel *model.Model, retry ...int) (response smodel.ChatCompletionResponse, err error)
// CompletionsStream
CompletionsStream(ctx context.Context, request *ghttp.Request, fallbackModelAgent *model.ModelAgent, fallbackModel *model.Model, retry ...int) (err error)
}
type IGroup ¶
type IGroup interface {
// 根据分组ID获取分组信息
GetById(ctx context.Context, id string) (*model.Group, error)
// 分组列表
List(ctx context.Context) ([]*model.Group, error)
// 根据分组ID获取分组信息并保存到缓存
GetAndSaveCache(ctx context.Context, id string) (*model.Group, error)
// 保存分组到缓存
SaveCache(ctx context.Context, group *model.Group) error
// 保存分组列表到缓存
SaveCacheList(ctx context.Context, groups []*model.Group) error
// 获取缓存中的分组信息
GetCache(ctx context.Context, id string) (*model.Group, error)
// 获取缓存中的分组列表
GetCacheList(ctx context.Context, ids ...string) ([]*model.Group, error)
// 更新缓存中的分组列表
UpdateCache(ctx context.Context, newData *entity.Group)
// 移除缓存中的分组列表
RemoveCache(ctx context.Context, id string)
// 根据分组Ids获取模型Ids
GetModelIds(ctx context.Context, ids ...string) ([]string, error)
// 根据分组Ids获取默认分组
GetDefault(ctx context.Context, ids ...string) (*model.Group, error)
// 根据model挑选分组和模型
PickGroupAndModel(ctx context.Context, appKey *model.AppKey, m string, ids ...string) (reqModel *model.Model, group *model.Group, err error)
// 分组花费额度
SpendQuota(ctx context.Context, group string, spendQuota int, currentQuota int) error
// 分组已用额度
UsedQuota(ctx context.Context, group string, quota int) error
// 保存分组额度到缓存
SaveCacheQuota(ctx context.Context, group string, quota int) error
// 获取缓存中的分组额度
GetCacheQuota(ctx context.Context, group string) int
// 变更订阅
Subscribe(ctx context.Context, msg string) error
}
type IImage ¶
type IImage interface {
// Generations
Generations(ctx context.Context, data []byte, fallbackModelAgent *model.ModelAgent, fallbackModel *model.Model, retry ...int) (response smodel.ImageResponse, err error)
// Edits
Edits(ctx context.Context, params smodel.ImageEditRequest, fallbackModelAgent *model.ModelAgent, fallbackModel *model.Model, retry ...int) (response smodel.ImageResponse, err error)
}
type IKey ¶
type IKey interface {
// 根据模型ID获取密钥列表
GetByModelId(ctx context.Context, modelId string) ([]*model.Key, error)
// 密钥列表
List(ctx context.Context) ([]*model.Key, error)
// 挑选模型密钥
Pick(ctx context.Context, m *model.Model) (int, *model.Key, error)
// 移除模型密钥
Remove(ctx context.Context, m *model.Model, key *model.Key)
// 记录错误模型密钥
RecordError(ctx context.Context, m *model.Model, key *model.Key)
// 禁用模型密钥
Disabled(ctx context.Context, key *model.Key, disabledReason string)
// 保存模型密钥列表到缓存
SaveCache(ctx context.Context, id string, keys []*model.Key) error
// 获取缓存中的模型密钥列表
GetCache(ctx context.Context, id string) ([]*model.Key, error)
// 添加模型密钥到缓存列表中
AddCache(ctx context.Context, key *entity.Key)
// 更新缓存中的模型密钥
UpdateCache(ctx context.Context, oldData *entity.Key, newData *entity.Key)
// 移除缓存中的模型密钥
RemoveCache(ctx context.Context, key *entity.Key)
// 密钥已用额度
UsedQuota(ctx context.Context, key string, quota int) error
// 变更订阅
Subscribe(ctx context.Context, msg string) error
}
type ILog ¶
type ILog interface {
// 文本日志
Text(ctx context.Context, textLog model.LogText, retry ...int)
// 绘图日志
Image(ctx context.Context, imageLog model.LogImage, retry ...int)
// 音频日志
Audio(ctx context.Context, audioLog model.LogAudio, retry ...int)
// 视频日志
Video(ctx context.Context, videoLog model.LogVideo, retry ...int)
// 文件日志
File(ctx context.Context, fileLog model.LogFile, retry ...int)
// 批处理日志
Batch(ctx context.Context, batchLog model.LogBatch, retry ...int)
// Midjourney日志
Midjourney(ctx context.Context, midjourneyLog model.LogMidjourney, retry ...int)
// 通用日志
General(ctx context.Context, generalLog model.LogGeneral, retry ...int)
}
type IMidjourney ¶
type IMidjourney interface {
// 任务提交
Submit(ctx context.Context, request *ghttp.Request, fallbackModelAgent *model.ModelAgent, fallbackModel *model.Model, retry ...int) (response smodel.MidjourneyResponse, err error)
// 任务查询
Task(ctx context.Context, request *ghttp.Request, fallbackModelAgent *model.ModelAgent, fallbackModel *model.Model, retry ...int) (response smodel.MidjourneyResponse, err error)
}
func Midjourney ¶
func Midjourney() IMidjourney
type IModel ¶
type IModel interface {
// 根据model获取模型信息
GetModel(ctx context.Context, m string) (*model.Model, error)
// 根据模型ID获取模型信息
GetModelById(ctx context.Context, id string) (*model.Model, error)
// 根据model和group获取模型信息
GetModelByGroup(ctx context.Context, m string, group *model.Group) (*model.Model, error)
// 模型列表
List(ctx context.Context, ids []string) ([]*model.Model, error)
// 全部模型列表
ListAll(ctx context.Context) ([]*model.Model, error)
// 获取模型与密钥列表
GetModelsAndKeys(ctx context.Context) ([]*model.Model, map[string][]*model.Key, error)
// 根据模型ID获取模型信息并保存到缓存
GetModelAndSaveCache(ctx context.Context, id string) (*model.Model, error)
// 获取模型列表并保存到缓存
GetModelListAndSaveCacheList(ctx context.Context, ids []string) ([]*model.Model, error)
// 保存模型到缓存
SaveCache(ctx context.Context, m *model.Model) error
// 保存模型列表到缓存
SaveCacheList(ctx context.Context, models []*model.Model) error
// 获取缓存中的模型列表
GetCacheList(ctx context.Context, ids ...string) ([]*model.Model, error)
// 获取缓存中的模型信息
GetCacheModel(ctx context.Context, id string) (*model.Model, error)
// 更新缓存中的模型列表
UpdateCacheModel(ctx context.Context, oldData *entity.Model, newData *entity.Model)
// 移除缓存中的模型列表
RemoveCacheModel(ctx context.Context, id string)
// 获取目标模型
GetTargetModel(ctx context.Context, model *model.Model, messages []smodel.ChatCompletionMessage) (targetModel *model.Model, err error)
// 获取分组目标模型
GetGroupTargetModel(ctx context.Context, group *model.Group, model *model.Model, messages []smodel.ChatCompletionMessage) (targetModel *model.Model, err error)
// 获取后备模型
GetFallbackModel(ctx context.Context, model *model.Model) (fallbackModel *model.Model, err error)
// 变更订阅
Subscribe(ctx context.Context, msg string) error
}
type IModelAgent ¶
type IModelAgent interface {
// 根据模型代理ID获取模型代理信息
GetById(ctx context.Context, id string) (*model.ModelAgent, error)
// 模型代理列表
List(ctx context.Context, ids []string) ([]*model.ModelAgent, error)
// 全部模型代理列表
ListAll(ctx context.Context) ([]*model.ModelAgent, error)
// 根据模型代理ID获取密钥列表
GetKeys(ctx context.Context, id string) ([]*model.Key, error)
// 获取模型代理与密钥列表
GetModelAgentsAndKeys(ctx context.Context) ([]*model.ModelAgent, map[string][]*model.Key, error)
// 挑选模型代理
Pick(ctx context.Context, m *model.Model) (int, *model.ModelAgent, error)
// 根据模型挑选分组模型代理
PickGroup(ctx context.Context, m *model.Model, group *model.Group) (int, *model.ModelAgent, error)
// 移除模型代理
Remove(ctx context.Context, m *model.Model, modelAgent *model.ModelAgent)
// 记录错误模型代理
RecordError(ctx context.Context, m *model.Model, modelAgent *model.ModelAgent)
// 禁用模型代理
Disabled(ctx context.Context, modelAgent *model.ModelAgent, disabledReason string)
// 挑选模型代理密钥
PickKey(ctx context.Context, modelAgent *model.ModelAgent) (int, *model.Key, error)
// 移除模型代理密钥
RemoveKey(ctx context.Context, modelAgent *model.ModelAgent, key *model.Key)
// 记录错误模型代理密钥
RecordErrorKey(ctx context.Context, modelAgent *model.ModelAgent, key *model.Key)
// 禁用模型代理密钥
DisabledKey(ctx context.Context, key *model.Key, disabledReason string)
// 保存模型代理列表到缓存
SaveCacheList(ctx context.Context, modelAgents []*model.ModelAgent) error
// 获取缓存中的模型代理列表
GetCacheList(ctx context.Context, ids ...string) ([]*model.ModelAgent, error)
// 添加模型代理到缓存列表中
AddCache(ctx context.Context, newData *model.ModelAgent)
// 更新缓存中的模型代理列表
UpdateCache(ctx context.Context, oldData *entity.ModelAgent, newData *model.ModelAgent)
// 移除缓存中的模型代理
RemoveCache(ctx context.Context, modelAgent *model.ModelAgent)
// 保存模型代理密钥列表到缓存
SaveCacheKeys(ctx context.Context, id string, keys []*model.Key) error
// 获取缓存中的模型代理密钥列表
GetCacheKeys(ctx context.Context, id string) ([]*model.Key, error)
// 新增模型代理密钥到缓存列表中
CreateCacheKey(ctx context.Context, key *entity.Key)
// 更新缓存中的模型代理密钥
UpdateCacheKey(ctx context.Context, oldData *entity.Key, newData *entity.Key)
// 移除缓存中的模型代理密钥
RemoveCacheKey(ctx context.Context, key *entity.Key)
// 获取缓存中的模型代理信息
GetCache(ctx context.Context, id string) (*model.ModelAgent, error)
// 根据模型代理ID获取模型代理信息并保存到缓存
GetAndSaveCache(ctx context.Context, id string) (*model.ModelAgent, error)
// 保存模型代理到缓存
SaveCache(ctx context.Context, modelAgent *model.ModelAgent) error
// 获取后备模型代理
GetFallback(ctx context.Context, model *model.Model) (fallbackModelAgent *model.ModelAgent, err error)
// 保存分组模型代理列表到缓存
SaveGroupCache(ctx context.Context, group *model.Group) error
// 变更订阅
Subscribe(ctx context.Context, msg string) error
}
func ModelAgent ¶
func ModelAgent() IModelAgent
type IModeration ¶
type IModeration interface {
// Moderations
Moderations(ctx context.Context, params smodel.ModerationRequest, fallbackModelAgent *model.ModelAgent, fallbackModel *model.Model, retry ...int) (response smodel.ModerationResponse, err error)
}
func Moderation ¶
func Moderation() IModeration
type IOpenAI ¶
type IOpenAI interface {
// Responses
Responses(ctx context.Context, request *ghttp.Request, isChatCompletions bool, fallbackModelAgent *model.ModelAgent, fallbackModel *model.Model, retry ...int) (response smodel.OpenAIResponsesRes, err error)
// ResponsesStream
ResponsesStream(ctx context.Context, request *ghttp.Request, isChatCompletions bool, fallbackModelAgent *model.ModelAgent, fallbackModel *model.Model, retry ...int) (err error)
// ResponsesCompact
ResponsesCompact(ctx context.Context, request *ghttp.Request, isChatCompletions bool, fallbackModelAgent *model.ModelAgent, fallbackModel *model.Model, retry ...int) (response smodel.OpenAIResponsesRes, err error)
}
type IProvider ¶
type IProvider interface {
// 根据提供商ID获取提供商信息
GetById(ctx context.Context, id string) (*model.Provider, error)
// 提供商列表
List(ctx context.Context) ([]*model.Provider, error)
// 根据提供商ID获取提供商信息并保存到缓存
GetAndSaveCache(ctx context.Context, id string) (*model.Provider, error)
// 保存提供商到缓存
SaveCache(ctx context.Context, provider *model.Provider) error
// 保存提供商列表到缓存
SaveCacheList(ctx context.Context, providers []*model.Provider) error
// 获取缓存中的提供商信息
GetCache(ctx context.Context, id string) (*model.Provider, error)
// 获取缓存中的提供商列表
GetCacheList(ctx context.Context, ids ...string) ([]*model.Provider, error)
// 更新缓存中的提供商列表
UpdateCache(ctx context.Context, newData *entity.Provider)
// 移除缓存中的提供商列表
RemoveCache(ctx context.Context, id string)
// 变更订阅
Subscribe(ctx context.Context, msg string) error
}
type IRealtime ¶
type IReseller ¶
type IReseller interface {
// 根据用户ID获取代理商信息
GetByUserId(ctx context.Context, userId int) (*model.Reseller, error)
// 代理商列表
List(ctx context.Context) ([]*model.Reseller, error)
// 代理商花费额度
SpendQuota(ctx context.Context, userId int, spendQuota int, currentQuota int) error
// 保存代理商信息到缓存
SaveCache(ctx context.Context, reseller *model.Reseller) error
// 获取缓存中的代理商信息
GetCache(ctx context.Context, userId int) (*model.Reseller, error)
// 更新缓存中的代理商信息
UpdateCache(ctx context.Context, reseller *entity.Reseller)
// 移除缓存中的代理商信息
RemoveCache(ctx context.Context, userId int)
// 保存代理商额度到缓存
SaveCacheQuota(ctx context.Context, userId int, quota int) error
// 获取缓存中的代理商额度
GetCacheQuota(ctx context.Context, userId int) int
// 变更订阅
Subscribe(ctx context.Context, msg string) error
}
type ISession ¶
type ISession interface {
// 保存会话
Save(ctx context.Context, secretKey string) error
// 保存应用和密钥是否限制额度
SaveIsLimitQuota(ctx context.Context, app bool, key bool)
// 保存代理商ID到会话中
SaveRid(ctx context.Context, rid int)
// 获取代理商ID
GetRid(ctx context.Context) int
// 获取用户ID
GetUserId(ctx context.Context) int
// 获取应用ID
GetAppId(ctx context.Context) int
// 获取密钥
GetSecretKey(ctx context.Context) string
// 获取应用是否限制额度
GetAppIsLimitQuota(ctx context.Context) bool
// 获取密钥是否限制额度
GetKeyIsLimitQuota(ctx context.Context) bool
// 保存代理商信息到会话中
SaveReseller(ctx context.Context, reseller *model.Reseller)
// 获取会话中的代理商信息
GetReseller(ctx context.Context) *model.Reseller
// 保存用户信息到会话中
SaveUser(ctx context.Context, user *model.User)
// 获取会话中的用户信息
GetUser(ctx context.Context) *model.User
// 保存应用信息到会话中
SaveApp(ctx context.Context, app *model.App)
// 获取会话中的应用信息
GetApp(ctx context.Context) *model.App
// 保存应用密钥信息到会话中
SaveAppKey(ctx context.Context, key *model.AppKey)
// 获取会话中的应用密钥信息
GetAppKey(ctx context.Context) *model.AppKey
// 记录错误模型代理ID到会话中
RecordErrorModelAgent(ctx context.Context, id string)
// 获取会话中的错误模型代理Ids
GetErrorModelAgents(ctx context.Context) []string
// 记录错误密钥ID到会话中
RecordErrorKey(ctx context.Context, id string)
// 获取会话中的错误密钥Ids
GetErrorKeys(ctx context.Context) []string
// 是否健康检查
IsHealthCheck(ctx context.Context) (string, bool)
// 是否已选定模型代理
IsSelectedModelAgent(ctx context.Context) (string, bool)
// 保存模型代理计费方式
SaveModelAgentBillingMethod(ctx context.Context, billingMethod int)
// 获取模型代理计费方式
GetModelAgentBillingMethod(ctx context.Context) int
}
type ISessionKeepModelAgent ¶ added in v2.3.0
type ISessionKeepModelAgent interface {
Get(ctx context.Context, userId int, modelName string) (string, bool, error)
Set(ctx context.Context, userId int, modelName string, agentId string) error
Refresh(ctx context.Context, userId int, modelName string, agentId string) error
Delete(ctx context.Context, userId int, modelName string, agentId string) error
DeleteByAgent(ctx context.Context, agentId string) (int64, error)
DeleteAll(ctx context.Context) (int64, error)
RecordFail(ctx context.Context, userId int, modelName string, agentId string) (int64, error)
ClearFail(ctx context.Context, userId int, modelName string, agentId string) error
}
func SessionKeepModelAgent ¶ added in v2.3.0
func SessionKeepModelAgent() ISessionKeepModelAgent
type ISysConfig ¶
type ISysConfig interface {
// 初始化配置
Init(ctx context.Context) (sysConfig *entity.SysConfig, err error)
}
func SysConfig ¶
func SysConfig() ISysConfig
type IUser ¶
type IUser interface {
// 根据用户ID获取用户信息
GetByUserId(ctx context.Context, userId int) (*model.User, error)
// 用户列表
List(ctx context.Context) ([]*model.User, error)
// 用户花费额度
SpendQuota(ctx context.Context, userId int, spendQuota int, currentQuota int) error
// 保存用户信息到缓存
SaveCache(ctx context.Context, user *model.User) error
// 获取缓存中的用户信息
GetCache(ctx context.Context, userId int) (*model.User, error)
// 更新缓存中的用户信息
UpdateCache(ctx context.Context, user *entity.User)
// 移除缓存中的用户信息
RemoveCache(ctx context.Context, userId int)
// 保存用户额度到缓存
SaveCacheQuota(ctx context.Context, userId int, quota int) error
// 获取缓存中的用户额度
GetCacheQuota(ctx context.Context, userId int) int
// 变更订阅
Subscribe(ctx context.Context, msg string) error
}
type IVideo ¶
type IVideo interface {
// Create
Create(ctx context.Context, params *v1.CreateReq, fallbackModelAgent *model.ModelAgent, fallbackModel *model.Model, retry ...int) (response smodel.VideoJobResponse, err error)
// Remix
Remix(ctx context.Context, params *v1.RemixReq, fallbackModelAgent *model.ModelAgent, fallbackModel *model.Model, retry ...int) (response smodel.VideoJobResponse, err error)
// List
List(ctx context.Context, params *v1.ListReq) (response smodel.VideoListResponse, err error)
// Retrieve
Retrieve(ctx context.Context, params *v1.RetrieveReq) (response smodel.VideoJobResponse, err error)
// Delete
Delete(ctx context.Context, params *v1.DeleteReq) (response smodel.VideoJobResponse, err error)
// Content
Content(ctx context.Context, params *v1.ContentReq) (response smodel.VideoContentResponse, err error)
}
type IVolcEngine ¶ added in v2.3.0
type IVolcEngine interface {
// VideoCreate
VideoCreate(ctx context.Context, request *ghttp.Request, fallbackModelAgent *model.ModelAgent, fallbackModel *model.Model, retry ...int) (responseBytes []byte, err error)
// VideoList
VideoList(ctx context.Context, request *ghttp.Request, fallbackModelAgent *model.ModelAgent, fallbackModel *model.Model, retry ...int) (responseBytes []byte, err error)
// VideoRetrieve
VideoRetrieve(ctx context.Context, request *ghttp.Request, taskId string, fallbackModelAgent *model.ModelAgent, fallbackModel *model.Model, retry ...int) (responseBytes []byte, err error)
// VideoDelete
VideoDelete(ctx context.Context, request *ghttp.Request, taskId string, fallbackModelAgent *model.ModelAgent, fallbackModel *model.Model, retry ...int) (err error)
}
func VolcEngine ¶ added in v2.3.0
func VolcEngine() IVolcEngine
Source Files
¶
- anthropic.go
- app.go
- app_key.go
- audio.go
- auth.go
- batch.go
- chat.go
- common.go
- core.go
- dashboard.go
- embedding.go
- file.go
- general.go
- google.go
- group.go
- image.go
- key.go
- log.go
- midjourney.go
- model.go
- model_agent.go
- moderation.go
- openai.go
- provider.go
- realtime.go
- reseller.go
- session.go
- session_keep.go
- sys_config.go
- user.go
- video.go
- volcengine.go
Click to show internal directories.
Click to hide internal directories.