🎨 优化ai调用接口为统一格式
This commit is contained in:
@@ -119,6 +119,9 @@ func Routers() *gin.Engine {
|
|||||||
// 注册业务路由
|
// 注册业务路由
|
||||||
initBizRouter(PrivateGroup, PublicGroup)
|
initBizRouter(PrivateGroup, PublicGroup)
|
||||||
|
|
||||||
|
// 在根路径下注册 AI 通用接口路由(不带 /api 前缀,走 /v1/**)
|
||||||
|
router.RouterGroupApp.App.InitAiProxyRootRouter(Router)
|
||||||
|
|
||||||
// 前端静态文件服务(放在最后,作为兜底路由)
|
// 前端静态文件服务(放在最后,作为兜底路由)
|
||||||
setupFrontendRoutes(Router)
|
setupFrontendRoutes(Router)
|
||||||
|
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import (
|
|||||||
|
|
||||||
type AiProxyRouter struct{}
|
type AiProxyRouter struct{}
|
||||||
|
|
||||||
|
// InitAiProxyRouter 使用业务路由组(通常带有 /api 前缀),供后台管理前端调用
|
||||||
func (s *AiProxyRouter) InitAiProxyRouter(Router *gin.RouterGroup) {
|
func (s *AiProxyRouter) InitAiProxyRouter(Router *gin.RouterGroup) {
|
||||||
aiProxyRouter := Router.Group("v1").Use(middleware.AiAuth())
|
aiProxyRouter := Router.Group("v1").Use(middleware.AiAuth())
|
||||||
aiProxyApi := v1.ApiGroupApp.AppApiGroup.AiProxyApi
|
aiProxyApi := v1.ApiGroupApp.AppApiGroup.AiProxyApi
|
||||||
@@ -17,3 +18,15 @@ func (s *AiProxyRouter) InitAiProxyRouter(Router *gin.RouterGroup) {
|
|||||||
aiProxyRouter.POST("messages", aiProxyApi.ClaudeMessages) // Claude 兼容
|
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 兼容
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user