fix: add error handling for missing built-in tools and validate response in stream handler
This commit is contained in:
@@ -48,7 +48,12 @@ func OaiResponsesHandler(c *gin.Context, info *relaycommon.RelayInfo, resp *http
|
|||||||
}
|
}
|
||||||
// 解析 Tools 用量
|
// 解析 Tools 用量
|
||||||
for _, tool := range responsesResponse.Tools {
|
for _, tool := range responsesResponse.Tools {
|
||||||
info.ResponsesUsageInfo.BuiltInTools[common.Interface2String(tool["type"])].CallCount++
|
buildToolinfo, ok := info.ResponsesUsageInfo.BuiltInTools[common.Interface2String(tool["type"])]
|
||||||
|
if !ok {
|
||||||
|
logger.LogError(c, fmt.Sprintf("BuiltInTools not found for tool type: %v", tool["type"]))
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
buildToolinfo.CallCount++
|
||||||
}
|
}
|
||||||
return &usage, nil
|
return &usage, nil
|
||||||
}
|
}
|
||||||
@@ -72,7 +77,7 @@ func OaiResponsesStreamHandler(c *gin.Context, info *relaycommon.RelayInfo, resp
|
|||||||
sendResponsesStreamData(c, streamResponse, data)
|
sendResponsesStreamData(c, streamResponse, data)
|
||||||
switch streamResponse.Type {
|
switch streamResponse.Type {
|
||||||
case "response.completed":
|
case "response.completed":
|
||||||
if streamResponse.Response.Usage != nil {
|
if streamResponse.Response != nil && streamResponse.Response.Usage != nil {
|
||||||
if streamResponse.Response.Usage.InputTokens != 0 {
|
if streamResponse.Response.Usage.InputTokens != 0 {
|
||||||
usage.PromptTokens = streamResponse.Response.Usage.InputTokens
|
usage.PromptTokens = streamResponse.Response.Usage.InputTokens
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user