Skip to main content
The Go SDK and docs are currently in beta. Report issues on GitHub.
Tool choice configuration

Supported Types

ChatToolChoiceNone

chatToolChoice := components.CreateChatToolChoiceChatToolChoiceNone(components.ChatToolChoiceNone{/* values here */})

ChatToolChoiceAuto

chatToolChoice := components.CreateChatToolChoiceChatToolChoiceAuto(components.ChatToolChoiceAuto{/* values here */})

ChatToolChoiceRequired

chatToolChoice := components.CreateChatToolChoiceChatToolChoiceRequired(components.ChatToolChoiceRequired{/* values here */})

ChatNamedToolChoice

chatToolChoice := components.CreateChatToolChoiceChatNamedToolChoice(components.ChatNamedToolChoice{/* values here */})

ChatServerToolChoice

chatToolChoice := components.CreateChatToolChoiceChatServerToolChoice(components.ChatServerToolChoice{/* values here */})

Union Discrimination

Use the Type field to determine which variant is active, then access the corresponding field:
switch chatToolChoice.Type {
	case components.ChatToolChoiceTypeChatToolChoiceNone:
		// chatToolChoice.ChatToolChoiceNone is populated
	case components.ChatToolChoiceTypeChatToolChoiceAuto:
		// chatToolChoice.ChatToolChoiceAuto is populated
	case components.ChatToolChoiceTypeChatToolChoiceRequired:
		// chatToolChoice.ChatToolChoiceRequired is populated
	case components.ChatToolChoiceTypeChatNamedToolChoice:
		// chatToolChoice.ChatNamedToolChoice is populated
	case components.ChatToolChoiceTypeChatServerToolChoice:
		// chatToolChoice.ChatServerToolChoice is populated
}