controller

package
v0.0.0-...-30b4b00 Latest Latest
Warning

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

Go to latest
Published: Aug 5, 2026 License: AGPL-3.0 Imports: 93 Imported by: 0

Documentation

Overview

Package controller Agent Marketplace L1(技能注册中心)

目录 API:

  • GET /api/marketplace/skills 公开,列表(非管理员强制 status=published)
  • GET /api/marketplace/skills/:id 公开,详情(非管理员不可见非 published)
  • GET /api/marketplace/skills/:id/download 公开,计数 +1 后 302 跳 download_url
  • POST /api/marketplace/skills AdminAuth(),发布/注册

响应体统一 {success, message, data},与全仓库 GetSelf 一致。

Package controller Repository 访问辅助函数 所有 controller 文件通过此文件共享 repository 访问器

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.

For commercial licensing, please contact hello@fasttoken.example.com

Index

Constants

This section is empty.

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 AdminApproveEnterprise

func AdminApproveEnterprise(c *gin.Context)

func AdminClearUserBinding

func AdminClearUserBinding(c *gin.Context)

func AdminCompleteTopUp

func AdminCompleteTopUp(c *gin.Context)

AdminCompleteTopUp 管理员补单接口

func AdminCreateEnterprise

func AdminCreateEnterprise(c *gin.Context)

func AdminCreateGroupRatio

func AdminCreateGroupRatio(c *gin.Context)

AdminCreateGroupRatio creates a new group ratio record. POST /api/group-ratio/

func AdminCreateInvitationCode

func AdminCreateInvitationCode(c *gin.Context)

func AdminDeleteGroupRatio

func AdminDeleteGroupRatio(c *gin.Context)

AdminDeleteGroupRatio deletes a group ratio record. DELETE /api/group-ratio/:id

func AdminDeleteInvitationCode

func AdminDeleteInvitationCode(c *gin.Context)

func AdminExpireTopUps

func AdminExpireTopUps(c *gin.Context)

AdminExpireTopUps 管理员手动触发过期清理,将超时的 Pending 订单标记为 Expired。

func AdminGetAllGifts

func AdminGetAllGifts(c *gin.Context)

AdminGetAllGifts 管理员获取所有礼物记录(支持状态筛选+分页)

func AdminGetEnterpriseWallet

func AdminGetEnterpriseWallet(c *gin.Context)

AdminGetEnterpriseWallet 平台管理员查看企业钱包概况。 GET /api/enterprise/:id/wallet

func AdminGetInvitationCodeStats

func AdminGetInvitationCodeStats(c *gin.Context)

func AdminListEnterprises

func AdminListEnterprises(c *gin.Context)

func AdminListGroupRatios

func AdminListGroupRatios(c *gin.Context)

AdminListGroupRatios returns all group ratio records. GET /api/group-ratio/

func AdminListInvitationCodes

func AdminListInvitationCodes(c *gin.Context)

func AdminRechargeEnterpriseWallet

func AdminRechargeEnterpriseWallet(c *gin.Context)

AdminRechargeEnterpriseWallet 平台管理员为企业主钱包授信充值。 POST /api/enterprise/:id/wallet/recharge {"quota":10000000,"remark":"线下打款"}

func AdminRefundTopUp

func AdminRefundTopUp(c *gin.Context)

AdminRefundTopUp 管理员退款接口:冲销一笔成功充值订单的配额与返利。 仅做平台内额度冲销,不触发支付网关实际退款。

func AdminRejectEnterprise

func AdminRejectEnterprise(c *gin.Context)

func AdminUpdateGiftStatus

func AdminUpdateGiftStatus(c *gin.Context)

AdminUpdateGiftStatus 管理员更新礼物状态

func AdminUpdateGroupRatio

func AdminUpdateGroupRatio(c *gin.Context)

AdminUpdateGroupRatio updates an existing group ratio record. PUT /api/group-ratio/:id

func AlipayNotify

func AlipayNotify(c *gin.Context)

AlipayNotify handles the Alipay asynchronous callback notification.

func AlipayReconcile

func AlipayReconcile(c *gin.Context)

AlipayReconcile 管理员手动触发支付宝对账补单,返回逐笔明细。

func AlipayReturn

func AlipayReturn(c *gin.Context)

AlipayReturn 支付宝回跳接口:用户从支付宝支付完成后跳回时, 立即向支付宝查单并在已支付时入账,随后重定向到前端页面。 该接口由支付宝重定向用户浏览器触发(无登录态),因此注册为公开 GET 路由。

func ApplyAllChannelUpstreamModelUpdates

func ApplyAllChannelUpstreamModelUpdates(c *gin.Context)

func ApplyChannelUpstreamModelUpdates

func ApplyChannelUpstreamModelUpdates(c *gin.Context)

func AutomaticallyTestChannels

func AutomaticallyTestChannels()

func AutomaticallyUpdateChannels

func AutomaticallyUpdateChannels(frequency int)

func BatchSetChannelTag

func BatchSetChannelTag(c *gin.Context)

func BeginPasskeyLogin

func BeginPasskeyLogin(c *gin.Context)

BeginPasskeyLogin starts the WebAuthn login ceremony (discovery-based / passwordless)

func BeginPasskeyRegistration

func BeginPasskeyRegistration(c *gin.Context)

BeginPasskeyRegistration starts the WebAuthn registration ceremony

func BeginPasskeyVerification

func BeginPasskeyVerification(c *gin.Context)

BeginPasskeyVerification starts the WebAuthn verification ceremony for an already logged-in user

func BindPhone

func BindPhone(c *gin.Context)

BindPhone 绑定手机号

func BindWeChat

func BindWeChat(c *gin.Context)

BindWeChat 绑定微信

func ChannelListModels

func ChannelListModels(c *gin.Context)

func CheckClusterNameAvailability

func CheckClusterNameAvailability(c *gin.Context)

func CleanupLogFiles

func CleanupLogFiles(c *gin.Context)

CleanupLogFiles 清理过期日志文件

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 ConfirmPaymentCompliance

func ConfirmPaymentCompliance(c *gin.Context)

func CopyChannel

func CopyChannel(c *gin.Context)

func CreateActivity

func CreateActivity(c *gin.Context)

CreateActivity 新建活动(父活动或子活动)。

func CreateCustomOAuthProvider

func CreateCustomOAuthProvider(c *gin.Context)

CreateCustomOAuthProvider creates a new custom OAuth provider

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 CreateUserWebhook

func CreateUserWebhook(c *gin.Context)

CreateUserWebhook creates a new webhook for the authenticated user. POST /api/webhook/

func CreateVendorMeta

func CreateVendorMeta(c *gin.Context)

CreateVendorMeta 新建供应商

func DashboardListModels

func DashboardListModels(c *gin.Context)

func DeleteActivity

func DeleteActivity(c *gin.Context)

DeleteActivity 删除活动。

func DeleteChannel

func DeleteChannel(c *gin.Context)

func DeleteChannelBatch

func DeleteChannelBatch(c *gin.Context)

func DeleteCustomOAuthProvider

func DeleteCustomOAuthProvider(c *gin.Context)

DeleteCustomOAuthProvider deletes a custom OAuth provider

func DeleteDeployment

func DeleteDeployment(c *gin.Context)

func DeleteDisabledChannel

func DeleteDisabledChannel(c *gin.Context)

func DeleteHistoryLogs

func DeleteHistoryLogs(c *gin.Context)

DeleteHistoryLogs deletes old log entries. Only available to admin users.

func DeleteInvalidRedemption

func DeleteInvalidRedemption(c *gin.Context)

func DeleteModelMeta

func DeleteModelMeta(c *gin.Context)

DeleteModelMeta 删除模型

func DeletePasskey

func DeletePasskey(c *gin.Context)

DeletePasskey deletes a specific passkey credential for the authenticated user

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 DeleteUiSkin

func DeleteUiSkin(c *gin.Context)

DeleteUiSkin 后台:删除皮肤。

func DeleteUser

func DeleteUser(c *gin.Context)

func DeleteUserWebhook

func DeleteUserWebhook(c *gin.Context)

DeleteUserWebhook deletes a webhook. DELETE /api/webhook/:id

func DeleteVendorMeta

func DeleteVendorMeta(c *gin.Context)

DeleteVendorMeta 删除供应商

func DetectAllChannelUpstreamModelUpdates

func DetectAllChannelUpstreamModelUpdates(c *gin.Context)

func DetectChannelUpstreamModelUpdates

func DetectChannelUpstreamModelUpdates(c *gin.Context)

func DisableTagChannels

func DisableTagChannels(c *gin.Context)

func DiscoverOIDCEndpoints

func DiscoverOIDCEndpoints(c *gin.Context)

DiscoverOIDCEndpoints discovers OIDC endpoints from well-known URL

func DoCheckin

func DoCheckin(c *gin.Context)

DoCheckin 执行用户签到

func DownloadMarketplaceSkill

func DownloadMarketplaceSkill(c *gin.Context)

DownloadMarketplaceSkill 下载技能包(公开):计数 +1 后 302 跳转到 download_url。 计数失败只记日志、不阻断下载——下载可用性优先于统计准确性。

func EditTagChannels

func EditTagChannels(c *gin.Context)

func EmailBind

func EmailBind(c *gin.Context)

func EnableTagChannels

func EnableTagChannels(c *gin.Context)

func EnabledListModels

func EnabledListModels(c *gin.Context)

func EnterpriseCreateUser

func EnterpriseCreateUser(c *gin.Context)

EnterpriseCreateUser adds a sub-user to an enterprise with a quota allocation. POST /api/enterprise/:id/users

func EnterpriseDeleteUser

func EnterpriseDeleteUser(c *gin.Context)

EnterpriseDeleteUser removes a sub-user from an enterprise. DELETE /api/enterprise/:id/users/:uid

func EnterpriseListUsers

func EnterpriseListUsers(c *gin.Context)

EnterpriseListUsers lists all sub-users for an enterprise. GET /api/enterprise/:id/users

func EnterpriseUpdateUserQuota

func EnterpriseUpdateUserQuota(c *gin.Context)

EnterpriseUpdateUserQuota updates the quota for a sub-user. PUT /api/enterprise/:id/users/:uid

func ExportAllLogs

func ExportAllLogs(c *gin.Context)

ExportAllLogs 管理员导出全部使用日志(CSV,不含 Content 字段)。

func ExportAllTasks

func ExportAllTasks(c *gin.Context)

ExportAllTasks 管理员导出全部任务日志(CSV,不含 Data/PrivateData)。

func ExportEnterprises

func ExportEnterprises(c *gin.Context)

ExportEnterprises 超级管理员导出企业认证列表(CSV)。

func ExportGifts

func ExportGifts(c *gin.Context)

ExportGifts 超级管理员导出礼物管理记录(CSV)。

func ExportRedemptions

func ExportRedemptions(c *gin.Context)

ExportRedemptions 导出兑换码(CSV,Key 脱敏),支持 keyword 筛选。

func ExportTokens

func ExportTokens(c *gin.Context)

ExportTokens 超级管理员导出全部 API 密钥(CSV,Key 脱敏)。

func ExportUserLogs

func ExportUserLogs(c *gin.Context)

ExportUserLogs 导出当前登录用户自己的使用日志。

func ExportUserTasks

func ExportUserTasks(c *gin.Context)

ExportUserTasks 导出当前登录用户自己的任务日志。

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 FinishPasskeyLogin

func FinishPasskeyLogin(c *gin.Context)

FinishPasskeyLogin completes the WebAuthn login ceremony

func FinishPasskeyRegistration

func FinishPasskeyRegistration(c *gin.Context)

FinishPasskeyRegistration completes the WebAuthn registration ceremony

func FinishPasskeyVerification

func FinishPasskeyVerification(c *gin.Context)

FinishPasskeyVerification completes the WebAuthn verification ceremony

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)

GenerateOAuthCode generates a state code for OAuth CSRF protection

func Get2FAStatus

func Get2FAStatus(c *gin.Context)

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

func GetAvailableReplicas

func GetAvailableReplicas(c *gin.Context)

func GetBindings

func GetBindings(c *gin.Context)

GetBindings 获取当前用户的绑定信息

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 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 GetCustomOAuthProvider

func GetCustomOAuthProvider(c *gin.Context)

GetCustomOAuthProvider returns a single custom OAuth provider

func GetDeployment

func GetDeployment(c *gin.Context)

func GetDeploymentLogs

func GetDeploymentLogs(c *gin.Context)

func GetEnterpriseWalletTopUpStatus

func GetEnterpriseWalletTopUpStatus(c *gin.Context)

GetEnterpriseWalletTopUpStatus 企业钱包充值订单状态查询。 GET /api/user/tenant/wallet/topup/status?trade_no=xxx

func GetGroups

func GetGroups(c *gin.Context)

func GetHardwareTypes

func GetHardwareTypes(c *gin.Context)

func GetHomePageContent

func GetHomePageContent(c *gin.Context)

func GetI18nMessages

func GetI18nMessages(c *gin.Context)

GetI18nMessages 返回某 locale 的运行时覆盖文案(前端本地化合并用)。公开端点。

func GetImage

func GetImage(c *gin.Context)

func GetLocations

func GetLocations(c *gin.Context)

func GetLogByKey

func GetLogByKey(c *gin.Context)

GetLogByKey retrieves a single log entry by its request_id (the :key route param). This is used by the frontend to view details of a specific API request.

func GetLogFiles

func GetLogFiles(c *gin.Context)

GetLogFiles 获取日志文件列表

func GetLogsSelfStat

func GetLogsSelfStat(c *gin.Context)

func GetLogsStat

func GetLogsStat(c *gin.Context)

func GetMarketplaceSkill

func GetMarketplaceSkill(c *gin.Context)

GetMarketplaceSkill 技能详情(公开)。 非管理员访问非 published 技能一律返回 404,避免泄露草稿版本的存在性。

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 GetModelPricings

func GetModelPricings(c *gin.Context)

GetModelPricings 返回全部模型定价(管理员查看/编辑)。数据为数据库真相源。

func GetMyTenantInfo

func GetMyTenantInfo(c *gin.Context)

GetMyTenantInfo 返回当前用户所属企业的公开信息。 GET /api/user/tenant/info 未入企(enterprise_id == 0)时返回 {joined:false},属正常状态而非错误。

func GetMyTenantMembers

func GetMyTenantMembers(c *gin.Context)

GetMyTenantMembers 返回当前用户所属企业的成员名单(脱敏 + 分页)。 GET /api/user/tenant/members?p=1&page_size=20 未入企时返回空列表且 joined=false,不报错。

func GetMyTenantWallet

func GetMyTenantWallet(c *gin.Context)

GetMyTenantWallet 返回当前用户的企业钱包视图。 GET /api/user/tenant/wallet 普通成员只看到自己的余额;企业管理员额外看到企业主钱包余额。

func GetNotice

func GetNotice(c *gin.Context)

func GetOptions

func GetOptions(c *gin.Context)

func GetPasskeyStatus

func GetPasskeyStatus(c *gin.Context)

GetPasskeyStatus returns the user's passkey status and credentials

func GetPerfMetrics

func GetPerfMetrics(c *gin.Context)

func GetPerfMetricsSummary

func GetPerfMetricsSummary(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 GetQuotaDatesByUser

func GetQuotaDatesByUser(c *gin.Context)

func GetRankings

func GetRankings(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 GetSubscriptionPlans

func GetSubscriptionPlans(c *gin.Context)

GetSubscriptionPlans is a stub handler

func GetSyncableChannels

func GetSyncableChannels(c *gin.Context)

func GetTagModels

func GetTagModels(c *gin.Context)

func GetTenantWalletTxns

func GetTenantWalletTxns(c *gin.Context)

GetTenantWalletTxns 企业管理员查看资金流水。 GET /api/user/tenant/wallet/txns?p=1&page_size=20

func GetToken

func GetToken(c *gin.Context)

func GetTokenKey

func GetTokenKey(c *gin.Context)

func GetTokenKeysBatch

func GetTokenKeysBatch(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 GetTopupGiftBonus

func GetTopupGiftBonus(c *gin.Context)

GetTopupGiftBonus 返回「面额(元) -> 赠送额(元)」映射,供前端展示充值赠送。 公开端点(前端下单页调用)。

func GetTwoFAStatus

func GetTwoFAStatus(c *gin.Context)

GetTwoFAStatus is a stub handler

func GetUiSkins

func GetUiSkins(c *gin.Context)

GetUiSkins 公开端点:返回运营启用的皮肤(含 css),供前端运行时套用(配置即数据,免部署生效)。

func GetUptimeKumaStatus

func GetUptimeKumaStatus(c *gin.Context)

func GetUser

func GetUser(c *gin.Context)

func GetUserAgreement

func GetUserAgreement(c *gin.Context)

func GetUserGifts

func GetUserGifts(c *gin.Context)

GetUserGifts 返回当前登录用户获得的礼物列表

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)

GetUserModels returns the models available to the authenticated user. The user ID is taken exclusively from the session context to prevent IDOR.

func GetUserOAuthBindings

func GetUserOAuthBindings(c *gin.Context)

GetUserOAuthBindings returns the current user's custom OAuth bindings

func GetUserOAuthBindingsByAdmin

func GetUserOAuthBindingsByAdmin(c *gin.Context)

GetUserOAuthBindingsByAdmin returns OAuth bindings for a specific user (admin)

func GetUserQuotaDates

func GetUserQuotaDates(c *gin.Context)

func GetUserSubscription

func GetUserSubscription(c *gin.Context)

GetUserSubscription is a stub handler

func GetUserTask

func GetUserTask(c *gin.Context)

func GetUserTopUps

func GetUserTopUps(c *gin.Context)

func GetUserWebhooks

func GetUserWebhooks(c *gin.Context)

GetUserWebhooks returns all webhooks for the authenticated user. GET /api/webhook/

func GetVendorMeta

func GetVendorMeta(c *gin.Context)

GetVendorMeta 根据 ID 获取供应商

func GrantTenantWalletQuota

func GrantTenantWalletQuota(c *gin.Context)

GrantTenantWalletQuota 企业管理员向成员派发额度。 POST /api/user/tenant/wallet/grant {"user_id":123,"quota":500000}

func HandleOAuth

func HandleOAuth(c *gin.Context)

HandleOAuth handles OAuth callback for all standard OAuth providers

func InitPaymentAtStartup

func InitPaymentAtStartup()

InitPaymentAtStartup 在进程启动时一次性校验微信/支付宝密钥是否就位。 非致命:即使缺失也继续启动,由 /api/payment/status 暴露真实状态供部署冒烟判定。 密钥仅来自 .env 与 cert/ 文件(启动期加载),与二进制/前端解耦,故每次部署仅替换二进制即可,无需重填。

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 LinkAccount

func LinkAccount(c *gin.Context)

LinkAccount 关联账号

func ListActivities

func ListActivities(c *gin.Context)

ListActivities 列出全部活动(父/子层级一并返回,前端按 parent_id 组装)。

func ListCustomOAuthProviders

func ListCustomOAuthProviders(c *gin.Context)

ListCustomOAuthProviders returns all custom OAuth providers

func ListDeploymentContainers

func ListDeploymentContainers(c *gin.Context)

func ListI18nLocales

func ListI18nLocales(c *gin.Context)

ListI18nLocales 列出已配置覆盖的 locale(管理员本地化页用)。

func ListMarketplaceSkills

func ListMarketplaceSkills(c *gin.Context)

ListMarketplaceSkills 技能目录列表(公开)。 查询参数:p(页码,从 1 起)、page_size、category、keyword。 非管理员强制只看 published;管理员可见全部状态。

func ListModels

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

func ListUiSkins

func ListUiSkins(c *gin.Context)

ListUiSkins 后台:返回全部皮肤(含禁用),供管理页编辑;同时返回当前默认皮肤。

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)

func MigrateConsoleSetting

func MigrateConsoleSetting(c *gin.Context)

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

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 PaymentStatus

func PaymentStatus(c *gin.Context)

PaymentStatus 供部署冒烟与 uptime-kuma 使用:双渠道均 ok 时 ready=true。

func PhoneLogin

func PhoneLogin(c *gin.Context)

PhoneLogin 手机号登录

func PhoneRegister

func PhoneRegister(c *gin.Context)

PhoneRegister 手机号注册

func PhoneSendCode

func PhoneSendCode(c *gin.Context)

PhoneSendCode 发送手机验证码

func PhoneVerifyCode

func PhoneVerifyCode(c *gin.Context)

PhoneVerifyCode 验证手机验证码(仅验证不登录)

func Playground

func Playground(c *gin.Context)

func Post2FADisable

func Post2FADisable(c *gin.Context)

func Post2FAEnable

func Post2FAEnable(c *gin.Context)

func Post2FARegenerateBackup

func Post2FARegenerateBackup(c *gin.Context)

func Post2FASetup

func Post2FASetup(c *gin.Context)

func PostSetup

func PostSetup(c *gin.Context)

func PublishMarketplaceSkill

func PublishMarketplaceSkill(c *gin.Context)

PublishMarketplaceSkill 发布(注册)一个技能版本,仅管理员可用。

校验链(顺序执行,任一失败立即返回):

  1. name/version/download_url/sha256 非空 -> 400
  2. name 匹配 ^[a-z0-9][a-z0-9._-]{0,127}$ -> 400
  3. version 匹配语义化版本 -> 400
  4. sha256 为 64 位小写十六进制 -> 400
  5. download_url 必须 https:// 前缀 -> 400
  6. name+version 已存在 -> 409
  7. status ∈ {draft, published, deprecated},缺省 draft -> 400

不做「回源实算 SHA256」:发布是管理员操作,同步下载大文件会阻塞请求并引入 SSRF 面; 真正的完整性保障发生在客户端——安装脚本下载后本地比对 sha256。

func QueryAlipayOrder

func QueryAlipayOrder(c *gin.Context)

QueryAlipayOrder 轮询支付宝支付订单状态(与 QueryWechatOrder 对称)。 供前端在支付后主动查询使用;若支付宝侧已支付则立即入账并返回 success。

func QueryWechatOrder

func QueryWechatOrder(c *gin.Context)

QueryWechatOrder 轮询微信支付订单状态

func RecycleTenantWalletQuota

func RecycleTenantWalletQuota(c *gin.Context)

RecycleTenantWalletQuota 企业管理员从成员回收额度。 POST /api/user/tenant/wallet/recycle {"user_id":123,"quota":500000}

func RefreshCodexChannelCredential

func RefreshCodexChannelCredential(c *gin.Context)

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 RelayTaskFetch

func RelayTaskFetch(c *gin.Context)

func ReloadConfig

func ReloadConfig(c *gin.Context)

ReloadConfig 免重启热加载所有配置驱动状态(选项表 → 数据库定价 → 本地化覆盖 → 失效定价缓存)。 对应「配置即数据」哲学:改配置不部署,重启脚本/systemctl 也行,但本端点更轻量。管理员端点。

func RequestAlipayAmount

func RequestAlipayAmount(c *gin.Context)

RequestAlipayAmount handles the Alipay amount query request.

func RequestAlipayPay

func RequestAlipayPay(c *gin.Context)

RequestAlipayPay handles the Alipay payment request.

func RequestEnterpriseWalletTopUp

func RequestEnterpriseWalletTopUp(c *gin.Context)

RequestEnterpriseWalletTopUp 企业管理员为企业主钱包发起自助充值。 POST /api/user/tenant/wallet/topup {"amount":10000,"payment_method":"wechat"}

func RequestWechatAmount

func RequestWechatAmount(c *gin.Context)

RequestWechatAmount 计算微信支付金额(仅计算,不下单)

func RequestWechatPay

func RequestWechatPay(c *gin.Context)

RequestWechatPay 发起微信支付(Native扫码)

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 deprecated

func SearchAllLogs(c *gin.Context)

Deprecated: SearchAllLogs 已废弃,前端未使用该接口。

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)

SearchUserLogs returns the authenticated user's own API request logs. Supports pagination via p/page_size and optional filters: type, model_name, token_name, start_timestamp, end_timestamp, request_id.

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 StartChannelUpstreamModelUpdateTask

func StartChannelUpstreamModelUpdateTask()

func StartCodexOAuth

func StartCodexOAuth(c *gin.Context)

func StartCodexOAuthForChannel

func StartCodexOAuthForChannel(c *gin.Context)

func SyncUpstreamModels

func SyncUpstreamModels(c *gin.Context)

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

func SyncUpstreamPreview

func SyncUpstreamPreview(c *gin.Context)

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

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 UnbindCustomOAuth

func UnbindCustomOAuth(c *gin.Context)

UnbindCustomOAuth removes a custom OAuth binding for the current user

func UnbindCustomOAuthByAdmin

func UnbindCustomOAuthByAdmin(c *gin.Context)

UnbindCustomOAuthByAdmin removes a custom OAuth binding for a specific user (admin)

func UnbindPhone

func UnbindPhone(c *gin.Context)

UnbindPhone 解绑手机号

func UnbindWeChat

func UnbindWeChat(c *gin.Context)

UnbindWeChat 解绑微信

func UnlockOrder

func UnlockOrder(tradeNo string)

UnlockOrder 释放给定订单号的锁

func UpdateActivity

func UpdateActivity(c *gin.Context)

UpdateActivity 更新活动。

func UpdateAllChannelBalances

func UpdateAllChannelBalances() error

func UpdateAllChannelsBalance

func UpdateAllChannelsBalance(c *gin.Context)

func UpdateChannel

func UpdateChannel(c *gin.Context)

func UpdateChannelBalance

func UpdateChannelBalance(c *gin.Context)

func UpdateCustomOAuthProvider

func UpdateCustomOAuthProvider(c *gin.Context)

UpdateCustomOAuthProvider updates an existing custom OAuth provider

func UpdateDeployment

func UpdateDeployment(c *gin.Context)

func UpdateDeploymentName

func UpdateDeploymentName(c *gin.Context)

func UpdateI18nMessages

func UpdateI18nMessages(c *gin.Context)

UpdateI18nMessages 批量覆盖某 locale 的文案(管理员,免部署生效)。

func UpdateMidjourneyTaskBulk

func UpdateMidjourneyTaskBulk()

func UpdateModelMeta

func UpdateModelMeta(c *gin.Context)

UpdateModelMeta 更新模型

func UpdateModelPricing

func UpdateModelPricing(c *gin.Context)

UpdateModelPricing 覆盖单个模型定价并热更新(写库 → 重载 ratio_setting → 失效定价缓存)。 改价 = 管理员操作,0 部署。

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 UpdateTaskBulk

func UpdateTaskBulk()

func UpdateToken

func UpdateToken(c *gin.Context)

func UpdateUser

func UpdateUser(c *gin.Context)

func UpdateUserSetting

func UpdateUserSetting(c *gin.Context)

func UpdateUserWebhook

func UpdateUserWebhook(c *gin.Context)

UpdateUserWebhook updates an existing webhook. PUT /api/webhook/:id

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 UploadFile

func UploadFile(c *gin.Context)

UploadFile 通用文件上传(用户已登录)。用于企业营业执照等合规材料上传。 文件保存到 ./uploads/enterprise/<uuid>.<ext>,并返回可访问的 URL 路径。

func UpsertUiSkin

func UpsertUiSkin(c *gin.Context)

UpsertUiSkin 后台:创建或更新皮肤(运营可加第 5 套免部署)。css 留空则前端回退 bundled 内置定义。

func UserGetMembershipInfo

func UserGetMembershipInfo(c *gin.Context)

func UserUseInvitationCode

func UserUseInvitationCode(c *gin.Context)

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 WebSocketHandler

func WebSocketHandler(c *gin.Context)

WebSocketHandler 处理 WebSocket 连接请求 客户端需要通过 token 认证(Query 参数或 Header) 用法:GET /api/ws?token=xxx 或 Header: Authorization: Bearer xxx

func WechatNotify

func WechatNotify(c *gin.Context)

WechatNotify handles the Wechat Pay asynchronous callback notification.

func WechatReconcile

func WechatReconcile(c *gin.Context)

WechatReconcile 管理员手动触发微信对账补单,返回逐笔明细。

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 AlipayAdaptor

type AlipayAdaptor struct{}

AlipayAdaptor implements the Alipay payment adaptor.

func (*AlipayAdaptor) RequestAmount

func (*AlipayAdaptor) RequestAmount(c *gin.Context, req *AlipayPayRequest)

RequestAmount calculates and returns the payment amount for the given request.

func (*AlipayAdaptor) RequestPay

func (*AlipayAdaptor) RequestPay(c *gin.Context, req *AlipayPayRequest)

RequestPay creates an Alipay payment order and returns the payment URL.

type AlipayPayRequest

type AlipayPayRequest struct {
	// Amount is the quantity of units to purchase.
	Amount int64 `json:"amount"`
	// PaymentMethod specifies the payment method (e.g., "alipay").
	PaymentMethod string `json:"payment_method"`
	// ReturnURL is the optional custom URL to redirect after successful payment.
	// If empty, defaults to the server's console log page.
	ReturnURL *string `json:"return_url,omitempty"`
}

AlipayPayRequest represents a payment request for Alipay checkout.

type AlipayReconcileItem

type AlipayReconcileItem struct {
	OutTradeNo   string `json:"out_trade_no"`
	UserId       int    `json:"user_id"`
	Money        string `json:"money"`
	AlipayStatus string `json:"alipay_status"`
	Paid         bool   `json:"paid"`
	Completed    bool   `json:"completed"`
	Note         string `json:"note"`
}

AlipayReconcileItem 单条对账结果

func ReconcilePendingAlipayOrders

func ReconcilePendingAlipayOrders() ([]AlipayReconcileItem, error)

ReconcilePendingAlipayOrders 主动对账:查询所有 pending 的支付宝订单在支付宝侧的真实交易状态, 对已付款但未到账的订单调用 model.RechargeAlipay 完成入账(含配额、赠送、返利)。 作为异步通知失败时的兜底,确保充值自动到账,无需人工补单。

type BindPhoneRequest

type BindPhoneRequest struct {
	Phone    string `json:"phone" binding:"required,len=11"`
	Code     string `json:"code" binding:"required,len=6"`
	Password string `json:"password" binding:"omitempty,min=8,max=20"`
}

BindPhoneRequest 绑定手机号请求

type BindWeChatRequest

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

BindWeChatRequest 绑定微信请求

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 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 DiskCacheInfo

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

DiskCacheInfo 磁盘缓存目录信息

type I18nBulkRequest

type I18nBulkRequest struct {
	Locale   string            `json:"locale"`
	Messages map[string]string `json:"messages"`
}

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 LogFileInfo

type LogFileInfo struct {
	Name    string    `json:"name"`
	Size    int64     `json:"size"`
	ModTime time.Time `json:"mod_time"`
}

LogFileInfo 日志文件信息

type LogFilesResponse

type LogFilesResponse struct {
	LogDir     string        `json:"log_dir"`
	Enabled    bool          `json:"enabled"`
	FileCount  int           `json:"file_count"`
	TotalSize  int64         `json:"total_size"`
	OldestTime *time.Time    `json:"oldest_time,omitempty"`
	NewestTime *time.Time    `json:"newest_time,omitempty"`
	Files      []LogFileInfo `json:"files"`
}

LogFilesResponse 日志文件列表响应

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"`
	Value  int    `json:"value"`
	Mode   string `json:"mode"`
}

计算用户权限的辅助函数 根据用户角色生成默认的边栏配置

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
}

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 OAuthRegistrationDisabledError

type OAuthRegistrationDisabledError struct{}

func (*OAuthRegistrationDisabledError) Error

type OAuthUserDeletedError

type OAuthUserDeletedError struct{}

Error types for OAuth

func (*OAuthUserDeletedError) Error

func (e *OAuthUserDeletedError) Error() string

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 PaymentComplianceRequest

type PaymentComplianceRequest struct {
	Confirmed bool `json:"confirmed"`
}

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"`

	// MonitorEnabled 是否启用性能监控
	MonitorEnabled bool `json:"monitor_enabled"`
	// MonitorCPUThreshold CPU 使用率阈值(%)
	MonitorCPUThreshold int `json:"monitor_cpu_threshold"`
	// MonitorMemoryThreshold 内存使用率阈值(%)
	MonitorMemoryThreshold int `json:"monitor_memory_threshold"`
	// MonitorDiskThreshold 磁盘使用率阈值(%)
	MonitorDiskThreshold int `json:"monitor_disk_threshold"`
}

PerformanceConfig 性能配置

type PerformanceStats

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

PerformanceStats 性能统计信息

type QueryAlipayOrderRequest

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

QueryAlipayOrderRequest 查询订单请求

type QueryWechatOrderRequest

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

QueryWechatOrderRequest 查询订单请求

type Setup

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

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 SkillPublishRequest

type SkillPublishRequest struct {
	Name        string `json:"name"`
	Version     string `json:"version"`
	Description string `json:"description"`
	Author      string `json:"author"`
	Category    string `json:"category"`
	DownloadUrl string `json:"download_url"`
	Sha256      string `json:"sha256"`
	SizeBytes   int64  `json:"size_bytes"`
	Status      string `json:"status"`
}

SkillPublishRequest 发布技能的请求体。 服务端绝不接受前端传入的 user_id/tenant_id,本期一律写 0(公开技能)。

type TokenBatch

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

type TransferAffQuotaRequest

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

setup session & cookies and then return user info

type UiSkinRequest

type UiSkinRequest struct {
	Key         string `json:"key"`
	Name        string `json:"name"`
	Description string `json:"description"`
	Css         string `json:"css"`
	Enabled     *bool  `json:"enabled"`
	IsDefault   bool   `json:"is_default"`
	Priority    int    `json:"priority"`
}

type UnbindPhoneRequest

type UnbindPhoneRequest struct {
	Code     string `json:"code" binding:"required,len=6"`
	Password string `json:"password" binding:"required,min=8,max=20"`
}

UnbindPhoneRequest 解绑手机号请求

type UnbindWeChatRequest

type UnbindWeChatRequest struct {
	Password string `json:"password" binding:"required,min=8,max=20"`
}

UnbindWeChatRequest 解绑微信请求

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"`
	UpstreamModelUpdateNotifyEnabled *bool   `json:"upstream_model_update_notify_enabled,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 WechatAdaptor

type WechatAdaptor struct{}

WechatAdaptor implements the Wechat Pay payment adaptor.

func (*WechatAdaptor) RequestAmount

func (*WechatAdaptor) RequestAmount(c *gin.Context, req *WechatPayRequest)

RequestAmount calculates and returns the payment amount for the given request.

func (*WechatAdaptor) RequestPay

func (*WechatAdaptor) RequestPay(c *gin.Context, req *WechatPayRequest)

RequestPay creates a Wechat Pay Native order and returns the code_url.

type WechatPayRequest

type WechatPayRequest struct {
	Amount        int64   `json:"amount"`
	PaymentMethod string  `json:"payment_method"`
	ReturnURL     *string `json:"return_url,omitempty"`
}

WechatPayRequest 微信支付请求结构

type WechatReconcileItem

type WechatReconcileItem struct {
	OutTradeNo   string `json:"out_trade_no"`
	UserId       int    `json:"user_id"`
	Money        string `json:"money"`
	WechatStatus string `json:"wechat_status"`
	Paid         bool   `json:"paid"`
	Completed    bool   `json:"completed"`
	Note         string `json:"note"`
}

WechatReconcileItem 单笔微信对账明细

func ReconcilePendingWechatOrders

func ReconcilePendingWechatOrders() ([]WechatReconcileItem, error)

ReconcilePendingWechatOrders 主动对账:查询所有 pending 的微信订单在微信侧的真实交易状态, 对已付款但未到账的订单调用 model.RechargeWechat 完成入账(含配额、赠送、返利)。 作为异步通知失败时的兜底,确保充值自动到账,无需人工补单。

type WechatVerifier

type WechatVerifier interface {
	Verify(context.Context, string, string, string) error
	GetSerial(context.Context) (string, error)
}

WechatVerifier 验签器接口(公钥模式)

Jump to

Keyboard shortcuts

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