1package models
  2
  3const (
  4	ProviderAnthropic InferenceProvider = "anthropic"
  5
  6	// Models
  7	Claude35Sonnet ModelID = "claude-3.5-sonnet"
  8	Claude3Haiku   ModelID = "claude-3-haiku"
  9	Claude37Sonnet ModelID = "claude-3.7-sonnet"
 10	Claude35Haiku  ModelID = "claude-3.5-haiku"
 11	Claude3Opus    ModelID = "claude-3-opus"
 12	Claude4Opus    ModelID = "claude-4-opus"
 13	Claude4Sonnet  ModelID = "claude-4-sonnet"
 14)
 15
 16// https://docs.anthropic.com/en/docs/about-claude/models/all-models
 17var AnthropicModels = map[ModelID]Model{
 18	Claude35Sonnet: {
 19		ID:                  Claude35Sonnet,
 20		Name:                "Claude 3.5 Sonnet",
 21		Provider:            ProviderAnthropic,
 22		APIModel:            "claude-3-5-sonnet-latest",
 23		CostPer1MIn:         3.0,
 24		CostPer1MInCached:   3.75,
 25		CostPer1MOutCached:  0.30,
 26		CostPer1MOut:        15.0,
 27		ContextWindow:       200000,
 28		DefaultMaxTokens:    5000,
 29		SupportsAttachments: true,
 30	},
 31	Claude3Haiku: {
 32		ID:                  Claude3Haiku,
 33		Name:                "Claude 3 Haiku",
 34		Provider:            ProviderAnthropic,
 35		APIModel:            "claude-3-haiku-20240307", // doesn't support "-latest"
 36		CostPer1MIn:         0.25,
 37		CostPer1MInCached:   0.30,
 38		CostPer1MOutCached:  0.03,
 39		CostPer1MOut:        1.25,
 40		ContextWindow:       200000,
 41		DefaultMaxTokens:    4096,
 42		SupportsAttachments: true,
 43	},
 44	Claude37Sonnet: {
 45		ID:                  Claude37Sonnet,
 46		Name:                "Claude 3.7 Sonnet",
 47		Provider:            ProviderAnthropic,
 48		APIModel:            "claude-3-7-sonnet-latest",
 49		CostPer1MIn:         3.0,
 50		CostPer1MInCached:   3.75,
 51		CostPer1MOutCached:  0.30,
 52		CostPer1MOut:        15.0,
 53		ContextWindow:       200000,
 54		DefaultMaxTokens:    50000,
 55		CanReason:           true,
 56		SupportsAttachments: true,
 57	},
 58	Claude35Haiku: {
 59		ID:                  Claude35Haiku,
 60		Name:                "Claude 3.5 Haiku",
 61		Provider:            ProviderAnthropic,
 62		APIModel:            "claude-3-5-haiku-latest",
 63		CostPer1MIn:         0.80,
 64		CostPer1MInCached:   1.0,
 65		CostPer1MOutCached:  0.08,
 66		CostPer1MOut:        4.0,
 67		ContextWindow:       200000,
 68		DefaultMaxTokens:    4096,
 69		SupportsAttachments: true,
 70	},
 71	Claude3Opus: {
 72		ID:                  Claude3Opus,
 73		Name:                "Claude 3 Opus",
 74		Provider:            ProviderAnthropic,
 75		APIModel:            "claude-3-opus-latest",
 76		CostPer1MIn:         15.0,
 77		CostPer1MInCached:   18.75,
 78		CostPer1MOutCached:  1.50,
 79		CostPer1MOut:        75.0,
 80		ContextWindow:       200000,
 81		DefaultMaxTokens:    4096,
 82		SupportsAttachments: true,
 83	},
 84	Claude4Sonnet: {
 85		ID:                  Claude4Sonnet,
 86		Name:                "Claude 4 Sonnet",
 87		Provider:            ProviderAnthropic,
 88		APIModel:            "claude-sonnet-4-20250514",
 89		CostPer1MIn:         3.0,
 90		CostPer1MInCached:   3.75,
 91		CostPer1MOutCached:  0.30,
 92		CostPer1MOut:        15.0,
 93		ContextWindow:       200000,
 94		DefaultMaxTokens:    50000,
 95		CanReason:           true,
 96		SupportsAttachments: true,
 97	},
 98	Claude4Opus: {
 99		ID:                  Claude4Opus,
100		Name:                "Claude 4 Opus",
101		Provider:            ProviderAnthropic,
102		APIModel:            "claude-opus-4-20250514",
103		CostPer1MIn:         15.0,
104		CostPer1MInCached:   18.75,
105		CostPer1MOutCached:  1.50,
106		CostPer1MOut:        75.0,
107		ContextWindow:       200000,
108		DefaultMaxTokens:    4096,
109		SupportsAttachments: true,
110	},
111}