Download internal/util/thinking.go from a3216/ds2api: direct link, hf CLI and curl.
- Browser
- Download file 2.19 kB
-
https://huggingface.co/spaces/a3216/ds2api/resolve/ce5a019598af8a3a8fa70d3880098df3e850ecd7/internal/util/thinking.go
- Command line
-
hf download hf://spaces/a3216/ds2api@ce5a019598af8a3a8fa70d3880098df3e850ecd7/internal/util/thinking.go
-
curl -L -o thinking.go https://huggingface.co/spaces/a3216/ds2api/resolve/ce5a019598af8a3a8fa70d3880098df3e850ecd7/internal/util/thinking.go
2.19 kB
| package util | |
| import "strings" | |
| func ResolveThinkingEnabled(req map[string]any, defaultEnabled bool) bool { | |
| if enabled, ok := ResolveThinkingOverride(req); ok { | |
| return enabled | |
| } | |
| return defaultEnabled | |
| } | |
| func ResolveThinkingOverride(req map[string]any) (bool, bool) { | |
| if req == nil { | |
| return false, false | |
| } | |
| if enabled, ok := parseThinkingSetting(req["thinking"]); ok { | |
| return enabled, true | |
| } | |
| if enabled, ok := parseReasoningSetting(req["reasoning"]); ok { | |
| return enabled, true | |
| } | |
| if extraBody, ok := req["extra_body"].(map[string]any); ok { | |
| if enabled, ok := parseThinkingSetting(extraBody["thinking"]); ok { | |
| return enabled, true | |
| } | |
| if enabled, ok := parseReasoningSetting(extraBody["reasoning"]); ok { | |
| return enabled, true | |
| } | |
| if enabled, ok := parseReasoningEffort(extraBody["reasoning_effort"]); ok { | |
| return enabled, true | |
| } | |
| } | |
| if enabled, ok := parseReasoningEffort(req["reasoning_effort"]); ok { | |
| return enabled, true | |
| } | |
| return false, false | |
| } | |
| func parseThinkingSetting(raw any) (bool, bool) { | |
| switch v := raw.(type) { | |
| case bool: | |
| return v, true | |
| case string: | |
| switch strings.ToLower(strings.TrimSpace(v)) { | |
| case "enabled", "enable", "on", "true": | |
| return true, true | |
| case "disabled", "disable", "off", "false", "none": | |
| return false, true | |
| default: | |
| return false, false | |
| } | |
| case map[string]any: | |
| if typ, ok := v["type"]; ok { | |
| return parseThinkingSetting(typ) | |
| } | |
| } | |
| return false, false | |
| } | |
| func parseReasoningSetting(raw any) (bool, bool) { | |
| switch v := raw.(type) { | |
| case bool: | |
| return v, true | |
| case string: | |
| return parseReasoningEffort(v) | |
| case map[string]any: | |
| for _, key := range []string{"effort", "type", "enabled"} { | |
| if enabled, ok := parseReasoningSetting(v[key]); ok { | |
| return enabled, true | |
| } | |
| } | |
| } | |
| return false, false | |
| } | |
| func parseReasoningEffort(raw any) (bool, bool) { | |
| switch strings.ToLower(strings.TrimSpace(toString(raw))) { | |
| case "minimal", "low", "medium", "high", "xhigh": | |
| return true, true | |
| case "none", "disabled", "disable", "off", "false": | |
| return false, true | |
| default: | |
| return false, false | |
| } | |
| } | |
| func toString(raw any) string { | |
| if s, ok := raw.(string); ok { | |
| return s | |
| } | |
| return "" | |
| } | |