Skip to main content
The Go SDK and docs are currently in beta. Report issues on GitHub.
Chat completion message with role-based discrimination

Supported Types

ChatAssistantMessage

chatMessages := components.CreateChatMessagesAssistant(components.ChatAssistantMessage{/* values here */})

ChatDeveloperMessage

chatMessages := components.CreateChatMessagesDeveloper(components.ChatDeveloperMessage{/* values here */})

ChatSystemMessage

chatMessages := components.CreateChatMessagesSystem(components.ChatSystemMessage{/* values here */})

ChatToolMessage

chatMessages := components.CreateChatMessagesTool(components.ChatToolMessage{/* values here */})

ChatUserMessage

chatMessages := components.CreateChatMessagesUser(components.ChatUserMessage{/* values here */})

Union Discrimination

Use the Type field to determine which variant is active, then access the corresponding field:
switch chatMessages.Type {
	case components.ChatMessagesTypeAssistant:
		// chatMessages.ChatAssistantMessage is populated
	case components.ChatMessagesTypeDeveloper:
		// chatMessages.ChatDeveloperMessage is populated
	case components.ChatMessagesTypeSystem:
		// chatMessages.ChatSystemMessage is populated
	case components.ChatMessagesTypeTool:
		// chatMessages.ChatToolMessage is populated
	case components.ChatMessagesTypeUser:
		// chatMessages.ChatUserMessage is populated
}