feat: publish sanitized custom.97 source
This commit is contained in:
1022 files changed
+69903
-19207
No files matched your search
@@ -0,0 +1,37 @@
|
||||
package deepseek
|
||||
|
||||
import (
|
||||
"github.com/QuantumNous/new-api/relaykit/dto"
|
||||
|
||||
"github.com/tidwall/gjson"
|
||||
)
|
||||
|
||||
// responsesToolUsage bills the Search and Fetch API calls DeepSeek runs for
|
||||
// the Responses web_search tool from the web_search_call items of the whole
|
||||
// response (output on non-stream bodies, response.output on terminal stream
|
||||
// frames); its usage reports tokens only. An open_page action is a Fetch call,
|
||||
// any other action a Search call, and a failed call is free. The counts
|
||||
// replace the web_search_call items counted under the Search key while the
|
||||
// stream was running. An empty output proves nothing, so those counts stay.
|
||||
func responsesToolUsage(raw []byte) map[string]int {
|
||||
output := gjson.GetBytes(raw, "output")
|
||||
if !output.Exists() {
|
||||
output = gjson.GetBytes(raw, "response.output")
|
||||
}
|
||||
items := output.Array()
|
||||
if !output.IsArray() || len(items) == 0 {
|
||||
return nil
|
||||
}
|
||||
counts := map[string]int{SearchToolPriceKey: 0, FetchToolPriceKey: 0}
|
||||
for _, item := range items {
|
||||
if item.Get("type").String() != dto.BuildInCallWebSearchCall || item.Get("status").String() != "completed" {
|
||||
continue
|
||||
}
|
||||
if item.Get("action.type").String() == "open_page" {
|
||||
counts[FetchToolPriceKey]++
|
||||
} else {
|
||||
counts[SearchToolPriceKey]++
|
||||
}
|
||||
}
|
||||
return counts
|
||||
}
|
||||
Reference in new issue
Block a user