Преглед изворни кода

fix: enhance tool usage parsing with additional nil checks and error logging

HynoR пре 6 месеци
родитељ
комит
a77a88308a
1 измењених фајлова са 4 додато и 1 уклоњено
  1. 4 1
      relay/channel/openai/relay_responses.go

+ 4 - 1
relay/channel/openai/relay_responses.go

@@ -46,10 +46,13 @@ func OaiResponsesHandler(c *gin.Context, info *relaycommon.RelayInfo, resp *http
 			usage.PromptTokensDetails.CachedTokens = responsesResponse.Usage.InputTokensDetails.CachedTokens
 		}
 	}
+	if info == nil || info.ResponsesUsageInfo == nil || info.ResponsesUsageInfo.BuiltInTools == nil {
+		return &usage, nil
+	}
 	// 解析 Tools 用量
 	for _, tool := range responsesResponse.Tools {
 		buildToolinfo, ok := info.ResponsesUsageInfo.BuiltInTools[common.Interface2String(tool["type"])]
-		if !ok {
+		if !ok || buildToolinfo == nil {
 			logger.LogError(c, fmt.Sprintf("BuiltInTools not found for tool type: %v", tool["type"]))
 			continue
 		}