Documentation
¶
Index ¶
- func RegisterApp(i IApp)
- func RegisterAuth(i IAuth)
- func RegisterChat(i IChat)
- func RegisterCommon(i ICommon)
- func RegisterImage(i IImage)
- func RegisterKey(i IKey)
- func RegisterMidjourney(i IMidjourney)
- func RegisterModel(i IModel)
- func RegisterModelAgent(i IModelAgent)
- func RegisterSession(i ISession)
- func RegisterUser(i IUser)
- type IApp
- type IAuth
- type IChat
- type ICommon
- type IImage
- type IKey
- type IMidjourney
- type IModel
- type IModelAgent
- type ISession
- type IUser
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func RegisterApp ¶
func RegisterApp(i IApp)
func RegisterAuth ¶
func RegisterAuth(i IAuth)
func RegisterChat ¶
func RegisterChat(i IChat)
func RegisterCommon ¶
func RegisterCommon(i ICommon)
func RegisterImage ¶
func RegisterImage(i IImage)
func RegisterKey ¶
func RegisterKey(i IKey)
func RegisterMidjourney ¶
func RegisterMidjourney(i IMidjourney)
func RegisterModel ¶
func RegisterModel(i IModel)
func RegisterModelAgent ¶
func RegisterModelAgent(i IModelAgent)
func RegisterSession ¶
func RegisterSession(i ISession)
func RegisterUser ¶
func RegisterUser(i IUser)
Types ¶
type IApp ¶
type IApp interface {
// 根据应用ID获取应用信息
GetApp(ctx context.Context, appId int) (*model.App, error)
// 应用列表
List(ctx context.Context) ([]*model.App, error)
// 更改应用额度
ChangeQuota(ctx context.Context, appId, quota int) error
// 保存应用信息到缓存
SaveCacheApp(ctx context.Context, app *model.App) error
// 获取缓存中的应用信息
GetCacheApp(ctx context.Context, appId int) (*model.App, error)
// 更新缓存中的应用信息
UpdateCacheApp(ctx context.Context, app *entity.App)
// 移除缓存中的应用信息
RemoveCacheApp(ctx context.Context, appId int)
// 保存应用密钥信息到缓存
SaveCacheAppKey(ctx context.Context, key *model.Key) error
// 获取缓存中的应用密钥信息
GetCacheAppKey(ctx context.Context, secretKey string) (*model.Key, error)
// 更新缓存中的应用密钥信息
UpdateCacheAppKey(ctx context.Context, key *entity.Key)
// 移除缓存中的应用密钥信息
RemoveCacheAppKey(ctx context.Context, secretKey string)
// 变更订阅
Subscribe(ctx context.Context, msg string) error
// 应用密钥变更订阅
SubscribeKey(ctx context.Context, msg string) error
}
type IAuth ¶
type IChat ¶
type IChat interface {
// Completions
Completions(ctx context.Context, params openai.ChatCompletionRequest, retry ...int) (response sdkm.ChatCompletionResponse, err error)
// CompletionsStream
CompletionsStream(ctx context.Context, params openai.ChatCompletionRequest, retry ...int) (err error)
// 保存文生文聊天数据
SaveChat(ctx context.Context, model *model.Model, key *model.Key, completionsReq *openai.ChatCompletionRequest, completionsRes *model.CompletionsRes)
}
type ICommon ¶
type ICommon interface {
// 核验密钥
VerifySecretKey(ctx context.Context, secretKey string) error
// 解析密钥
ParseSecretKey(ctx context.Context, secretKey string) (int, int, error)
// 记录错误次数和禁用
RecordError(ctx context.Context, model *model.Model, key *model.Key, modelAgent *model.ModelAgent)
// 记录使用额度
RecordUsage(ctx context.Context, model *model.Model, usage openai.Usage) error
GetUserUsageKey(ctx context.Context) string
GetAppUsageCountField(ctx context.Context) string
GetAppUsedTokensField(ctx context.Context) string
GetAppTotalTokensField(ctx context.Context) string
GetKeyUsageCountField(ctx context.Context) string
GetKeyUsedTokensField(ctx context.Context) string
GetKeyTotalTokensField(ctx context.Context) string
GetUserUsageCount(ctx context.Context) (int, error)
GetUserUsedTokens(ctx context.Context) (int, error)
GetUserTotalTokens(ctx context.Context) (int, error)
GetAppUsageCount(ctx context.Context) (int, error)
GetAppUsedTokens(ctx context.Context) (int, error)
GetAppTotalTokens(ctx context.Context) (int, error)
GetKeyUsageCount(ctx context.Context) (int, error)
GetKeyUsedTokens(ctx context.Context) (int, error)
GetKeyTotalTokens(ctx context.Context) (int, error)
}
type IImage ¶
type IKey ¶
type IKey interface {
// 根据secretKey获取密钥信息
GetKey(ctx context.Context, secretKey string) (*model.Key, error)
// 根据模型ID获取密钥列表
GetModelKeys(ctx context.Context, id string) ([]*model.Key, error)
// 密钥列表
List(ctx context.Context, typ int) ([]*model.Key, error)
// 挑选模型密钥
PickModelKey(ctx context.Context, m *model.Model) (keyTotal int, key *model.Key, err error)
// 移除模型密钥
RemoveModelKey(ctx context.Context, m *model.Model, key *model.Key)
// 记录错误模型密钥
RecordErrorModelKey(ctx context.Context, m *model.Model, key *model.Key)
// 禁用模型密钥
DisabledModelKey(ctx context.Context, key *model.Key)
// 更改密钥额度
ChangeQuota(ctx context.Context, secretKey string, quota int) error
// 保存模型密钥列表到缓存
SaveCacheModelKeys(ctx context.Context, id string, keys []*model.Key) error
// 获取缓存中的模型密钥列表
GetCacheModelKeys(ctx context.Context, id string) ([]*model.Key, error)
// 新增模型密钥到缓存列表中
CreateCacheModelKey(ctx context.Context, key *entity.Key)
// 更新缓存中的模型密钥
UpdateCacheModelKey(ctx context.Context, oldData *entity.Key, newData *entity.Key)
// 移除缓存中的模型密钥
RemoveCacheModelKey(ctx context.Context, key *entity.Key)
// 变更订阅
Subscribe(ctx context.Context, msg string) error
}
type IMidjourney ¶
type IMidjourney interface {
// Imagine
Imagine(ctx context.Context, params sdkm.MidjourneyProxyRequest, retry ...int) (response sdkm.MidjourneyProxyResponse, err error)
// Change
Change(ctx context.Context, params sdkm.MidjourneyProxyRequest, retry ...int) (response sdkm.MidjourneyProxyResponse, err error)
// Describe
Describe(ctx context.Context, params sdkm.MidjourneyProxyRequest, retry ...int) (response sdkm.MidjourneyProxyResponse, err error)
// Blend
Blend(ctx context.Context, params sdkm.MidjourneyProxyRequest, retry ...int) (response sdkm.MidjourneyProxyResponse, err error)
// SwapFace
SwapFace(ctx context.Context, params sdkm.MidjourneyProxyRequest, retry ...int) (response sdkm.MidjourneyProxyResponse, err error)
// Action
Action(ctx context.Context, params sdkm.MidjourneyProxyRequest, retry ...int) (response sdkm.MidjourneyProxyResponse, err error)
// Modal
Modal(ctx context.Context, params sdkm.MidjourneyProxyRequest, retry ...int) (response sdkm.MidjourneyProxyResponse, err error)
// Shorten
Shorten(ctx context.Context, params sdkm.MidjourneyProxyRequest, retry ...int) (response sdkm.MidjourneyProxyResponse, err error)
// UploadDiscordImages
UploadDiscordImages(ctx context.Context, params sdkm.MidjourneyProxyRequest, retry ...int) (response sdkm.MidjourneyProxyResponse, err error)
// Fetch
Fetch(ctx context.Context, params sdkm.MidjourneyProxyRequest, retry ...int) (response sdkm.MidjourneyProxyFetchResponse, err error)
// 保存Midjourney数据
SaveChat(ctx context.Context, model *model.Model, key *model.Key, request sdkm.MidjourneyProxyRequest, response model.MidjourneyProxyResponse)
}
func Midjourney ¶
func Midjourney() IMidjourney
type IModel ¶
type IModel interface {
// 根据model获取模型信息
GetModel(ctx context.Context, m string) (*model.Model, error)
// 根据model和secretKey获取模型信息
GetModelBySecretKey(ctx context.Context, m, secretKey string) (*model.Model, error)
// 模型列表
List(ctx context.Context, ids []string) ([]*model.Model, error)
// 保存模型列表到缓存
SaveCacheList(ctx context.Context, models []*model.Model) error
// 获取缓存中的模型列表
GetCacheList(ctx context.Context, ids ...string) ([]*model.Model, error)
// 更新缓存中的模型列表
UpdateCacheModel(ctx context.Context, oldData *entity.Model, newData *entity.Model)
// 移除缓存中的模型列表
RemoveCacheModel(ctx context.Context, id string)
// 变更订阅
Subscribe(ctx context.Context, msg string) error
}
type IModelAgent ¶
type IModelAgent interface {
// 根据模型代理ID获取模型代理信息
GetModelAgent(ctx context.Context, id string) (*model.ModelAgent, error)
// 模型代理列表
List(ctx context.Context, ids []string) ([]*model.ModelAgent, error)
// 根据模型代理ID获取密钥列表
GetModelAgentKeys(ctx context.Context, id string) ([]*model.Key, error)
// 挑选模型代理
PickModelAgent(ctx context.Context, m *model.Model) (modelAgent *model.ModelAgent, err error)
// 移除模型代理
RemoveModelAgent(ctx context.Context, m *model.Model, modelAgent *model.ModelAgent)
// 记录错误模型代理
RecordErrorModelAgent(ctx context.Context, m *model.Model, modelAgent *model.ModelAgent)
// 禁用错误模型代理
DisabledModelAgent(ctx context.Context, modelAgent *model.ModelAgent)
// 挑选模型代理密钥
PickModelAgentKey(ctx context.Context, modelAgent *model.ModelAgent) (keyTotal int, key *model.Key, err error)
// 移除模型代理密钥
RemoveModelAgentKey(ctx context.Context, modelAgent *model.ModelAgent, key *model.Key)
// 记录错误模型代理密钥
RecordErrorModelAgentKey(ctx context.Context, modelAgent *model.ModelAgent, key *model.Key)
// 禁用模型代理密钥
DisabledModelAgentKey(ctx context.Context, key *model.Key)
// 保存模型代理列表到缓存
SaveCacheList(ctx context.Context, modelAgents []*model.ModelAgent) error
// 获取缓存中的模型代理列表
GetCacheList(ctx context.Context, ids ...string) ([]*model.ModelAgent, error)
// 新增模型代理到缓存列表中
CreateCacheModelAgent(ctx context.Context, newData *model.ModelAgent)
// 更新缓存中的模型代理列表
UpdateCacheModelAgent(ctx context.Context, oldData *model.ModelAgent, newData *model.ModelAgent)
// 移除缓存中的模型代理
RemoveCacheModelAgent(ctx context.Context, modelAgent *model.ModelAgent)
// 保存模型代理密钥列表到缓存
SaveCacheModelAgentKeys(ctx context.Context, id string, keys []*model.Key) error
// 获取缓存中的模型代理密钥列表
GetCacheModelAgentKeys(ctx context.Context, id string) ([]*model.Key, error)
// 新增模型代理密钥到缓存列表中
CreateCacheModelAgentKey(ctx context.Context, key *entity.Key)
// 更新缓存中的模型代理密钥
UpdateCacheModelAgentKey(ctx context.Context, oldData *entity.Key, newData *entity.Key)
// 移除缓存中的模型代理密钥
RemoveCacheModelAgentKey(ctx context.Context, key *entity.Key)
// 变更订阅
Subscribe(ctx context.Context, msg string) error
}
func ModelAgent ¶
func ModelAgent() IModelAgent
type ISession ¶
type ISession interface {
// 保存会话
Save(ctx context.Context, secretKey string) error
// 保存应用和密钥是否限制额度
SaveIsLimitQuota(ctx context.Context, app, key bool) error
// 获取用户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
// 保存用户信息到会话中
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
// 保存密钥信息到会话中
SaveKey(ctx context.Context, key *model.Key)
// 获取会话中的密钥信息
GetKey(ctx context.Context) *model.Key
}
type IUser ¶
type IUser interface {
// 根据userId获取用户信息
GetUserByUserId(ctx context.Context, userId int) (*model.User, error)
// 用户列表
List(ctx context.Context) ([]*model.User, error)
// 更改用户额度
ChangeQuota(ctx context.Context, userId, quota int) error
// 保存用户信息到缓存
SaveCacheUser(ctx context.Context, user *model.User) error
// 获取缓存中的用户信息
GetCacheUser(ctx context.Context, userId int) (*model.User, error)
// 更新缓存中的用户信息
UpdateCacheUser(ctx context.Context, user *entity.User)
// 移除缓存中的用户信息
RemoveCacheUser(ctx context.Context, userId int)
// 变更订阅
Subscribe(ctx context.Context, msg string) error
}
Click to show internal directories.
Click to hide internal directories.