From d0f1f598c9ca1d2b119f67113efaa6028e46ad1f Mon Sep 17 00:00:00 2001 From: Max Date: Tue, 11 Nov 2025 11:28:59 +0800 Subject: [PATCH] Refactor GinCreateCompletions function to remove commented-out code - Cleaned up the GinCreateCompletions function by commenting out extensive debug print statements and session ID handling logic. - Improved code readability and maintainability by streamlining the function's structure while preserving its core functionality. --- openapi/chat/completions.go | 136 +++++++++++++++++------------------- 1 file changed, 66 insertions(+), 70 deletions(-) diff --git a/openapi/chat/completions.go b/openapi/chat/completions.go index 66d39e80..63fd8c12 100644 --- a/openapi/chat/completions.go +++ b/openapi/chat/completions.go @@ -2,13 +2,10 @@ package chat import ( "bytes" - "crypto/md5" - "encoding/hex" "fmt" "io" "github.com/gin-gonic/gin" - "github.com/google/uuid" "github.com/yaoapp/yao/agent" "github.com/yaoapp/yao/agent/context" "github.com/yaoapp/yao/openapi/response" @@ -47,86 +44,85 @@ func GinCreateCompletions(c *gin.Context) { fmt.Println("-----------------------------------------------") c.JSON(response.StatusOK, gin.H{"message": "Create Completions", "chat_id": ctx.ChatID}) - return - // Print headers - fmt.Println("\n--- Headers ---") - for key, values := range c.Request.Header { - for _, value := range values { - fmt.Printf("%s: %s\n", key, value) - } - } + // // Print headers + // fmt.Println("\n--- Headers ---") + // for key, values := range c.Request.Header { + // for _, value := range values { + // fmt.Printf("%s: %s\n", key, value) + // } + // } - // Print path parameters - fmt.Println("\n--- Path Parameters ---") - for _, param := range c.Params { - fmt.Printf("%s: %s\n", param.Key, param.Value) - } + // // Print path parameters + // fmt.Println("\n--- Path Parameters ---") + // for _, param := range c.Params { + // fmt.Printf("%s: %s\n", param.Key, param.Value) + // } - // Print query parameters - fmt.Println("\n--- Query Parameters ---") - for key, values := range c.Request.URL.Query() { - for _, value := range values { - fmt.Printf("%s: %s\n", key, value) - } - } + // // Print query parameters + // fmt.Println("\n--- Query Parameters ---") + // for key, values := range c.Request.URL.Query() { + // for _, value := range values { + // fmt.Printf("%s: %s\n", key, value) + // } + // } - // Print request body - fmt.Println("\n--- Request Body ---") - body, err = io.ReadAll(c.Request.Body) - if err != nil { - fmt.Printf("Error reading body: %v\n", err) - } else { - fmt.Printf("%s\n", string(body)) - // Restore the body for further processing - c.Request.Body = io.NopCloser(bytes.NewBuffer(body)) - } - fmt.Println("===============================================") + // // Print request body + // fmt.Println("\n--- Request Body ---") + // body, err = io.ReadAll(c.Request.Body) + // if err != nil { + // fmt.Printf("Error reading body: %v\n", err) + // } else { + // fmt.Printf("%s\n", string(body)) + // // Restore the body for further processing + // c.Request.Body = io.NopCloser(bytes.NewBuffer(body)) + // } + // fmt.Println("===============================================") - // Handle Sid - try multiple methods for maximum compatibility - var sid string + // // Handle Sid - try multiple methods for maximum compatibility + // var sid string - // Method 1: Check if client sent X-Session-Id header - sid = c.GetHeader("X-Session-Id") + // // Method 1: Check if client sent X-Session-Id header + // sid = c.GetHeader("X-Session-Id") - // Method 2: Try to read from cookie - if sid == "" { - sid, err = c.Cookie("Sid") - if err == nil && sid != "" { - fmt.Printf("Existing Sid from cookie: %s\n", sid) - } - } else { - fmt.Printf("Existing Sid from header: %s\n", sid) - } + // // Method 2: Try to read from cookie + // if sid == "" { + // sid, err = c.Cookie("Sid") + // if err == nil && sid != "" { + // fmt.Printf("Existing Sid from cookie: %s\n", sid) + // } + // } else { + // fmt.Printf("Existing Sid from header: %s\n", sid) + // } - // Method 3: For clients that can't store cookies/headers (like Electron cross-origin), - // generate a deterministic session ID based on client fingerprint - if sid == "" { - // Use Authorization token if available (most stable identifier) - authToken := c.GetHeader("Authorization") - userAgent := c.GetHeader("User-Agent") + // // Method 3: For clients that can't store cookies/headers (like Electron cross-origin), + // // generate a deterministic session ID based on client fingerprint + // if sid == "" { + // // Use Authorization token if available (most stable identifier) + // authToken := c.GetHeader("Authorization") + // userAgent := c.GetHeader("User-Agent") - if authToken != "" { - // Generate stable session ID from auth token - hash := md5.Sum([]byte(authToken)) - sid = hex.EncodeToString(hash[:]) - fmt.Printf("Generated deterministic Sid from auth token: %s\n", sid) - } else { - // Fallback: generate random UUID - sid = uuid.New().String() - fmt.Printf("Generated random Sid: %s\n", sid) - } + // if authToken != "" { + // // Generate stable session ID from auth token + // hash := md5.Sum([]byte(authToken)) + // sid = hex.EncodeToString(hash[:]) + // fmt.Printf("Generated deterministic Sid from auth token: %s\n", sid) + // } else { + // // Fallback: generate random UUID + // sid = uuid.New().String() + // fmt.Printf("Generated random Sid: %s\n", sid) + // } - fmt.Printf("Client fingerprint - UserAgent: %s\n", userAgent) - } + // fmt.Printf("Client fingerprint - UserAgent: %s\n", userAgent) + // } - // Try to set cookie (may not work for cross-origin, but doesn't hurt) - c.SetCookie("Sid", sid, 86400*30, "/", "", false, false) + // // Try to set cookie (may not work for cross-origin, but doesn't hurt) + // c.SetCookie("Sid", sid, 86400*30, "/", "", false, false) - // Return Sid in response header and body for client reference - c.Header("X-Session-Id", sid) + // // Return Sid in response header and body for client reference + // c.Header("X-Session-Id", sid) - response.RespondWithSuccess(c, response.StatusOK, gin.H{"message": "Create Completions", "sid": sid}) + // response.RespondWithSuccess(c, response.StatusOK, gin.H{"message": "Create Completions", "sid": sid}) } // GinUpdateCompletions handles PUT /chat/:assistant_id/completions - Update a chat completion metadata