Browse Source

feat: add reasoning effort logging and display

- Add `ReasoningEffort` field to `RelayInfo` struct
- Update log generation to include reasoning effort in admin info
- Modify logs table component to display reasoning effort when available
- Preserve reasoning effort information during request processing
1808837298@qq.com 1 year ago
parent
commit
834ceda827

+ 2 - 1
relay/channel/openai/adaptor.go

@@ -127,7 +127,8 @@ func (a *Adaptor) ConvertRequest(c *gin.Context, info *relaycommon.RelayInfo, re
 			request.ReasoningEffort = "medium"
 			request.Model = strings.TrimSuffix(request.Model, "-medium")
 		}
-		info.UpstreamModelName = request.Model
+		info.ReasoningEffort = request.ReasoningEffort
+		//info.UpstreamModelName = request.Model
 	}
 	if request.Model == "o1" || request.Model == "o1-2024-12-17" || strings.HasPrefix(request.Model, "o3") {
 		//修改第一个Message的内容,将system改为developer

+ 1 - 0
relay/common/relay_info.go

@@ -45,6 +45,7 @@ type RelayInfo struct {
 	RealtimeTools        []dto.RealTimeTool
 	IsFirstRequest       bool
 	AudioUsage           bool
+	ReasoningEffort      string
 	ChannelSetting       map[string]interface{}
 }
 

+ 3 - 0
service/log_info_generate.go

@@ -15,6 +15,9 @@ func GenerateTextOtherInfo(ctx *gin.Context, relayInfo *relaycommon.RelayInfo, m
 	other["frt"] = float64(relayInfo.FirstResponseTime.UnixMilli() - relayInfo.StartTime.UnixMilli())
 	adminInfo := make(map[string]interface{})
 	adminInfo["use_channel"] = ctx.GetStringSlice("use_channel")
+	if relayInfo.ReasoningEffort != "" {
+		adminInfo["reasoning_effort"] = relayInfo.ReasoningEffort
+	}
 	other["admin_info"] = adminInfo
 	return other
 }

+ 6 - 1
web/src/components/LogsTable.js

@@ -608,7 +608,12 @@ const LogsTable = () => {
           key: t('计费过程'),
           value: content,
         });
-
+        if (other?.reasoning_effort) {
+          expandDataLocal.push({
+            key: t('Reasoning Effort'),
+            value: other.reasoning_effort,
+          });
+        }
       }
       expandDatesLocal[logs[i].key] = expandDataLocal;
     }