🎨 优化ai调用接口为统一格式

This commit is contained in:
2026-03-04 02:22:31 +08:00
parent 1526acc85f
commit ae73298bbf
2 changed files with 16 additions and 0 deletions

View File

@@ -119,6 +119,9 @@ func Routers() *gin.Engine {
// 注册业务路由
initBizRouter(PrivateGroup, PublicGroup)
// 在根路径下注册 AI 通用接口路由(不带 /api 前缀,走 /v1/**
router.RouterGroupApp.App.InitAiProxyRootRouter(Router)
// 前端静态文件服务(放在最后,作为兜底路由)
setupFrontendRoutes(Router)

View File

@@ -8,6 +8,7 @@ import (
type AiProxyRouter struct{}
// InitAiProxyRouter 使用业务路由组(通常带有 /api 前缀),供后台管理前端调用
func (s *AiProxyRouter) InitAiProxyRouter(Router *gin.RouterGroup) {
aiProxyRouter := Router.Group("v1").Use(middleware.AiAuth())
aiProxyApi := v1.ApiGroupApp.AppApiGroup.AiProxyApi
@@ -17,3 +18,15 @@ func (s *AiProxyRouter) InitAiProxyRouter(Router *gin.RouterGroup) {
aiProxyRouter.POST("messages", aiProxyApi.ClaudeMessages) // Claude 兼容
}
}
// InitAiProxyRootRouter 在根路径下注册 AI 相关的通用接口,路径为 /v1/**
// 这样可以对外提供标准的 OpenAI/Claude 兼容地址:/v1/models、/v1/chat/completions、/v1/messages
func (s *AiProxyRouter) InitAiProxyRootRouter(engine *gin.Engine) {
aiProxyRouter := engine.Group("/v1").Use(middleware.AiAuth())
aiProxyApi := v1.ApiGroupApp.AppApiGroup.AiProxyApi
{
aiProxyRouter.GET("/models", aiProxyApi.ListModels) // 获取模型列表
aiProxyRouter.POST("/chat/completions", aiProxyApi.ChatCompletions) // OpenAI 兼容
aiProxyRouter.POST("/messages", aiProxyApi.ClaudeMessages) // Claude 兼容
}
}