33 lines
1.4 KiB
Go
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 兼容
|
|
}
|
|
}
|