constants.go 3.8 KB

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