openai.go 5.3 KB

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