openai.go 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. package models
  2. const (
  3. ProviderOpenAI ModelProvider = "openai"
  4. GPT41 ModelID = "gpt-4.1"
  5. GPT41Mini ModelID = "gpt-4.1-mini"
  6. GPT41Nano ModelID = "gpt-4.1-nano"
  7. GPT45Preview ModelID = "gpt-4.5-preview"
  8. GPT4o ModelID = "gpt-4o"
  9. GPT4oMini ModelID = "gpt-4o-mini"
  10. O1 ModelID = "o1"
  11. O1Pro ModelID = "o1-pro"
  12. O1Mini ModelID = "o1-mini"
  13. O3 ModelID = "o3"
  14. O3Mini ModelID = "o3-mini"
  15. O4Mini ModelID = "o4-mini"
  16. )
  17. var OpenAIModels = map[ModelID]Model{
  18. GPT41: {
  19. ID: GPT41,
  20. Name: "GPT 4.1",
  21. Provider: ProviderOpenAI,
  22. APIModel: "gpt-4.1",
  23. CostPer1MIn: 2.00,
  24. CostPer1MInCached: 0.50,
  25. CostPer1MOutCached: 0.0,
  26. CostPer1MOut: 8.00,
  27. ContextWindow: 1_047_576,
  28. DefaultMaxTokens: 20000,
  29. SupportsAttachments: true,
  30. },
  31. GPT41Mini: {
  32. ID: GPT41Mini,
  33. Name: "GPT 4.1 mini",
  34. Provider: ProviderOpenAI,
  35. APIModel: "gpt-4.1",
  36. CostPer1MIn: 0.40,
  37. CostPer1MInCached: 0.10,
  38. CostPer1MOutCached: 0.0,
  39. CostPer1MOut: 1.60,
  40. ContextWindow: 200_000,
  41. DefaultMaxTokens: 20000,
  42. SupportsAttachments: true,
  43. },
  44. GPT41Nano: {
  45. ID: GPT41Nano,
  46. Name: "GPT 4.1 nano",
  47. Provider: ProviderOpenAI,
  48. APIModel: "gpt-4.1-nano",
  49. CostPer1MIn: 0.10,
  50. CostPer1MInCached: 0.025,
  51. CostPer1MOutCached: 0.0,
  52. CostPer1MOut: 0.40,
  53. ContextWindow: 1_047_576,
  54. DefaultMaxTokens: 20000,
  55. SupportsAttachments: true,
  56. },
  57. GPT45Preview: {
  58. ID: GPT45Preview,
  59. Name: "GPT 4.5 preview",
  60. Provider: ProviderOpenAI,
  61. APIModel: "gpt-4.5-preview",
  62. CostPer1MIn: 75.00,
  63. CostPer1MInCached: 37.50,
  64. CostPer1MOutCached: 0.0,
  65. CostPer1MOut: 150.00,
  66. ContextWindow: 128_000,
  67. DefaultMaxTokens: 15000,
  68. SupportsAttachments: true,
  69. },
  70. GPT4o: {
  71. ID: GPT4o,
  72. Name: "GPT 4o",
  73. Provider: ProviderOpenAI,
  74. APIModel: "gpt-4o",
  75. CostPer1MIn: 2.50,
  76. CostPer1MInCached: 1.25,
  77. CostPer1MOutCached: 0.0,
  78. CostPer1MOut: 10.00,
  79. ContextWindow: 128_000,
  80. DefaultMaxTokens: 4096,
  81. SupportsAttachments: true,
  82. },
  83. GPT4oMini: {
  84. ID: GPT4oMini,
  85. Name: "GPT 4o mini",
  86. Provider: ProviderOpenAI,
  87. APIModel: "gpt-4o-mini",
  88. CostPer1MIn: 0.15,
  89. CostPer1MInCached: 0.075,
  90. CostPer1MOutCached: 0.0,
  91. CostPer1MOut: 0.60,
  92. ContextWindow: 128_000,
  93. SupportsAttachments: true,
  94. },
  95. O1: {
  96. ID: O1,
  97. Name: "O1",
  98. Provider: ProviderOpenAI,
  99. APIModel: "o1",
  100. CostPer1MIn: 15.00,
  101. CostPer1MInCached: 7.50,
  102. CostPer1MOutCached: 0.0,
  103. CostPer1MOut: 60.00,
  104. ContextWindow: 200_000,
  105. DefaultMaxTokens: 50000,
  106. CanReason: true,
  107. SupportsAttachments: true,
  108. },
  109. O1Pro: {
  110. ID: O1Pro,
  111. Name: "o1 pro",
  112. Provider: ProviderOpenAI,
  113. APIModel: "o1-pro",
  114. CostPer1MIn: 150.00,
  115. CostPer1MInCached: 0.0,
  116. CostPer1MOutCached: 0.0,
  117. CostPer1MOut: 600.00,
  118. ContextWindow: 200_000,
  119. DefaultMaxTokens: 50000,
  120. CanReason: true,
  121. SupportsAttachments: true,
  122. },
  123. O1Mini: {
  124. ID: O1Mini,
  125. Name: "o1 mini",
  126. Provider: ProviderOpenAI,
  127. APIModel: "o1-mini",
  128. CostPer1MIn: 1.10,
  129. CostPer1MInCached: 0.55,
  130. CostPer1MOutCached: 0.0,
  131. CostPer1MOut: 4.40,
  132. ContextWindow: 128_000,
  133. DefaultMaxTokens: 50000,
  134. CanReason: true,
  135. SupportsAttachments: true,
  136. },
  137. O3: {
  138. ID: O3,
  139. Name: "o3",
  140. Provider: ProviderOpenAI,
  141. APIModel: "o3",
  142. CostPer1MIn: 10.00,
  143. CostPer1MInCached: 2.50,
  144. CostPer1MOutCached: 0.0,
  145. CostPer1MOut: 40.00,
  146. ContextWindow: 200_000,
  147. CanReason: true,
  148. SupportsAttachments: true,
  149. },
  150. O3Mini: {
  151. ID: O3Mini,
  152. Name: "o3 mini",
  153. Provider: ProviderOpenAI,
  154. APIModel: "o3-mini",
  155. CostPer1MIn: 1.10,
  156. CostPer1MInCached: 0.55,
  157. CostPer1MOutCached: 0.0,
  158. CostPer1MOut: 4.40,
  159. ContextWindow: 200_000,
  160. DefaultMaxTokens: 50000,
  161. CanReason: true,
  162. SupportsAttachments: false,
  163. },
  164. O4Mini: {
  165. ID: O4Mini,
  166. Name: "o4 mini",
  167. Provider: ProviderOpenAI,
  168. APIModel: "o4-mini",
  169. CostPer1MIn: 1.10,
  170. CostPer1MInCached: 0.275,
  171. CostPer1MOutCached: 0.0,
  172. CostPer1MOut: 4.40,
  173. ContextWindow: 128_000,
  174. DefaultMaxTokens: 50000,
  175. CanReason: true,
  176. SupportsAttachments: true,
  177. },
  178. }