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

Supported Types

AutoRouterPlugin

chatRequestPlugin := components.CreateChatRequestPluginAutoRouter(components.AutoRouterPlugin{/* values here */})

ContextCompressionPlugin

chatRequestPlugin := components.CreateChatRequestPluginContextCompression(components.ContextCompressionPlugin{/* values here */})

FileParserPlugin

chatRequestPlugin := components.CreateChatRequestPluginFileParser(components.FileParserPlugin{/* values here */})

FusionPlugin

chatRequestPlugin := components.CreateChatRequestPluginFusion(components.FusionPlugin{/* values here */})

ModerationPlugin

chatRequestPlugin := components.CreateChatRequestPluginModeration(components.ModerationPlugin{/* values here */})

ParetoRouterPlugin

chatRequestPlugin := components.CreateChatRequestPluginParetoRouter(components.ParetoRouterPlugin{/* values here */})

ResponseHealingPlugin

chatRequestPlugin := components.CreateChatRequestPluginResponseHealing(components.ResponseHealingPlugin{/* values here */})

WebSearchPlugin

chatRequestPlugin := components.CreateChatRequestPluginWeb(components.WebSearchPlugin{/* values here */})

WebFetchPlugin

chatRequestPlugin := components.CreateChatRequestPluginWebFetch(components.WebFetchPlugin{/* values here */})

Union Discrimination

Use the Type field to determine which variant is active, then access the corresponding field:
switch chatRequestPlugin.Type {
	case components.ChatRequestPluginTypeAutoRouter:
		// chatRequestPlugin.AutoRouterPlugin is populated
	case components.ChatRequestPluginTypeContextCompression:
		// chatRequestPlugin.ContextCompressionPlugin is populated
	case components.ChatRequestPluginTypeFileParser:
		// chatRequestPlugin.FileParserPlugin is populated
	case components.ChatRequestPluginTypeFusion:
		// chatRequestPlugin.FusionPlugin is populated
	case components.ChatRequestPluginTypeModeration:
		// chatRequestPlugin.ModerationPlugin is populated
	case components.ChatRequestPluginTypeParetoRouter:
		// chatRequestPlugin.ParetoRouterPlugin is populated
	case components.ChatRequestPluginTypeResponseHealing:
		// chatRequestPlugin.ResponseHealingPlugin is populated
	case components.ChatRequestPluginTypeWeb:
		// chatRequestPlugin.WebSearchPlugin is populated
	case components.ChatRequestPluginTypeWebFetch:
		// chatRequestPlugin.WebFetchPlugin is populated
}