Files
ai_proxy/server/router/app/ai_proxy.go
2026-03-04 02:22:31 +08:00

33 lines
1.4 KiB
Go

package app
import (
v1 "git.echol.cn/loser/ai_proxy/server/api/v1"
"git.echol.cn/loser/ai_proxy/server/middleware"
"github.com/gin-gonic/gin"
)
type AiProxyRouter struct{}
// InitAiProxyRouter 使用业务路由组(通常带有 /api 前缀),供后台管理前端调用
func (s *AiProxyRouter) InitAiProxyRouter(Router *gin.RouterGroup) {
aiProxyRouter := Router.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 兼容
}
}
// 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 兼容
}
}