controller

package
v0.10.7 Latest Latest
Warning

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

Go to latest
Published: Feb 3, 2026 License: AGPL-3.0 Imports: 69 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// SecureVerificationSessionKey 安全验证的 session key
	SecureVerificationSessionKey = "secure_verified_at"
	// SecureVerificationTimeout 验证有效期(秒)
	SecureVerificationTimeout = 300 // 5分钟
)
View Source
const (
	PaymentMethodCreem   = "creem"
	CreemSignatureHeader = "creem-signature"
)
View Source
const (
	PaymentMethodStripe = "stripe"
)

Variables

This section is empty.

Functions

func AddChannel

func AddChannel(c *gin.Context)

func AddRedemption

func AddRedemption(c *gin.Context)

func AddToken

func AddToken(c *gin.Context)

func Admin2FAStats

func Admin2FAStats(c *gin.Context)

Admin2FAStats 管理员获取2FA统计信息

func AdminCompleteTopUp

func AdminCompleteTopUp(c *gin.Context)

AdminCompleteTopUp 管理员补单接口

func AdminDisable2FA

func AdminDisable2FA(c *gin.Context)

AdminDisable2FA 管理员强制禁用用户2FA

func AdminResetPasskey

func AdminResetPasskey(c *gin.Context)

func AutomaticallyTestChannels

func AutomaticallyTestChannels()

func AutomaticallyUpdateChannels

func AutomaticallyUpdateChannels(frequency int)

func BatchSetChannelTag

func BatchSetChannelTag(c *gin.Context)

func ChannelListModels

func ChannelListModels(c *gin.Context)

func CheckClusterNameAvailability

func CheckClusterNameAvailability(c *gin.Context)

func CheckSecureVerification

func CheckSecureVerification(c *gin.Context) bool

CheckSecureVerification 检查是否已通过安全验证 返回 true 表示验证有效,false 表示需要重新验证

func ClearChannelAffinityCache

func ClearChannelAffinityCache(c *gin.Context)

func ClearDiskCache

func ClearDiskCache(c *gin.Context)

ClearDiskCache 清理磁盘缓存

func CompleteCodexOAuth

func CompleteCodexOAuth(c *gin.Context)

func CompleteCodexOAuthForChannel

func CompleteCodexOAuthForChannel(c *gin.Context)

func CopyChannel

func CopyChannel(c *gin.Context)

CopyChannel handles cloning an existing channel with its key. POST /api/channel/copy/:id Optional query params:

suffix         - string appended to the original name (default "_复制")
reset_balance  - bool, when true will reset balance & used_quota to 0 (default true)

func CreateDeployment

func CreateDeployment(c *gin.Context)

func CreateModelMeta

func CreateModelMeta(c *gin.Context)

CreateModelMeta 新建模型

func CreatePrefillGroup

func CreatePrefillGroup(c *gin.Context)

CreatePrefillGroup 创建新的预填组

func CreateUser

func CreateUser(c *gin.Context)

func CreateVendorMeta

func CreateVendorMeta(c *gin.Context)

CreateVendorMeta 新建供应商

func CreemWebhook

func CreemWebhook(c *gin.Context)

func DashboardListModels

func DashboardListModels(c *gin.Context)

func DeleteChannel

func DeleteChannel(c *gin.Context)

func DeleteChannelBatch

func DeleteChannelBatch(c *gin.Context)

func DeleteDeployment

func DeleteDeployment(c *gin.Context)

func DeleteDisabledChannel

func DeleteDisabledChannel(c *gin.Context)

func DeleteHistoryLogs

func DeleteHistoryLogs(c *gin.Context)

func DeleteInvalidRedemption

func DeleteInvalidRedemption(c *gin.Context)

func DeleteModelMeta

func DeleteModelMeta(c *gin.Context)

DeleteModelMeta 删除模型

func DeletePrefillGroup

func DeletePrefillGroup(c *gin.Context)

DeletePrefillGroup 删除预填组

func DeleteRedemption

func DeleteRedemption(c *gin.Context)

func DeleteSelf

func DeleteSelf(c *gin.Context)

func DeleteToken

func DeleteToken(c *gin.Context)

func DeleteTokenBatch

func DeleteTokenBatch(c *gin.Context)

func DeleteUser

func DeleteUser(c *gin.Context)

func DeleteVendorMeta

func DeleteVendorMeta(c *gin.Context)

DeleteVendorMeta 删除供应商

func Disable2FA

func Disable2FA(c *gin.Context)

Disable2FA 禁用2FA

func DisableTagChannels

func DisableTagChannels(c *gin.Context)

func DiscordBind

func DiscordBind(c *gin.Context)

func DiscordOAuth

func DiscordOAuth(c *gin.Context)

func DoCheckin

func DoCheckin(c *gin.Context)

DoCheckin 执行用户签到

func EditTagChannels

func EditTagChannels(c *gin.Context)

func EmailBind

func EmailBind(c *gin.Context)

func Enable2FA

func Enable2FA(c *gin.Context)

Enable2FA 启用2FA

func EnableTagChannels

func EnableTagChannels(c *gin.Context)

func EnabledListModels

func EnabledListModels(c *gin.Context)

func EpayNotify

func EpayNotify(c *gin.Context)

func ExtendDeployment

func ExtendDeployment(c *gin.Context)

func FetchModels

func FetchModels(c *gin.Context)

func FetchUpstreamModels

func FetchUpstreamModels(c *gin.Context)

func FetchUpstreamRatios

func FetchUpstreamRatios(c *gin.Context)

func FixChannelsAbilities

func FixChannelsAbilities(c *gin.Context)

func ForceGC

func ForceGC(c *gin.Context)

ForceGC 强制执行 GC

func GenerateAccessToken

func GenerateAccessToken(c *gin.Context)

func GenerateOAuthCode

func GenerateOAuthCode(c *gin.Context)

func Get2FAStatus

func Get2FAStatus(c *gin.Context)

Get2FAStatus 获取用户2FA状态

func GetAbout

func GetAbout(c *gin.Context)

func GetAffCode

func GetAffCode(c *gin.Context)

func GetAllChannels

func GetAllChannels(c *gin.Context)

func GetAllDeployments

func GetAllDeployments(c *gin.Context)

func GetAllLogs

func GetAllLogs(c *gin.Context)

func GetAllMidjourney

func GetAllMidjourney(c *gin.Context)

func GetAllModelsMeta

func GetAllModelsMeta(c *gin.Context)

GetAllModelsMeta 获取模型列表(分页)

func GetAllQuotaDates

func GetAllQuotaDates(c *gin.Context)

func GetAllRedemptions

func GetAllRedemptions(c *gin.Context)

func GetAllTask

func GetAllTask(c *gin.Context)

func GetAllTokens

func GetAllTokens(c *gin.Context)

func GetAllTopUps

func GetAllTopUps(c *gin.Context)

GetAllTopUps 管理员获取全平台充值记录

func GetAllUsers

func GetAllUsers(c *gin.Context)

func GetAllVendors

func GetAllVendors(c *gin.Context)

GetAllVendors 获取供应商列表(分页)

func GetAuthHeader

func GetAuthHeader(token string) http.Header

GetAuthHeader get auth header

func GetAvailableReplicas

func GetAvailableReplicas(c *gin.Context)

func GetChannel

func GetChannel(c *gin.Context)

func GetChannelAffinityCacheStats

func GetChannelAffinityCacheStats(c *gin.Context)

func GetChannelAffinityUsageCacheStats

func GetChannelAffinityUsageCacheStats(c *gin.Context)

func GetChannelKey

func GetChannelKey(c *gin.Context)

GetChannelKey 获取渠道密钥(需要通过安全验证中间件) 此函数依赖 SecureVerificationRequired 中间件,确保用户已通过安全验证

func GetChargedAmount

func GetChargedAmount(count float64, user model.User) float64

func GetCheckinStatus

func GetCheckinStatus(c *gin.Context)

GetCheckinStatus 获取用户签到状态和历史记录

func GetClaudeAuthHeader

func GetClaudeAuthHeader(token string) http.Header

GetClaudeAuthHeader get claude auth header

func GetCodexChannelUsage

func GetCodexChannelUsage(c *gin.Context)

func GetContainerDetails

func GetContainerDetails(c *gin.Context)

func GetDeployment

func GetDeployment(c *gin.Context)

func GetDeploymentLogs

func GetDeploymentLogs(c *gin.Context)

func GetEpayClient

func GetEpayClient() *epay.Client

func GetGroups

func GetGroups(c *gin.Context)

func GetHardwareTypes

func GetHardwareTypes(c *gin.Context)

func GetHomePageContent

func GetHomePageContent(c *gin.Context)

func GetImage

func GetImage(c *gin.Context)

func GetLocations

func GetLocations(c *gin.Context)

func GetLogByKey

func GetLogByKey(c *gin.Context)

func GetLogsSelfStat

func GetLogsSelfStat(c *gin.Context)

func GetLogsStat

func GetLogsStat(c *gin.Context)

func GetMidjourney

func GetMidjourney(c *gin.Context)

func GetMissingModels

func GetMissingModels(c *gin.Context)

GetMissingModels returns the list of model names that are referenced by channels but do not have corresponding records in the models meta table. This helps administrators quickly discover models that need configuration.

func GetModelDeploymentSettings

func GetModelDeploymentSettings(c *gin.Context)

func GetModelMeta

func GetModelMeta(c *gin.Context)

GetModelMeta 根据 ID 获取单条模型信息

func GetNotice

func GetNotice(c *gin.Context)

func GetOptions

func GetOptions(c *gin.Context)

func GetPerformanceStats

func GetPerformanceStats(c *gin.Context)

GetPerformanceStats 获取性能统计信息

func GetPrefillGroups

func GetPrefillGroups(c *gin.Context)

GetPrefillGroups 获取预填组列表,可通过 ?type=xxx 过滤

func GetPriceEstimation

func GetPriceEstimation(c *gin.Context)

func GetPricing

func GetPricing(c *gin.Context)

func GetPrivacyPolicy

func GetPrivacyPolicy(c *gin.Context)

func GetRatioConfig

func GetRatioConfig(c *gin.Context)

func GetRedemption

func GetRedemption(c *gin.Context)

func GetResponseBody

func GetResponseBody(method, url string, channel *model.Channel, headers http.Header) ([]byte, error)

func GetSelf

func GetSelf(c *gin.Context)

func GetSetup

func GetSetup(c *gin.Context)

func GetStatus

func GetStatus(c *gin.Context)

func GetSubscription

func GetSubscription(c *gin.Context)

func GetSyncableChannels

func GetSyncableChannels(c *gin.Context)

func GetTagModels

func GetTagModels(c *gin.Context)

func GetToken

func GetToken(c *gin.Context)

func GetTokenStatus

func GetTokenStatus(c *gin.Context)

func GetTokenUsage

func GetTokenUsage(c *gin.Context)

func GetTopUpInfo

func GetTopUpInfo(c *gin.Context)

func GetUptimeKumaStatus

func GetUptimeKumaStatus(c *gin.Context)

func GetUsage

func GetUsage(c *gin.Context)

func GetUser

func GetUser(c *gin.Context)

func GetUserAgreement

func GetUserAgreement(c *gin.Context)

func GetUserGroups

func GetUserGroups(c *gin.Context)

func GetUserLogs

func GetUserLogs(c *gin.Context)

func GetUserMidjourney

func GetUserMidjourney(c *gin.Context)

func GetUserModels

func GetUserModels(c *gin.Context)

func GetUserQuotaDates

func GetUserQuotaDates(c *gin.Context)

func GetUserTask

func GetUserTask(c *gin.Context)

func GetUserTopUps

func GetUserTopUps(c *gin.Context)

func GetVendorMeta

func GetVendorMeta(c *gin.Context)

GetVendorMeta 根据 ID 获取供应商

func GetVerificationStatus

func GetVerificationStatus(c *gin.Context)

GetVerificationStatus 获取验证状态

func GitHubBind

func GitHubBind(c *gin.Context)

func GitHubOAuth

func GitHubOAuth(c *gin.Context)

func KlingImage2VideoGenerations

func KlingImage2VideoGenerations(c *gin.Context)

KlingImage2VideoGenerations @Summary 可灵官方-图生视频 @Description 调用可灵AI图生视频接口,生成视频内容 @Tags Video @Accept json @Produce json @Param Authorization header string true "用户认证令牌 (Aeess-Token: sk-xxxx)" @Param request body KlingImage2VideoRequest true "图生视频请求参数" @Success 200 {object} dto.VideoTaskResponse "任务状态和结果" @Failure 400 {object} dto.OpenAIError "请求参数错误" @Failure 401 {object} dto.OpenAIError "未授权" @Failure 403 {object} dto.OpenAIError "无权限" @Failure 500 {object} dto.OpenAIError "服务器内部错误" @Router /kling/v1/videos/image2video [post]

func KlingImage2videoTaskId

func KlingImage2videoTaskId(c *gin.Context)

KlingImage2videoTaskId godoc @Summary 可灵任务查询--图生视频 @Description Query the status and result of a Kling video generation task by task ID @Tags Origin @Accept json @Produce json @Param task_id path string true "Task ID" @Router /kling/v1/videos/image2video/{task_id} [get]

func KlingText2VideoGenerations

func KlingText2VideoGenerations(c *gin.Context)

KlingText2VideoGenerations @Summary 可灵文生视频 @Description 调用可灵AI文生视频接口,生成视频内容 @Tags Video @Accept json @Produce json @Param Authorization header string true "用户认证令牌 (Aeess-Token: sk-xxxx)" @Param request body KlingText2VideoRequest true "视频生成请求参数" @Success 200 {object} dto.VideoTaskResponse "任务状态和结果" @Failure 400 {object} dto.OpenAIError "请求参数错误" @Failure 401 {object} dto.OpenAIError "未授权" @Failure 403 {object} dto.OpenAIError "无权限" @Failure 500 {object} dto.OpenAIError "服务器内部错误" @Router /kling/v1/videos/text2video [post]

func KlingText2videoTaskId

func KlingText2videoTaskId(c *gin.Context)

KlingText2videoTaskId godoc @Summary 可灵任务查询--文生视频 @Description Query the status and result of a Kling text-to-video generation task by task ID @Tags Origin @Accept json @Produce json @Param task_id path string true "Task ID" @Router /kling/v1/videos/text2video/{task_id} [get]

func LinuxDoBind

func LinuxDoBind(c *gin.Context)

func LinuxdoOAuth

func LinuxdoOAuth(c *gin.Context)

func ListDeploymentContainers

func ListDeploymentContainers(c *gin.Context)

func ListModels

func ListModels(c *gin.Context, modelType int)

func LockOrder

func LockOrder(tradeNo string)

LockOrder 尝试对给定订单号加锁

func Login

func Login(c *gin.Context)

func Logout

func Logout(c *gin.Context)

func ManageMultiKeys

func ManageMultiKeys(c *gin.Context)

ManageMultiKeys handles multi-key management operations

func ManageUser

func ManageUser(c *gin.Context)

ManageUser Only admin user can do this

func MigrateConsoleSetting

func MigrateConsoleSetting(c *gin.Context)

MigrateConsoleSetting 迁移旧的控制台相关配置到 console_setting.*

func OidcAuth

func OidcAuth(c *gin.Context)

func OidcBind

func OidcBind(c *gin.Context)

func OllamaDeleteModel

func OllamaDeleteModel(c *gin.Context)

OllamaDeleteModel 删除 Ollama 模型

func OllamaPullModel

func OllamaPullModel(c *gin.Context)

OllamaPullModel 拉取 Ollama 模型

func OllamaPullModelStream

func OllamaPullModelStream(c *gin.Context)

OllamaPullModelStream 流式拉取 Ollama 模型

func OllamaVersion

func OllamaVersion(c *gin.Context)

OllamaVersion 获取 Ollama 服务版本信息

func PasskeyDelete

func PasskeyDelete(c *gin.Context)

func PasskeyLoginBegin

func PasskeyLoginBegin(c *gin.Context)

func PasskeyLoginFinish

func PasskeyLoginFinish(c *gin.Context)

func PasskeyRegisterBegin

func PasskeyRegisterBegin(c *gin.Context)

func PasskeyRegisterFinish

func PasskeyRegisterFinish(c *gin.Context)

func PasskeyStatus

func PasskeyStatus(c *gin.Context)

func PasskeyVerifyAndSetSession

func PasskeyVerifyAndSetSession(c *gin.Context)

PasskeyVerifyAndSetSession Passkey 验证完成后设置 session 这是一个辅助函数,供 PasskeyVerifyFinish 调用

func PasskeyVerifyBegin

func PasskeyVerifyBegin(c *gin.Context)

func PasskeyVerifyFinish

func PasskeyVerifyFinish(c *gin.Context)

func PasskeyVerifyForSecure

func PasskeyVerifyForSecure(c *gin.Context)

PasskeyVerifyForSecure 用于安全验证的 Passkey 验证流程 整合了 begin 和 finish 流程

func Playground

func Playground(c *gin.Context)

func PostSetup

func PostSetup(c *gin.Context)

func RefreshCodexChannelCredential

func RefreshCodexChannelCredential(c *gin.Context)

func RegenerateBackupCodes

func RegenerateBackupCodes(c *gin.Context)

RegenerateBackupCodes 重新生成备用码

func Register

func Register(c *gin.Context)

func Relay

func Relay(c *gin.Context, relayFormat types.RelayFormat)

func RelayMidjourney

func RelayMidjourney(c *gin.Context)

func RelayNotFound

func RelayNotFound(c *gin.Context)

func RelayNotImplemented

func RelayNotImplemented(c *gin.Context)

func RelayTask

func RelayTask(c *gin.Context)

func RequestAmount

func RequestAmount(c *gin.Context)

func RequestCreemPay

func RequestCreemPay(c *gin.Context)

func RequestEpay

func RequestEpay(c *gin.Context)

func RequestStripeAmount

func RequestStripeAmount(c *gin.Context)

func RequestStripePay

func RequestStripePay(c *gin.Context)

func ResetModelRatio

func ResetModelRatio(c *gin.Context)

func ResetPassword

func ResetPassword(c *gin.Context)

func ResetPerformanceStats

func ResetPerformanceStats(c *gin.Context)

ResetPerformanceStats 重置性能统计

func RetrieveModel

func RetrieveModel(c *gin.Context, modelType int)

func SearchAllLogs

func SearchAllLogs(c *gin.Context)

func SearchChannels

func SearchChannels(c *gin.Context)

func SearchDeployments

func SearchDeployments(c *gin.Context)

func SearchModelsMeta

func SearchModelsMeta(c *gin.Context)

SearchModelsMeta 搜索模型列表

func SearchRedemptions

func SearchRedemptions(c *gin.Context)

func SearchTokens

func SearchTokens(c *gin.Context)

func SearchUserLogs

func SearchUserLogs(c *gin.Context)

func SearchUsers

func SearchUsers(c *gin.Context)

func SearchVendors

func SearchVendors(c *gin.Context)

SearchVendors 搜索供应商

func SendEmailVerification

func SendEmailVerification(c *gin.Context)

func SendPasswordResetEmail

func SendPasswordResetEmail(c *gin.Context)

func Setup2FA

func Setup2FA(c *gin.Context)

Setup2FA 初始化2FA设置

func StartCodexOAuth

func StartCodexOAuth(c *gin.Context)

func StartCodexOAuthForChannel

func StartCodexOAuthForChannel(c *gin.Context)

func StripeWebhook

func StripeWebhook(c *gin.Context)

func SyncUpstreamModels

func SyncUpstreamModels(c *gin.Context)

SyncUpstreamModels 同步上游模型与供应商: - 默认仅创建「未配置模型」 - 可通过 overwrite 选择性覆盖更新本地已有模型的字段(前提:sync_official <> 0)

func SyncUpstreamPreview

func SyncUpstreamPreview(c *gin.Context)

SyncUpstreamPreview 预览上游与本地的差异(仅用于弹窗选择)

func TelegramBind

func TelegramBind(c *gin.Context)

func TelegramLogin

func TelegramLogin(c *gin.Context)

func TestAllChannels

func TestAllChannels(c *gin.Context)

func TestChannel

func TestChannel(c *gin.Context)

func TestIoNetConnection

func TestIoNetConnection(c *gin.Context)

func TestStatus

func TestStatus(c *gin.Context)

func TopUp

func TopUp(c *gin.Context)

func TransferAffQuota

func TransferAffQuota(c *gin.Context)

func UniversalVerify

func UniversalVerify(c *gin.Context)

UniversalVerify 通用验证接口 支持 2FA 和 Passkey 验证,验证成功后在 session 中记录时间戳

func UnlockOrder

func UnlockOrder(tradeNo string)

UnlockOrder 释放给定订单号的锁

func UpdateAllChannelsBalance

func UpdateAllChannelsBalance(c *gin.Context)

func UpdateChannel

func UpdateChannel(c *gin.Context)

func UpdateChannelBalance

func UpdateChannelBalance(c *gin.Context)

func UpdateDeployment

func UpdateDeployment(c *gin.Context)

func UpdateDeploymentName

func UpdateDeploymentName(c *gin.Context)

func UpdateMidjourneyTaskBulk

func UpdateMidjourneyTaskBulk()

func UpdateModelMeta

func UpdateModelMeta(c *gin.Context)

UpdateModelMeta 更新模型

func UpdateOption

func UpdateOption(c *gin.Context)

func UpdatePrefillGroup

func UpdatePrefillGroup(c *gin.Context)

UpdatePrefillGroup 更新预填组

func UpdateRedemption

func UpdateRedemption(c *gin.Context)

func UpdateSelf

func UpdateSelf(c *gin.Context)

func UpdateSunoTaskAll

func UpdateSunoTaskAll(ctx context.Context, taskChannelM map[int][]string, taskM map[string]*model.Task) error

func UpdateTaskBulk

func UpdateTaskBulk()

func UpdateTaskByPlatform

func UpdateTaskByPlatform(platform constant.TaskPlatform, taskChannelM map[int][]string, taskM map[string]*model.Task)

func UpdateToken

func UpdateToken(c *gin.Context)

func UpdateUser

func UpdateUser(c *gin.Context)

func UpdateUserSetting

func UpdateUserSetting(c *gin.Context)

func UpdateVendorMeta

func UpdateVendorMeta(c *gin.Context)

UpdateVendorMeta 更新供应商

func UpdateVideoTaskAll

func UpdateVideoTaskAll(ctx context.Context, platform constant.TaskPlatform, taskChannelM map[int][]string, taskM map[string]*model.Task) error

func Verify2FALogin

func Verify2FALogin(c *gin.Context)

Verify2FALogin 登录时验证2FA

func VideoGenerations

func VideoGenerations(c *gin.Context)

VideoGenerations @Summary 生成视频 @Description 调用视频生成接口生成视频 @Description 支持多种视频生成服务: @Description - 可灵AI (Kling): https://app.klingai.com/cn/dev/document-api/apiReference/commonInfo @Description - 即梦 (Jimeng): https://www.volcengine.com/docs/85621/1538636 @Tags Video @Accept json @Produce json @Param Authorization header string true "用户认证令牌 (Aeess-Token: sk-xxxx)" @Param request body dto.VideoRequest true "视频生成请求参数" @Failure 400 {object} dto.OpenAIError "请求参数错误" @Failure 401 {object} dto.OpenAIError "未授权" @Failure 403 {object} dto.OpenAIError "无权限" @Failure 500 {object} dto.OpenAIError "服务器内部错误" @Router /v1/video/generations [post]

func VideoGenerationsTaskId

func VideoGenerationsTaskId(c *gin.Context)

VideoGenerationsTaskId @Summary 查询视频 @Description 根据任务ID查询视频生成任务的状态和结果 @Tags Video @Accept json @Produce json @Security BearerAuth @Param task_id path string true "Task ID" @Success 200 {object} dto.VideoTaskResponse "任务状态和结果" @Failure 400 {object} dto.OpenAIError "请求参数错误" @Failure 401 {object} dto.OpenAIError "未授权" @Failure 403 {object} dto.OpenAIError "无权限" @Failure 500 {object} dto.OpenAIError "服务器内部错误" @Router /v1/video/generations/{task_id} [get]

func VideoProxy

func VideoProxy(c *gin.Context)

func WeChatAuth

func WeChatAuth(c *gin.Context)

func WeChatBind

func WeChatBind(c *gin.Context)

Types

type AIProxyUserOverviewResponse

type AIProxyUserOverviewResponse struct {
	Success   bool   `json:"success"`
	Message   string `json:"message"`
	ErrorCode int    `json:"error_code"`
	Data      struct {
		TotalPoints float64 `json:"totalPoints"`
	} `json:"data"`
}

type APGC2DGPTUsageResponse

type APGC2DGPTUsageResponse struct {
	//Grants         interface{} `json:"grants"`
	Object         string  `json:"object"`
	TotalAvailable float64 `json:"total_available"`
	TotalGranted   float64 `json:"total_granted"`
	TotalUsed      float64 `json:"total_used"`
}

type API2GPTUsageResponse

type API2GPTUsageResponse struct {
	Object         string  `json:"object"`
	TotalGranted   float64 `json:"total_granted"`
	TotalUsed      float64 `json:"total_used"`
	TotalRemaining float64 `json:"total_remaining"`
}

type AddChannelRequest

type AddChannelRequest struct {
	Mode                      string                `json:"mode"`
	MultiKeyMode              constant.MultiKeyMode `json:"multi_key_mode"`
	BatchAddSetKeyPrefix2Name bool                  `json:"batch_add_set_key_prefix_2_name"`
	Channel                   *model.Channel        `json:"channel"`
}

type AdminCompleteTopupRequest

type AdminCompleteTopupRequest struct {
	TradeNo string `json:"trade_no"`
}

type AmountRequest

type AmountRequest struct {
	Amount    int64  `json:"amount"`
	TopUpCode string `json:"top_up_code"`
}

type ChannelBatch

type ChannelBatch struct {
	Ids []int   `json:"ids"`
	Tag *string `json:"tag"`
}

type ChannelTag

type ChannelTag struct {
	Tag            string  `json:"tag"`
	NewTag         *string `json:"new_tag"`
	Priority       *int64  `json:"priority"`
	Weight         *uint   `json:"weight"`
	ModelMapping   *string `json:"model_mapping"`
	Models         *string `json:"models"`
	Groups         *string `json:"groups"`
	ParamOverride  *string `json:"param_override"`
	HeaderOverride *string `json:"header_override"`
}

type CreemAdaptor

type CreemAdaptor struct {
}

func (*CreemAdaptor) RequestPay

func (*CreemAdaptor) RequestPay(c *gin.Context, req *CreemPayRequest)

type CreemCheckoutRequest

type CreemCheckoutRequest struct {
	ProductId string `json:"product_id"`
	RequestId string `json:"request_id"`
	Customer  struct {
		Email string `json:"email"`
	} `json:"customer"`
	Metadata map[string]string `json:"metadata,omitempty"`
}

type CreemCheckoutResponse

type CreemCheckoutResponse struct {
	CheckoutUrl string `json:"checkout_url"`
	Id          string `json:"id"`
}

type CreemPayRequest

type CreemPayRequest struct {
	ProductId     string `json:"product_id"`
	PaymentMethod string `json:"payment_method"`
}

type CreemProduct

type CreemProduct struct {
	ProductId string  `json:"productId"`
	Name      string  `json:"name"`
	Price     float64 `json:"price"`
	Currency  string  `json:"currency"`
	Quota     int64   `json:"quota"`
}

type CreemWebhookData

type CreemWebhookData struct {
	Type string `json:"type"`
	Data struct {
		RequestId string            `json:"request_id"`
		Status    string            `json:"status"`
		Metadata  map[string]string `json:"metadata"`
	} `json:"data"`
}

保留旧的结构体作为兼容

type CreemWebhookEvent

type CreemWebhookEvent struct {
	Id        string `json:"id"`
	EventType string `json:"eventType"`
	CreatedAt int64  `json:"created_at"`
	Object    struct {
		Id        string `json:"id"`
		Object    string `json:"object"`
		RequestId string `json:"request_id"`
		Order     struct {
			Object      string `json:"object"`
			Id          string `json:"id"`
			Customer    string `json:"customer"`
			Product     string `json:"product"`
			Amount      int    `json:"amount"`
			Currency    string `json:"currency"`
			SubTotal    int    `json:"sub_total"`
			TaxAmount   int    `json:"tax_amount"`
			AmountDue   int    `json:"amount_due"`
			AmountPaid  int    `json:"amount_paid"`
			Status      string `json:"status"`
			Type        string `json:"type"`
			Transaction string `json:"transaction"`
			CreatedAt   string `json:"created_at"`
			UpdatedAt   string `json:"updated_at"`
			Mode        string `json:"mode"`
		} `json:"order"`
		Product struct {
			Id                string  `json:"id"`
			Object            string  `json:"object"`
			Name              string  `json:"name"`
			Description       string  `json:"description"`
			Price             int     `json:"price"`
			Currency          string  `json:"currency"`
			BillingType       string  `json:"billing_type"`
			BillingPeriod     string  `json:"billing_period"`
			Status            string  `json:"status"`
			TaxMode           string  `json:"tax_mode"`
			TaxCategory       string  `json:"tax_category"`
			DefaultSuccessUrl *string `json:"default_success_url"`
			CreatedAt         string  `json:"created_at"`
			UpdatedAt         string  `json:"updated_at"`
			Mode              string  `json:"mode"`
		} `json:"product"`
		Units    int `json:"units"`
		Customer struct {
			Id        string `json:"id"`
			Object    string `json:"object"`
			Email     string `json:"email"`
			Name      string `json:"name"`
			Country   string `json:"country"`
			CreatedAt string `json:"created_at"`
			UpdatedAt string `json:"updated_at"`
			Mode      string `json:"mode"`
		} `json:"customer"`
		Status   string            `json:"status"`
		Metadata map[string]string `json:"metadata"`
		Mode     string            `json:"mode"`
	} `json:"object"`
}

新的Creem Webhook结构体,匹配实际的webhook数据格式

type DeepSeekUsageResponse

type DeepSeekUsageResponse struct {
	IsAvailable  bool `json:"is_available"`
	BalanceInfos []struct {
		Currency        string `json:"currency"`
		TotalBalance    string `json:"total_balance"`
		GrantedBalance  string `json:"granted_balance"`
		ToppedUpBalance string `json:"topped_up_balance"`
	} `json:"balance_infos"`
}

type DiscordResponse

type DiscordResponse struct {
	AccessToken  string `json:"access_token"`
	IDToken      string `json:"id_token"`
	RefreshToken string `json:"refresh_token"`
	TokenType    string `json:"token_type"`
	ExpiresIn    int    `json:"expires_in"`
	Scope        string `json:"scope"`
}

type DiscordUser

type DiscordUser struct {
	UID  string `json:"id"`
	ID   string `json:"username"`
	Name string `json:"global_name"`
}

type DiskCacheInfo

type DiskCacheInfo struct {
	// 缓存目录路径
	Path string `json:"path"`
	// 目录是否存在
	Exists bool `json:"exists"`
	// 文件数量
	FileCount int `json:"file_count"`
	// 总大小(字节)
	TotalSize int64 `json:"total_size"`
}

DiskCacheInfo 磁盘缓存目录信息

type DiskSpaceInfo

type DiskSpaceInfo struct {
	// 总空间(字节)
	Total uint64 `json:"total"`
	// 可用空间(字节)
	Free uint64 `json:"free"`
	// 已用空间(字节)
	Used uint64 `json:"used"`
	// 使用百分比
	UsedPercent float64 `json:"used_percent"`
}

DiskSpaceInfo 磁盘空间信息

type EpayRequest

type EpayRequest struct {
	Amount        int64  `json:"amount"`
	PaymentMethod string `json:"payment_method"`
	TopUpCode     string `json:"top_up_code"`
}

type GitHubOAuthResponse

type GitHubOAuthResponse struct {
	AccessToken string `json:"access_token"`
	Scope       string `json:"scope"`
	TokenType   string `json:"token_type"`
}

type GitHubUser

type GitHubUser struct {
	Login string `json:"login"`
	Name  string `json:"name"`
	Email string `json:"email"`
}

type KeyStatus

type KeyStatus struct {
	Index        int    `json:"index"`
	Status       int    `json:"status"` // 1: enabled, 2: disabled
	DisabledTime int64  `json:"disabled_time,omitempty"`
	Reason       string `json:"reason,omitempty"`
	KeyPreview   string `json:"key_preview"` // first 10 chars of key for identification
}

type KlingCameraConfig

type KlingCameraConfig struct {
	Horizontal float64 `json:"horizontal,omitempty" example:"2.5"`
	Vertical   float64 `json:"vertical,omitempty" example:"0"`
	Pan        float64 `json:"pan,omitempty" example:"0"`
	Tilt       float64 `json:"tilt,omitempty" example:"0"`
	Roll       float64 `json:"roll,omitempty" example:"0"`
	Zoom       float64 `json:"zoom,omitempty" example:"0"`
}

type KlingCameraControl

type KlingCameraControl struct {
	Type   string             `json:"type,omitempty" example:"simple"`
	Config *KlingCameraConfig `json:"config,omitempty"`
}

type KlingImage2VideoRequest

type KlingImage2VideoRequest struct {
	ModelName      string              `json:"model_name,omitempty" example:"kling-v2-master"`
	Image          string              `` /* 181-byte string literal not displayed */
	Prompt         string              `json:"prompt,omitempty" example:"A cat playing piano in the garden"`
	NegativePrompt string              `json:"negative_prompt,omitempty" example:"blurry, low quality"`
	CfgScale       float64             `json:"cfg_scale,omitempty" example:"0.7"`
	Mode           string              `json:"mode,omitempty" example:"std"`
	CameraControl  *KlingCameraControl `json:"camera_control,omitempty"`
	AspectRatio    string              `json:"aspect_ratio,omitempty" example:"16:9"`
	Duration       string              `json:"duration,omitempty" example:"5"`
	CallbackURL    string              `json:"callback_url,omitempty" example:"https://your.domain/callback"`
	ExternalTaskId string              `json:"external_task_id,omitempty" example:"custom-task-002"`
}

type KlingText2VideoRequest

type KlingText2VideoRequest struct {
	ModelName      string              `json:"model_name,omitempty" example:"kling-v1"`
	Prompt         string              `json:"prompt" binding:"required" example:"A cat playing piano in the garden"`
	NegativePrompt string              `json:"negative_prompt,omitempty" example:"blurry, low quality"`
	CfgScale       float64             `json:"cfg_scale,omitempty" example:"0.7"`
	Mode           string              `json:"mode,omitempty" example:"std"`
	CameraControl  *KlingCameraControl `json:"camera_control,omitempty"`
	AspectRatio    string              `json:"aspect_ratio,omitempty" example:"16:9"`
	Duration       string              `json:"duration,omitempty" example:"5"`
	CallbackURL    string              `json:"callback_url,omitempty" example:"https://your.domain/callback"`
	ExternalTaskId string              `json:"external_task_id,omitempty" example:"custom-task-001"`
}

type LinuxdoUser

type LinuxdoUser struct {
	Id         int    `json:"id"`
	Username   string `json:"username"`
	Name       string `json:"name"`
	Active     bool   `json:"active"`
	TrustLevel int    `json:"trust_level"`
	Silenced   bool   `json:"silenced"`
}

type LoginRequest

type LoginRequest struct {
	Username string `json:"username"`
	Password string `json:"password"`
}

type ManageRequest

type ManageRequest struct {
	Id     int    `json:"id"`
	Action string `json:"action"`
}

type MemoryStats

type MemoryStats struct {
	// 已分配内存(字节)
	Alloc uint64 `json:"alloc"`
	// 总分配内存(字节)
	TotalAlloc uint64 `json:"total_alloc"`
	// 系统内存(字节)
	Sys uint64 `json:"sys"`
	// GC 次数
	NumGC uint32 `json:"num_gc"`
	// Goroutine 数量
	NumGoroutine int `json:"num_goroutine"`
}

MemoryStats 内存统计

type Monitor

type Monitor struct {
	Name   string  `json:"name"`
	Uptime float64 `json:"uptime"`
	Status int     `json:"status"`
	Group  string  `json:"group,omitempty"`
}

type MultiKeyManageRequest

type MultiKeyManageRequest struct {
	ChannelId int    `json:"channel_id"`
	Action    string `json:"action"`              // "disable_key", "enable_key", "delete_key", "delete_disabled_keys", "get_key_status"
	KeyIndex  *int   `json:"key_index,omitempty"` // for disable_key, enable_key, and delete_key actions
	Page      int    `json:"page,omitempty"`      // for get_key_status pagination
	PageSize  int    `json:"page_size,omitempty"` // for get_key_status pagination
	Status    *int   `json:"status,omitempty"`    // for get_key_status filtering: 1=enabled, 2=manual_disabled, 3=auto_disabled, nil=all
}

MultiKeyManageRequest represents the request for multi-key management operations

type MultiKeyStatusResponse

type MultiKeyStatusResponse struct {
	Keys       []KeyStatus `json:"keys"`
	Total      int         `json:"total"`
	Page       int         `json:"page"`
	PageSize   int         `json:"page_size"`
	TotalPages int         `json:"total_pages"`
	// Statistics
	EnabledCount        int `json:"enabled_count"`
	ManualDisabledCount int `json:"manual_disabled_count"`
	AutoDisabledCount   int `json:"auto_disabled_count"`
}

MultiKeyStatusResponse represents the response for key status query

type OidcResponse

type OidcResponse struct {
	AccessToken  string `json:"access_token"`
	IDToken      string `json:"id_token"`
	RefreshToken string `json:"refresh_token"`
	TokenType    string `json:"token_type"`
	ExpiresIn    int    `json:"expires_in"`
	Scope        string `json:"scope"`
}

type OidcUser

type OidcUser struct {
	OpenID            string `json:"sub"`
	Email             string `json:"email"`
	Name              string `json:"name"`
	PreferredUsername string `json:"preferred_username"`
	Picture           string `json:"picture"`
}

type OpenAICreditGrants

type OpenAICreditGrants struct {
	Object         string  `json:"object"`
	TotalGranted   float64 `json:"total_granted"`
	TotalUsed      float64 `json:"total_used"`
	TotalAvailable float64 `json:"total_available"`
}

type OpenAIModel

type OpenAIModel struct {
	ID         string         `json:"id"`
	Object     string         `json:"object"`
	Created    int64          `json:"created"`
	OwnedBy    string         `json:"owned_by"`
	Metadata   map[string]any `json:"metadata,omitempty"`
	Permission []struct {
		ID                 string `json:"id"`
		Object             string `json:"object"`
		Created            int64  `json:"created"`
		AllowCreateEngine  bool   `json:"allow_create_engine"`
		AllowSampling      bool   `json:"allow_sampling"`
		AllowLogprobs      bool   `json:"allow_logprobs"`
		AllowSearchIndices bool   `json:"allow_search_indices"`
		AllowView          bool   `json:"allow_view"`
		AllowFineTuning    bool   `json:"allow_fine_tuning"`
		Organization       string `json:"organization"`
		Group              string `json:"group"`
		IsBlocking         bool   `json:"is_blocking"`
	} `json:"permission"`
	Root   string `json:"root"`
	Parent string `json:"parent"`
}

type OpenAIModelsResponse

type OpenAIModelsResponse struct {
	Data    []OpenAIModel `json:"data"`
	Success bool          `json:"success"`
}

type OpenAISBUsageResponse

type OpenAISBUsageResponse struct {
	Msg  string `json:"msg"`
	Data *struct {
		Credit string `json:"credit"`
	} `json:"data"`
}

type OpenAISubscriptionResponse

type OpenAISubscriptionResponse struct {
	Object             string  `json:"object"`
	HasPaymentMethod   bool    `json:"has_payment_method"`
	SoftLimitUSD       float64 `json:"soft_limit_usd"`
	HardLimitUSD       float64 `json:"hard_limit_usd"`
	SystemHardLimitUSD float64 `json:"system_hard_limit_usd"`
	AccessUntil        int64   `json:"access_until"`
}

type OpenAIUsageDailyCost

type OpenAIUsageDailyCost struct {
	Timestamp float64 `json:"timestamp"`
	LineItems []struct {
		Name string  `json:"name"`
		Cost float64 `json:"cost"`
	}
}

type OpenAIUsageResponse

type OpenAIUsageResponse struct {
	Object string `json:"object"`
	//DailyCosts []OpenAIUsageDailyCost `json:"daily_costs"`
	TotalUsage float64 `json:"total_usage"` // unit: 0.01 dollar
}

type OpenRouterCreditResponse

type OpenRouterCreditResponse struct {
	Data struct {
		TotalCredits float64 `json:"total_credits"`
		TotalUsage   float64 `json:"total_usage"`
	} `json:"data"`
}

type OptionUpdateRequest

type OptionUpdateRequest struct {
	Key   string `json:"key"`
	Value any    `json:"value"`
}

type PasswordResetRequest

type PasswordResetRequest struct {
	Email string `json:"email"`
	Token string `json:"token"`
}

type PatchChannel

type PatchChannel struct {
	model.Channel
	MultiKeyMode *string `json:"multi_key_mode"`
	KeyMode      *string `json:"key_mode"` // 多key模式下密钥覆盖或者追加
}

type PerformanceConfig

type PerformanceConfig struct {
	// 是否启用磁盘缓存
	DiskCacheEnabled bool `json:"disk_cache_enabled"`
	// 磁盘缓存阈值(MB)
	DiskCacheThresholdMB int `json:"disk_cache_threshold_mb"`
	// 磁盘缓存最大大小(MB)
	DiskCacheMaxSizeMB int `json:"disk_cache_max_size_mb"`
	// 磁盘缓存路径
	DiskCachePath string `json:"disk_cache_path"`
	// 是否在容器中运行
	IsRunningInContainer bool `json:"is_running_in_container"`
}

PerformanceConfig 性能配置

type PerformanceStats

type PerformanceStats struct {
	// 缓存统计
	CacheStats common.DiskCacheStats `json:"cache_stats"`
	// 系统内存统计
	MemoryStats MemoryStats `json:"memory_stats"`
	// 磁盘缓存目录信息
	DiskCacheInfo DiskCacheInfo `json:"disk_cache_info"`
	// 磁盘空间信息
	DiskSpaceInfo DiskSpaceInfo `json:"disk_space_info"`
	// 配置信息
	Config PerformanceConfig `json:"config"`
}

PerformanceStats 性能统计信息

type Setup

type Setup struct {
	Status       bool   `json:"status"`
	RootInit     bool   `json:"root_init"`
	DatabaseType string `json:"database_type"`
}

type Setup2FARequest

type Setup2FARequest struct {
	Code string `json:"code" binding:"required"`
}

Setup2FARequest 设置2FA请求结构

type Setup2FAResponse

type Setup2FAResponse struct {
	Secret      string   `json:"secret"`
	QRCodeData  string   `json:"qr_code_data"`
	BackupCodes []string `json:"backup_codes"`
}

Setup2FAResponse 设置2FA响应结构

type SetupRequest

type SetupRequest struct {
	Username           string `json:"username"`
	Password           string `json:"password"`
	ConfirmPassword    string `json:"confirmPassword"`
	SelfUseModeEnabled bool   `json:"SelfUseModeEnabled"`
	DemoSiteEnabled    bool   `json:"DemoSiteEnabled"`
}

type SiliconFlowUsageResponse

type SiliconFlowUsageResponse struct {
	Code    int    `json:"code"`
	Message string `json:"message"`
	Status  bool   `json:"status"`
	Data    struct {
		ID            string `json:"id"`
		Name          string `json:"name"`
		Image         string `json:"image"`
		Email         string `json:"email"`
		IsAdmin       bool   `json:"isAdmin"`
		Balance       string `json:"balance"`
		Status        string `json:"status"`
		Introduction  string `json:"introduction"`
		Role          string `json:"role"`
		ChargeBalance string `json:"chargeBalance"`
		TotalBalance  string `json:"totalBalance"`
		Category      string `json:"category"`
	} `json:"data"`
}

type StripeAdaptor

type StripeAdaptor struct {
}

func (*StripeAdaptor) RequestAmount

func (*StripeAdaptor) RequestAmount(c *gin.Context, req *StripePayRequest)

func (*StripeAdaptor) RequestPay

func (*StripeAdaptor) RequestPay(c *gin.Context, req *StripePayRequest)

type StripePayRequest

type StripePayRequest struct {
	// Amount is the quantity of units to purchase.
	Amount int64 `json:"amount"`
	// PaymentMethod specifies the payment method (e.g., "stripe").
	PaymentMethod string `json:"payment_method"`
	// SuccessURL is the optional custom URL to redirect after successful payment.
	// If empty, defaults to the server's console log page.
	SuccessURL string `json:"success_url,omitempty"`
	// CancelURL is the optional custom URL to redirect when payment is canceled.
	// If empty, defaults to the server's console topup page.
	CancelURL string `json:"cancel_url,omitempty"`
}

StripePayRequest represents a payment request for Stripe checkout.

type TokenBatch

type TokenBatch struct {
	Ids []int `json:"ids"`
}

type TransferAffQuotaRequest

type TransferAffQuotaRequest struct {
	Quota int `json:"quota" binding:"required"`
}

type UniversalVerifyRequest

type UniversalVerifyRequest struct {
	Method string `json:"method"` // "2fa" 或 "passkey"
	Code   string `json:"code,omitempty"`
}

type UpdateUserSettingRequest

type UpdateUserSettingRequest struct {
	QuotaWarningType           string  `json:"notify_type"`
	QuotaWarningThreshold      float64 `json:"quota_warning_threshold"`
	WebhookUrl                 string  `json:"webhook_url,omitempty"`
	WebhookSecret              string  `json:"webhook_secret,omitempty"`
	NotificationEmail          string  `json:"notification_email,omitempty"`
	BarkUrl                    string  `json:"bark_url,omitempty"`
	GotifyUrl                  string  `json:"gotify_url,omitempty"`
	GotifyToken                string  `json:"gotify_token,omitempty"`
	GotifyPriority             int     `json:"gotify_priority,omitempty"`
	AcceptUnsetModelRatioModel bool    `json:"accept_unset_model_ratio_model"`
	RecordIpLog                bool    `json:"record_ip_log"`
}

type UptimeGroupResult

type UptimeGroupResult struct {
	CategoryName string    `json:"categoryName"`
	Monitors     []Monitor `json:"monitors"`
}

type VerificationStatusResponse

type VerificationStatusResponse struct {
	Verified  bool  `json:"verified"`
	ExpiresAt int64 `json:"expires_at,omitempty"`
}

type Verify2FARequest

type Verify2FARequest struct {
	Code string `json:"code" binding:"required"`
}

Verify2FARequest 验证2FA请求结构

Jump to

Keyboard shortcuts

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