package claude import "github.com/QuantumNous/new-api/relaykit/dto" func MapOpenAIToolChoice(toolChoice any, parallelToolCalls *bool) *dto.ClaudeToolChoice { var claudeToolChoice *dto.ClaudeToolChoice if toolChoiceStr, ok := toolChoice.(string); ok { switch toolChoiceStr { case "auto": claudeToolChoice = &dto.ClaudeToolChoice{ Type: "auto", } case "required": claudeToolChoice = &dto.ClaudeToolChoice{ Type: "any", } case "none": claudeToolChoice = &dto.ClaudeToolChoice{ Type: "none", } } } else if toolChoiceMap, ok := toolChoice.(map[string]interface{}); ok { if function, ok := toolChoiceMap["function"].(map[string]interface{}); ok { if toolName, ok := function["name"].(string); ok { claudeToolChoice = &dto.ClaudeToolChoice{ Type: "tool", Name: toolName, } } } } if parallelToolCalls != nil { if claudeToolChoice == nil { claudeToolChoice = &dto.ClaudeToolChoice{ Type: "auto", } } if claudeToolChoice.Type != "none" { claudeToolChoice.DisableParallelToolUse = !*parallelToolCalls } } return claudeToolChoice }