constants.go 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. package aws
  2. import "strings"
  3. var awsModelIDMap = map[string]string{
  4. "claude-3-sonnet-20240229": "anthropic.claude-3-sonnet-20240229-v1:0",
  5. "claude-3-opus-20240229": "anthropic.claude-3-opus-20240229-v1:0",
  6. "claude-3-haiku-20240307": "anthropic.claude-3-haiku-20240307-v1:0",
  7. "claude-3-5-sonnet-20240620": "anthropic.claude-3-5-sonnet-20240620-v1:0",
  8. "claude-3-5-sonnet-20241022": "anthropic.claude-3-5-sonnet-20241022-v2:0",
  9. "claude-3-5-haiku-20241022": "anthropic.claude-3-5-haiku-20241022-v1:0",
  10. "claude-3-7-sonnet-20250219": "anthropic.claude-3-7-sonnet-20250219-v1:0",
  11. "claude-sonnet-4-20250514": "anthropic.claude-sonnet-4-20250514-v1:0",
  12. "claude-opus-4-20250514": "anthropic.claude-opus-4-20250514-v1:0",
  13. "claude-opus-4-1-20250805": "anthropic.claude-opus-4-1-20250805-v1:0",
  14. "claude-sonnet-4-5-20250929": "anthropic.claude-sonnet-4-5-20250929-v1:0",
  15. "claude-haiku-4-5-20251001": "anthropic.claude-haiku-4-5-20251001-v1:0",
  16. "claude-opus-4-5-20251101": "anthropic.claude-opus-4-5-20251101-v1:0",
  17. "claude-opus-4-6": "anthropic.claude-opus-4-6-v1:0",
  18. // Nova models
  19. "nova-micro-v1:0": "amazon.nova-micro-v1:0",
  20. "nova-lite-v1:0": "amazon.nova-lite-v1:0",
  21. "nova-pro-v1:0": "amazon.nova-pro-v1:0",
  22. "nova-premier-v1:0": "amazon.nova-premier-v1:0",
  23. "nova-canvas-v1:0": "amazon.nova-canvas-v1:0",
  24. "nova-reel-v1:0": "amazon.nova-reel-v1:0",
  25. "nova-reel-v1:1": "amazon.nova-reel-v1:1",
  26. "nova-sonic-v1:0": "amazon.nova-sonic-v1:0",
  27. }
  28. var awsModelCanCrossRegionMap = map[string]map[string]bool{
  29. "anthropic.claude-3-sonnet-20240229-v1:0": {
  30. "us": true,
  31. "eu": true,
  32. "ap": true,
  33. },
  34. "anthropic.claude-3-opus-20240229-v1:0": {
  35. "us": true,
  36. },
  37. "anthropic.claude-3-haiku-20240307-v1:0": {
  38. "us": true,
  39. "eu": true,
  40. "ap": true,
  41. },
  42. "anthropic.claude-3-5-sonnet-20240620-v1:0": {
  43. "us": true,
  44. "eu": true,
  45. "ap": true,
  46. },
  47. "anthropic.claude-3-5-sonnet-20241022-v2:0": {
  48. "us": true,
  49. "ap": true,
  50. },
  51. "anthropic.claude-3-5-haiku-20241022-v1:0": {
  52. "us": true,
  53. },
  54. "anthropic.claude-3-7-sonnet-20250219-v1:0": {
  55. "us": true,
  56. "ap": true,
  57. "eu": true,
  58. },
  59. "anthropic.claude-sonnet-4-20250514-v1:0": {
  60. "us": true,
  61. "ap": true,
  62. "eu": true,
  63. },
  64. "anthropic.claude-opus-4-20250514-v1:0": {
  65. "us": true,
  66. },
  67. "anthropic.claude-opus-4-1-20250805-v1:0": {
  68. "us": true,
  69. },
  70. "anthropic.claude-sonnet-4-5-20250929-v1:0": {
  71. "us": true,
  72. "ap": true,
  73. "eu": true,
  74. },
  75. "anthropic.claude-opus-4-5-20251101-v1:0": {
  76. "us": true,
  77. "ap": true,
  78. "eu": true,
  79. },
  80. "anthropic.claude-opus-4-6-v1:0": {
  81. "us": true,
  82. "ap": true,
  83. "eu": true,
  84. },
  85. "anthropic.claude-haiku-4-5-20251001-v1:0": {
  86. "us": true,
  87. "ap": true,
  88. "eu": true,
  89. },
  90. // Nova models - all support three major regions
  91. "amazon.nova-micro-v1:0": {
  92. "us": true,
  93. "eu": true,
  94. "apac": true,
  95. },
  96. "amazon.nova-lite-v1:0": {
  97. "us": true,
  98. "eu": true,
  99. "apac": true,
  100. },
  101. "amazon.nova-pro-v1:0": {
  102. "us": true,
  103. "eu": true,
  104. "apac": true,
  105. },
  106. "amazon.nova-premier-v1:0": {
  107. "us": true,
  108. },
  109. "amazon.nova-canvas-v1:0": {
  110. "us": true,
  111. "eu": true,
  112. "apac": true,
  113. },
  114. "amazon.nova-reel-v1:0": {
  115. "us": true,
  116. "eu": true,
  117. "apac": true,
  118. },
  119. "amazon.nova-reel-v1:1": {
  120. "us": true,
  121. },
  122. "amazon.nova-sonic-v1:0": {
  123. "us": true,
  124. "eu": true,
  125. "apac": true,
  126. },
  127. }
  128. var awsRegionCrossModelPrefixMap = map[string]string{
  129. "us": "us",
  130. "eu": "eu",
  131. "ap": "apac",
  132. }
  133. var ChannelName = "aws"
  134. // 判断是否为Nova模型
  135. func isNovaModel(modelId string) bool {
  136. return strings.Contains(modelId, "nova-")
  137. }