Files
dify-plus/admin/server/router/gaia/system.go
T
2026-03-11 12:05:53 +08:00

53 lines
2.7 KiB
Go

package gaia
import (
"github.com/gin-gonic/gin"
)
type SystemRouter struct{}
// InitSystemRouter 初始化系统路由
func (s *SystemRouter) InitSystemRouter(Router *gin.RouterGroup) {
systemRouter := Router.Group("gaia/system")
{
systemRouter.GET("dingtalk", systemApi.GetDingTalk) // 获取钉钉系统配置
systemRouter.POST("dingtalk", systemApi.SetDingTalk) // 设置钉钉系统配置
systemRouter.GET("dingtalk/test-auth-url", systemApi.GetDingTalkTestAuthURL) // 测试连接:获取钉钉授权 URL
systemRouter.POST("dingtalk/test-callback", systemApi.DingTalkTestCallback) // 测试连接:回调验证 code
systemRouter.GET("oauth2", systemOAuth2Api.GetOAuth2Config) // 获取 OAuth2 配置
systemRouter.POST("oauth2", systemOAuth2Api.SetOAuth2Config) // 设置 OAuth2 配置
// 邮箱 API 配置测试
systemRouter.POST("dingtalk/test-email-config", systemApi.TestEmailApiConfig) // 测试第三方邮箱 API 配置
// 转发 Token 管理
systemRouter.GET("forward-tokens", systemApi.GetForwardTokens) // 获取转发 Token 列表
systemRouter.POST("forward-tokens", systemApi.CreateForwardToken) // 新增转发 Token
systemRouter.DELETE("forward-tokens/:id", systemApi.DeleteForwardToken) // 删除转发 Token
}
}
// InitForwardProxyRouter 初始化 GPT 转发代理路由
func (s *SystemRouter) InitForwardProxyRouter(PublicRouter *gin.RouterGroup) {
// 免 JWT 转发入口,通过 forwarding token + ding_id 鉴权
PublicRouter.Any("gaia/forward/proxy/*path", forwardProxyApi.ForwardProxy)
}
// InitModelProviderRouter 初始化模型提供商路由
func (s *SystemRouter) InitModelProviderRouter(Router *gin.RouterGroup) {
// 管理端 API(需要 JWT 认证)
modelProviderRouter := Router.Group("gaia/model-provider")
{
modelProviderRouter.GET("list", modelProviderApi.GetProviderList) // 获取提供商配置列表
modelProviderRouter.POST("update", modelProviderApi.UpdateProviderConfig) // 更新提供商配置
modelProviderRouter.GET("available-models", modelProviderApi.GetAvailableModels) // 获取可用模型
modelProviderRouter.GET("test-credentials", modelProviderApi.TestProviderCredentials) // 测试凭证
modelProviderRouter.GET("logs", modelProviderApi.GetProxyLogs) // 获取代理日志
}
// 第三方 API(需要 JWT 认证)
gaiaRouter := Router.Group("gaia")
{
gaiaRouter.GET("models", modelProviderApi.GetModels) // 获取开启的模型列表(OpenAI 格式)
gaiaRouter.Any("proxy/*path", modelProviderApi.Proxy) // 通用中转 API:按路径转发(v1/chat/completions、v1/messages、v1/images/generations、v1/embeddings 等)
}
}