From 64f7349fca69f12d06e1ddbb9ce6bd3774ccdb86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=96=E7=95=8C?= Date: Sat, 14 Mar 2026 15:52:27 +0800 Subject: [PATCH] service/ocm: unify websocket logging with HTTP request logging --- service/ocm/service_websocket.go | 37 ++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 16 deletions(-) diff --git a/service/ocm/service_websocket.go b/service/ocm/service_websocket.go index 2f4911959..365472f59 100644 --- a/service/ocm/service_websocket.go +++ b/service/ocm/service_websocket.go @@ -93,17 +93,6 @@ func (s *Service) handleWebSocket( credentialFilter func(credential) bool, isNew bool, ) { - if isNew { - logParts := []any{"assigned credential ", selectedCredential.tagName()} - if sessionID != "" { - logParts = append(logParts, " for session ", sessionID) - } - if username != "" { - logParts = append(logParts, " by user ", username) - } - s.logger.Debug(logParts...) - } - var ( err error upstreamConn net.Conn @@ -256,7 +245,7 @@ func (s *Service) handleWebSocket( go func() { defer waitGroup.Done() defer session.Close() - s.proxyWebSocketClientToUpstream(clientConn, upstreamConn, selectedCredential, modelChannel) + s.proxyWebSocketClientToUpstream(clientConn, upstreamConn, selectedCredential, modelChannel, isNew, username, sessionID) }() go func() { defer waitGroup.Done() @@ -266,7 +255,8 @@ func (s *Service) handleWebSocket( waitGroup.Wait() } -func (s *Service) proxyWebSocketClientToUpstream(clientConn net.Conn, upstreamConn net.Conn, selectedCredential credential, modelChannel chan<- string) { +func (s *Service) proxyWebSocketClientToUpstream(clientConn net.Conn, upstreamConn net.Conn, selectedCredential credential, modelChannel chan<- string, isNew bool, username string, sessionID string) { + logged := false for { data, opCode, err := wsutil.ReadClientData(clientConn) if err != nil { @@ -278,11 +268,26 @@ func (s *Service) proxyWebSocketClientToUpstream(clientConn net.Conn, upstreamCo if opCode == ws.OpText { var request struct { - Type string `json:"type"` - Model string `json:"model"` + Type string `json:"type"` + Model string `json:"model"` + ServiceTier string `json:"service_tier"` } if json.Unmarshal(data, &request) == nil && request.Type == "response.create" && request.Model != "" { - s.logger.Debug("model=", request.Model) + if isNew && !logged { + logged = true + logParts := []any{"assigned credential ", selectedCredential.tagName()} + if sessionID != "" { + logParts = append(logParts, " for session ", sessionID) + } + if username != "" { + logParts = append(logParts, " by user ", username) + } + logParts = append(logParts, ", model=", request.Model) + if request.ServiceTier == "priority" { + logParts = append(logParts, ", fast") + } + s.logger.Debug(logParts...) + } if selectedCredential.usageTrackerOrNil() != nil { select { case modelChannel <- request.Model: