service

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Mar 30, 2024 License: MIT Imports: 5 Imported by: 0

Documentation

Index

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
}

func App

func App() IApp

type IAuth

type IAuth interface {
	VerifySecretKey(ctx context.Context, secretKey string) error
	CheckUser(ctx context.Context, userId int) error
}

func Auth

func Auth() 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)
}

func Chat

func Chat() IChat

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)
}

func Common

func Common() ICommon

type IImage

type IImage interface {
	// Generations
	Generations(ctx context.Context, params openai.ImageRequest, retry ...int) (response sdkm.ImageResponse, err error)
	// 保存文生图聊天数据
	SaveChat(ctx context.Context, model *model.Model, key *model.Key, imageReq *openai.ImageRequest, imageRes *model.ImageRes)
}

func Image

func Image() 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
}

func Key

func Key() IKey

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
}

func Model

func Model() IModel

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
}

func Session

func Session() ISession

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
}

func User

func User() IUser

Jump to

Keyboard shortcuts

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