mirror of
https://github.com/Wei-Shaw/sub2api.git
synced 2026-09-24 16:05:44 +08:00
Merge pull request #4262 from wucm667/fix/issue-4245-root-models-alias
fix(codex): add root models compatibility alias
This commit is contained in:
@@ -42,6 +42,13 @@ func RegisterGatewayRoutes(
|
||||
isOpenAIGatewayPlatform := func(c *gin.Context) bool {
|
||||
return getGroupPlatform(c) == service.PlatformOpenAI
|
||||
}
|
||||
modelsHandler := func(c *gin.Context) {
|
||||
if isOpenAIGatewayPlatform(c) && c.Query("client_version") != "" {
|
||||
h.OpenAIGateway.CodexModels(c)
|
||||
return
|
||||
}
|
||||
h.Gateway.Models(c)
|
||||
}
|
||||
imagesHandler := func(c *gin.Context) {
|
||||
switch getGroupPlatform(c) {
|
||||
case service.PlatformOpenAI:
|
||||
@@ -140,13 +147,7 @@ func RegisterGatewayRoutes(
|
||||
// Codex CLI / Codex app refresh their model picker from the provider's
|
||||
// /models endpoint with a client_version query and expect the ChatGPT
|
||||
// Codex manifest format; other clients keep the OpenAI-style list.
|
||||
gateway.GET("/models", func(c *gin.Context) {
|
||||
if isOpenAIGatewayPlatform(c) && c.Query("client_version") != "" {
|
||||
h.OpenAIGateway.CodexModels(c)
|
||||
return
|
||||
}
|
||||
h.Gateway.Models(c)
|
||||
})
|
||||
gateway.GET("/models", modelsHandler)
|
||||
gateway.GET("/usage", h.Gateway.Usage)
|
||||
// OpenAI Responses API: auto-route based on group platform
|
||||
gateway.POST("/responses", func(c *gin.Context) {
|
||||
@@ -235,6 +236,7 @@ func RegisterGatewayRoutes(
|
||||
r.GET("/responses", bodyLimit, clientRequestID, opsErrorLogger, endpointNorm, gin.HandlerFunc(apiKeyAuth), requireGroupAnthropic, func(c *gin.Context) {
|
||||
h.OpenAIGateway.ResponsesWebSocket(c)
|
||||
})
|
||||
r.GET("/models", bodyLimit, clientRequestID, opsErrorLogger, endpointNorm, gin.HandlerFunc(apiKeyAuth), requireGroupAnthropic, modelsHandler)
|
||||
codexDirect := r.Group("/backend-api/codex")
|
||||
codexDirect.Use(bodyLimit, clientRequestID, opsErrorLogger, endpointNorm, gin.HandlerFunc(apiKeyAuth), requireGroupAnthropic)
|
||||
{
|
||||
|
||||
@@ -10,13 +10,15 @@ import (
|
||||
func TestGatewayRoutesCodexModelsManifestPathIsRegistered(t *testing.T) {
|
||||
router := newGatewayRoutesTestRouter()
|
||||
|
||||
registered := make(map[string]bool)
|
||||
registered := make(map[string]string)
|
||||
for _, route := range router.Routes() {
|
||||
if route.Method == http.MethodGet {
|
||||
registered[route.Path] = true
|
||||
registered[route.Path] = route.Handler
|
||||
}
|
||||
}
|
||||
|
||||
require.True(t, registered["/backend-api/codex/models"], "GET /backend-api/codex/models should be registered")
|
||||
require.True(t, registered["/v1/models"], "GET /v1/models should be registered")
|
||||
require.NotEmpty(t, registered["/backend-api/codex/models"], "GET /backend-api/codex/models should be registered")
|
||||
require.NotEmpty(t, registered["/v1/models"], "GET /v1/models should be registered")
|
||||
require.NotEmpty(t, registered["/models"], "GET /models should be registered")
|
||||
require.Equal(t, registered["/v1/models"], registered["/models"], "root alias should use the same platform-aware handler")
|
||||
}
|
||||
|
||||
@@ -308,6 +308,7 @@ func shouldBypassEmbeddedFrontend(path string) bool {
|
||||
strings.HasPrefix(trimmed, "/antigravity/") ||
|
||||
strings.HasPrefix(trimmed, "/setup/") ||
|
||||
trimmed == "/health" ||
|
||||
trimmed == "/models" ||
|
||||
trimmed == "/responses" ||
|
||||
strings.HasPrefix(trimmed, "/responses/") ||
|
||||
trimmed == "/alpha/search" ||
|
||||
|
||||
@@ -485,6 +485,7 @@ func TestFrontendServer_Middleware(t *testing.T) {
|
||||
|
||||
apiPaths := []string{
|
||||
"/api/v1/users",
|
||||
"/models",
|
||||
"/v1/models",
|
||||
"/v1beta/chat",
|
||||
"/backend-api/codex/responses",
|
||||
@@ -746,6 +747,7 @@ func TestServeEmbeddedFrontend(t *testing.T) {
|
||||
|
||||
apiPaths := []string{
|
||||
"/api/users",
|
||||
"/models",
|
||||
"/v1/models",
|
||||
"/v1beta/chat",
|
||||
"/backend-api/codex/responses",
|
||||
|
||||
Reference in New Issue
Block a user