generate_models_excel.py 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385
  1. import pandas as pd
  2. import os
  3. # 性能评分函数(分数越高性能越强)
  4. def get_performance_score(model_name):
  5. """根据模型名称返回性能评分"""
  6. name_lower = model_name.lower()
  7. # GPT-5.2系列(最高性能)
  8. if 'gpt-5.2-pro' in name_lower:
  9. return 100
  10. elif 'gpt-5.2' in name_lower:
  11. return 95
  12. # GPT-5.1系列
  13. elif 'gpt-5.1' in name_lower:
  14. return 90
  15. elif 'gpt-5-pro' in name_lower:
  16. return 88
  17. elif 'gpt-5' in name_lower and 'mini' not in name_lower and 'nano' not in name_lower:
  18. return 85
  19. # o1/o3/o4推理模型(高性能)
  20. elif 'o1' in name_lower and 'mini' not in name_lower:
  21. return 92
  22. elif 'o3' in name_lower:
  23. return 90
  24. elif 'o4' in name_lower:
  25. return 88
  26. elif 'o1-mini' in name_lower:
  27. return 80
  28. # Claude Opus系列(高性能)
  29. elif 'claude-opus-4-5' in name_lower:
  30. return 93
  31. elif 'claude-opus-4' in name_lower:
  32. return 91
  33. elif 'claude-opus' in name_lower:
  34. return 89
  35. # GPT-4.1系列
  36. elif 'gpt-4.1' in name_lower and 'mini' not in name_lower and 'nano' not in name_lower:
  37. return 82
  38. elif 'gpt-4.1-mini' in name_lower:
  39. return 75
  40. elif 'gpt-4.1-nano' in name_lower:
  41. return 70
  42. # Claude Sonnet系列
  43. elif 'claude-sonnet-4-5' in name_lower:
  44. return 87
  45. elif 'claude-sonnet-4' in name_lower:
  46. return 85
  47. elif 'claude-3-7-sonnet' in name_lower:
  48. return 84
  49. elif 'claude-3-5-sonnet' in name_lower:
  50. return 83
  51. # GPT-4o系列
  52. elif 'gpt-4o' in name_lower and 'mini' not in name_lower:
  53. return 80
  54. elif 'gpt-4o-mini' in name_lower:
  55. return 70
  56. # GPT-4系列
  57. elif 'gpt-4-turbo' in name_lower or 'gpt-4-vision' in name_lower:
  58. return 78
  59. elif 'gpt-4' in name_lower and 'mini' not in name_lower and 'o' not in name_lower:
  60. return 75
  61. # Gemini Pro系列
  62. elif 'gemini-3-pro' in name_lower:
  63. return 85
  64. elif 'gemini-2.5-pro' in name_lower:
  65. return 82
  66. # DeepSeek V3系列
  67. elif 'deepseek-v3.2' in name_lower or 'deepseek-v3-2' in name_lower:
  68. return 78
  69. elif 'deepseek-v3.1' in name_lower:
  70. return 76
  71. elif 'deepseek-v3' in name_lower or 'deepseek-chat' in name_lower:
  72. return 74
  73. elif 'deepseek-r1' in name_lower or 'deepseek-reasoner' in name_lower:
  74. return 77
  75. # Claude Haiku系列
  76. elif 'claude-haiku-4-5' in name_lower:
  77. return 72
  78. elif 'claude-3-5-haiku' in name_lower:
  79. return 70
  80. # Gemini Flash系列
  81. elif 'gemini-3-flash' in name_lower:
  82. return 75
  83. elif 'gemini-2.5-flash' in name_lower and 'lite' not in name_lower:
  84. return 72
  85. elif 'gemini-2.5-flash-lite' in name_lower:
  86. return 65
  87. # Qwen系列
  88. elif 'qwen3-coder-480b' in name_lower:
  89. return 76
  90. elif 'qwen3-235b' in name_lower:
  91. return 74
  92. elif 'qwen3-coder-plus' in name_lower:
  93. return 72
  94. # Kimi系列
  95. elif 'kimi-k2-thinking-turbo' in name_lower:
  96. return 78
  97. elif 'kimi-k2' in name_lower:
  98. return 75
  99. # Grok系列
  100. elif 'grok-4' in name_lower and 'fast' not in name_lower:
  101. return 73
  102. elif 'grok-4-fast' in name_lower:
  103. return 68
  104. # GPT-5 mini/nano
  105. elif 'gpt-5-mini' in name_lower:
  106. return 75
  107. elif 'gpt-5-nano' in name_lower:
  108. return 70
  109. # GPT-3.5系列
  110. elif 'gpt-3.5-turbo-16k' in name_lower:
  111. return 65
  112. elif 'gpt-3.5-turbo' in name_lower:
  113. return 63
  114. # 向量模型(性能评分较低,因为它们不是生成模型)
  115. elif 'text-embedding' in name_lower:
  116. return 30
  117. # 默认评分
  118. else:
  119. return 50
  120. # 定义模型数据(完整版)
  121. models_data = []
  122. # GPT-5系列
  123. models_data.extend([
  124. {"模型名称": "gpt-5.2", "输入价格": 0.01225, "输出价格": 0.098, "特点": "面向各行各业的编码和智能体任务的旗舰模型"},
  125. {"模型名称": "gpt-5.2-2025-12-11", "输入价格": 0.01225, "输出价格": 0.098, "特点": "面向各行各业的编码和智能体任务的旗舰模型"},
  126. {"模型名称": "gpt-5.2-chat-latest", "输入价格": 0.01225, "输出价格": 0.098, "特点": "指向 ChatGPT网页版本 当前使用的 GPT-5.2 快照"},
  127. {"模型名称": "gpt-5.2-pro", "输入价格": 0.147, "输出价格": 1.176, "特点": "目前仅在响应 API 中可用,用于支持在响应 API 请求之前进行多轮模型交互"},
  128. {"模型名称": "gpt-5.2-pro-2025-12-11", "输入价格": 0.147, "输出价格": 1.176, "特点": "目前仅在响应 API 中可用,用于支持在响应 API 请求之前进行多轮模型交互"},
  129. {"模型名称": "gpt-5.1", "输入价格": 0.00875, "输出价格": 0.07, "特点": "用于编码和智能体任务的旗舰模型,它具备可配置的推理和非推理能力"},
  130. {"模型名称": "gpt-5.1-2025-11-13", "输入价格": 0.00875, "输出价格": 0.07, "特点": "用于编码和智能体任务的旗舰模型,它具备可配置的推理和非推理能力"},
  131. {"模型名称": "gpt-5.1-chat-latest", "输入价格": 0.00875, "输出价格": 0.07, "特点": "指向 ChatGPT 当前使用的 GPT-5.1 快照"},
  132. {"模型名称": "gpt-5.1-codex", "输入价格": 0.00875, "输出价格": 0.07, "特点": "GPT-5.1-Codex 是 GPT-5 的一个版本,针对智能编码任务进行了优化"},
  133. {"模型名称": "gpt-5-search-api", "输入价格": 0.00875, "输出价格": 0.07, "特点": "Openai 出的搜索模型,支持网络搜索"},
  134. {"模型名称": "gpt-5", "输入价格": 0.00875, "输出价格": 0.07, "特点": "GPT-5 是用于跨领域编码、推理和代理任务的旗舰模型"},
  135. {"模型名称": "gpt-5-codex", "输入价格": 0.00875, "输出价格": 0.07, "特点": "GPT-5-Codex 是针对代理编码任务优化"},
  136. {"模型名称": "gpt-5-pro", "输入价格": 0.105, "输出价格": 0.84, "特点": "使用更多的计算来更努力地思考,并始终如一地提供更好的答案"},
  137. {"模型名称": "gpt-5-mini", "输入价格": 0.00175, "输出价格": 0.014, "特点": "GPT-5 mini 是 GPT-5 的一个更快、更经济的版本"},
  138. {"模型名称": "gpt-5-nano", "输入价格": 0.00035, "输出价格": 0.0028, "特点": "GPT-5 Nano 是速度最快、成本最低的 GPT-5 版本"},
  139. {"模型名称": "gpt-5-chat-latest", "输入价格": 0.00875, "输出价格": 0.07, "特点": "GPT-5 Chat 指的是 ChatGPT 当前使用的 GPT-5 快照"},
  140. ])
  141. # o3/o4系列
  142. models_data.extend([
  143. {"模型名称": "o3", "输入价格": 0.014, "输出价格": 0.056, "特点": "为数学、科学、编码、视觉推理任务和技术写作设定了新的标准"},
  144. {"模型名称": "o3-2025-04-16", "输入价格": 0.014, "输出价格": 0.056, "特点": "为数学、科学、编码、视觉推理任务和技术写作设定了新的标准"},
  145. {"模型名称": "o4-mini", "输入价格": 0.0088, "输出价格": 0.0352, "特点": "为数学、科学、编码、视觉推理任务和技术写作设定了新的标准"},
  146. {"模型名称": "o4-mini-2025-04-16", "输入价格": 0.0088, "输出价格": 0.0352, "特点": "为数学、科学、编码、视觉推理任务和技术写作设定了新的标准"},
  147. ])
  148. # GPT-4.1系列
  149. models_data.extend([
  150. {"模型名称": "gpt-4.1", "输入价格": 0.014, "输出价格": 0.056, "特点": "OpenAI最新推出的模型 在编码、指令跟踪和长上下文方面都有重大改进1M输入32k输出"},
  151. {"模型名称": "gpt-4.1-2025-04-14", "输入价格": 0.014, "输出价格": 0.056, "特点": "OpenAI最新推出的模型 在编码、指令跟踪和长上下文方面都有重大改进1M输入32k输出"},
  152. {"模型名称": "gpt-4.1-mini", "输入价格": 0.0028, "输出价格": 0.0112, "特点": "OpenAI最新推出的模型 在编码、指令跟踪和长上下文方面都有重大改进1M输入32k输出"},
  153. {"模型名称": "gpt-4.1-mini-2025-04-14", "输入价格": 0.0028, "输出价格": 0.0112, "特点": "OpenAI最新推出的模型 在编码、指令跟踪和长上下文方面都有重大改进1M输入32k输出"},
  154. {"模型名称": "gpt-4.1-nano", "输入价格": 0.0007, "输出价格": 0.0028, "特点": "OpenAI最新推出的模型 在编码、指令跟踪和长上下文方面都有重大改进1M输入32k输出"},
  155. {"模型名称": "gpt-4.1-nano-2025-04-14", "输入价格": 0.0007, "输出价格": 0.0028, "特点": "OpenAI最新推出的模型 在编码、指令跟踪和长上下文方面都有重大改进1M输入32k输出"},
  156. {"模型名称": "gpt-oss-20b", "输入价格": 0.0008, "输出价格": 0.0032, "特点": "OpenAI最新推出的开源模型"},
  157. {"模型名称": "gpt-oss-120b", "输入价格": 0.0044, "输出价格": 0.0176, "特点": "OpenAI最新推出的开源模型"},
  158. ])
  159. # GPT-3.5系列
  160. models_data.extend([
  161. {"模型名称": "gpt-3.5-turbo", "输入价格": 0.0035, "输出价格": 0.0105, "特点": "默认模型,等于gpt-3.5-turbo-0125"},
  162. {"模型名称": "gpt-3.5-turbo-1106", "输入价格": 0.007, "输出价格": 0.014, "特点": "2023年11月6日更新的模型"},
  163. {"模型名称": "gpt-3.5-turbo-0125", "输入价格": 0.0035, "输出价格": 0.0105, "特点": "2024年1月25日最新模型,数据最新,价格更更低,速度更快"},
  164. {"模型名称": "gpt-3.5-turbo-16k", "输入价格": 0.021, "输出价格": 0.028, "特点": "适合快速回答简单问题,字数更多"},
  165. {"模型名称": "gpt-3.5-turbo-instruct", "输入价格": 0.0105, "输出价格": 0.014, "特点": "Completions模型 用于文本生成"},
  166. ])
  167. # o1系列
  168. models_data.extend([
  169. {"模型名称": "o1-mini", "输入价格": 0.0088, "输出价格": 0.0352, "特点": "针对复杂任务的推理模型"},
  170. {"模型名称": "o1-preview", "输入价格": 0.105, "输出价格": 0.42, "特点": "针对复杂任务的推理模型"},
  171. {"模型名称": "o3-mini", "输入价格": 0.0088, "输出价格": 0.0352, "特点": "针对复杂任务的推理模型"},
  172. {"模型名称": "o1", "输入价格": 0.12, "输出价格": 0.48, "特点": "o1系列模型经过强化学习训练,可以进行复杂的推理"},
  173. ])
  174. # GPT-4o系列
  175. models_data.extend([
  176. {"模型名称": "gpt-4o-search-preview", "输入价格": 0.0175, "输出价格": 0.07, "特点": "Openai 出的搜索模型,支持网络搜索"},
  177. {"模型名称": "gpt-4o-search-preview-2025-03-11", "输入价格": 0.0175, "输出价格": 0.07, "特点": "Openai 出的搜索模型,支持网络搜索"},
  178. {"模型名称": "gpt-4o-mini-search-preview", "输入价格": 0.00105, "输出价格": 0.0042, "特点": "Openai 出的搜索模型,支持网络搜索"},
  179. {"模型名称": "gpt-4o-mini-search-preview-2025-03-11", "输入价格": 0.00105, "输出价格": 0.0042, "特点": "Openai 出的搜索模型,支持网络搜索"},
  180. {"模型名称": "gpt-4", "输入价格": 0.21, "输出价格": 0.42, "特点": "默认模型,等于gpt-4-0613"},
  181. {"模型名称": "gpt-4o", "输入价格": 0.0175, "输出价格": 0.07, "特点": "Openai 价格更低, 速度更快更聪明,指向最新版的4o版本"},
  182. {"模型名称": "gpt-4o-2024-05-13", "输入价格": 0.035, "输出价格": 0.105, "特点": "Openai 2024-05-13出的gpt-4o模型"},
  183. {"模型名称": "gpt-4o-2024-08-06", "输入价格": 0.0175, "输出价格": 0.07, "特点": "Openai 2024-08-06出的gpt-4o模型 支持128k输入,16k输出"},
  184. {"模型名称": "gpt-4o-2024-11-20", "输入价格": 0.0175, "输出价格": 0.07, "特点": "Openai 2024-11-20出的gpt-4o模型, 该模型的创意写作能力得到了提升"},
  185. {"模型名称": "chatgpt-4o-latest", "输入价格": 0.035, "输出价格": 0.105, "特点": "动态更新的版本,持续集成OpenAI最新的研究成果"},
  186. {"模型名称": "gpt-4o-mini", "输入价格": 0.00105, "输出价格": 0.0042, "特点": "Openai 最新模型, 价格更低, 输出质量在3.5之上4o之下, 并且支持读图"},
  187. {"模型名称": "gpt-4-0613", "输入价格": 0.21, "输出价格": 0.42, "特点": "2023年6月13日更新的模型"},
  188. {"模型名称": "gpt-4-turbo-preview", "输入价格": 0.07, "输出价格": 0.21, "特点": "最新模型,输入128K,输出最大4K"},
  189. {"模型名称": "gpt-4-0125-preview", "输入价格": 0.07, "输出价格": 0.21, "特点": "2024年1月25日更新的模型,输入128K,输出最大4K"},
  190. {"模型名称": "gpt-4-1106-preview", "输入价格": 0.07, "输出价格": 0.21, "特点": "2023年11月6日更新的模型,输入128K,输出最大4K"},
  191. {"模型名称": "gpt-4-vision-preview", "输入价格": 0.07, "输出价格": 0.21, "特点": "多模态,支持图片识别"},
  192. {"模型名称": "gpt-4-turbo", "输入价格": 0.07, "输出价格": 0.21, "特点": "Openai 最新模型多模态,支持图片识别,支持函数tools"},
  193. {"模型名称": "gpt-4-turbo-2024-04-09", "输入价格": 0.07, "输出价格": 0.21, "特点": "Openai 最新模型多模态,支持图片识别,支持函数tools"},
  194. ])
  195. # GPT-CA系列(第三方提供商)
  196. models_data.extend([
  197. {"模型名称": "gpt-5.2-ca", "输入价格": 0.007, "输出价格": 0.056, "特点": "第三方优质提供商提供的服务,优点价格便宜,但是稳定性没有非-ca的好"},
  198. {"模型名称": "gpt-5.2-chat-latest-ca", "输入价格": 0.007, "输出价格": 0.056, "特点": "第三方优质提供商提供的服务,优点价格便宜,但是稳定性没有非-ca的好"},
  199. {"模型名称": "gpt-5.1-ca", "输入价格": 0.005, "输出价格": 0.04, "特点": "第三方优质提供商提供的服务,优点价格便宜,但是稳定性没有非-ca的好"},
  200. {"模型名称": "gpt-5.1-chat-latest-ca", "输入价格": 0.005, "输出价格": 0.04, "特点": "第三方优质提供商提供的服务,优点价格便宜,但是稳定性没有非-ca的好"},
  201. {"模型名称": "gpt-5-ca", "输入价格": 0.005, "输出价格": 0.04, "特点": "第三方优质提供商提供的服务,优点价格便宜,但是稳定性没有非-ca的好"},
  202. {"模型名称": "gpt-5-mini-ca", "输入价格": 0.001, "输出价格": 0.008, "特点": "第三方优质提供商提供的服务,优点价格便宜,但是稳定性没有非-ca的好"},
  203. {"模型名称": "gpt-5-nano-ca", "输入价格": 0.0002, "输出价格": 0.0016, "特点": "第三方优质提供商提供的服务,优点价格便宜,但是稳定性没有非-ca的好"},
  204. {"模型名称": "gpt-5-chat-latest-ca", "输入价格": 0.005, "输出价格": 0.04, "特点": "第三方优质提供商提供的服务,优点价格便宜,但是稳定性没有非-ca的好"},
  205. {"模型名称": "gpt-4.1-ca", "输入价格": 0.008, "输出价格": 0.032, "特点": "第三方优质提供商提供的服务,优点价格便宜,但是稳定性没有非-ca的好"},
  206. {"模型名称": "gpt-4.1-mini-ca", "输入价格": 0.0016, "输出价格": 0.0064, "特点": "第三方优质提供商提供的服务,优点价格便宜,但是稳定性没有非-ca的好"},
  207. {"模型名称": "gpt-4.1-nano-ca", "输入价格": 0.0004, "输出价格": 0.003, "特点": "第三方优质提供商提供的服务,优点价格便宜,但是稳定性没有非-ca的好"},
  208. {"模型名称": "gpt-4o-ca", "输入价格": 0.01, "输出价格": 0.04, "特点": "第三方优质提供商提供的服务,优点价格便宜,但是稳定性没有非-ca的好"},
  209. {"模型名称": "gpt-4o-mini-ca", "输入价格": 0.00075, "输出价格": 0.003, "特点": "第三方优质提供商提供的服务,优点价格便宜,但是稳定性没有非-ca的好"},
  210. {"模型名称": "o1-mini-ca", "输入价格": 0.012, "输出价格": 0.048, "特点": "第三方优质提供商提供的服务,优点价格便宜,但是稳定性没有非-ca的好"},
  211. {"模型名称": "o1-preview-ca", "输入价格": 0.06, "输出价格": 0.24, "特点": "第三方优质提供商提供的服务,优点价格便宜,但是稳定性没有非-ca的好"},
  212. ])
  213. # DeepSeek系列
  214. models_data.extend([
  215. {"模型名称": "deepseek-v3.2", "输入价格": 0.0012, "输出价格": 0.0018, "特点": "deepseek的聊天模型, 此模型由第三方(火山引擎)供应商提供"},
  216. {"模型名称": "deepseek-v3.2-thinking", "输入价格": 0.0012, "输出价格": 0.0018, "特点": "deepseek的聊天模型, 此模型由第三方(火山引擎)供应商提供"},
  217. {"模型名称": "deepseek-v3-2-exp", "输入价格": 0.0012, "输出价格": 0.0018, "特点": "deepseek的聊天模型, 此模型由第三方(火山引擎)供应商提供"},
  218. {"模型名称": "deepseek-v3.1-250821", "输入价格": 0.0024, "输出价格": 0.0072, "特点": "deepseek的聊天模型, 此模型由第三方(火山引擎)供应商提供"},
  219. {"模型名称": "deepseek-v3.1-think-250821", "输入价格": 0.0024, "输出价格": 0.0072, "特点": "deepseek的聊天模型, 此模型由第三方(火山引擎)供应商提供"},
  220. {"模型名称": "deepseek-reasoner", "输入价格": 0.0024, "输出价格": 0.0096, "特点": "deepseek的思考R1模型, 此模型由第三方(火山引擎)供应商提供"},
  221. {"模型名称": "deepseek-r1", "输入价格": 0.0024, "输出价格": 0.0096, "特点": "deepseek的思考R1模型, 此模型由第三方(火山引擎)供应商提供"},
  222. {"模型名称": "deepseek-r1-250528", "输入价格": 0.0024, "输出价格": 0.0096, "特点": "deepseek的思考R1模型, 此模型由第三方(火山引擎)供应商提供"},
  223. {"模型名称": "deepseek-v3", "输入价格": 0.0012, "输出价格": 0.0048, "特点": "deepseek的聊天模型, 此模型由第三方(火山引擎)供应商提供"},
  224. {"模型名称": "deepseek-chat", "输入价格": 0.0012, "输出价格": 0.0048, "特点": "deepseek的聊天模型, 此模型由第三方(火山引擎)供应商提供"},
  225. ])
  226. # Claude系列
  227. models_data.extend([
  228. {"模型名称": "claude-opus-4-5-20251101", "输入价格": 0.025, "输出价格": 0.125, "特点": "claude的模型, 此模型由第三方供应商提供"},
  229. {"模型名称": "claude-opus-4-5-20251101-thinking", "输入价格": 0.025, "输出价格": 0.125, "特点": "claude的模型, 此模型由第三方供应商提供"},
  230. {"模型名称": "claude-haiku-4-5-20251001", "输入价格": 0.005, "输出价格": 0.025, "特点": "claude的模型, 此模型由第三方供应商提供"},
  231. {"模型名称": "claude-haiku-4-5-20251001-thinking", "输入价格": 0.005, "输出价格": 0.025, "特点": "claude的模型, 此模型由第三方供应商提供"},
  232. {"模型名称": "claude-sonnet-4-5-20250929", "输入价格": 0.015, "输出价格": 0.075, "特点": "claude的模型, 此模型由第三方供应商提供"},
  233. {"模型名称": "claude-sonnet-4-5-20250929-thinking", "输入价格": 0.015, "输出价格": 0.075, "特点": "claude的模型, 此模型由第三方供应商提供"},
  234. {"模型名称": "claude-opus-4-1-20250805", "输入价格": 0.075, "输出价格": 0.375, "特点": "claude的模型, 此模型由第三方供应商提供"},
  235. {"模型名称": "claude-opus-4-1-20250805-thinking", "输入价格": 0.075, "输出价格": 0.375, "特点": "claude的模型, 此模型由第三方供应商提供"},
  236. {"模型名称": "claude-opus-4-20250514", "输入价格": 0.075, "输出价格": 0.375, "特点": "claude的模型, 此模型由第三方供应商提供"},
  237. {"模型名称": "claude-opus-4-20250514-thinking", "输入价格": 0.075, "输出价格": 0.375, "特点": "claude的模型, 此模型由第三方供应商提供"},
  238. {"模型名称": "claude-sonnet-4-20250514", "输入价格": 0.015, "输出价格": 0.075, "特点": "claude的模型, 此模型由第三方供应商提供"},
  239. {"模型名称": "claude-sonnet-4-20250514-thinking", "输入价格": 0.015, "输出价格": 0.075, "特点": "claude的模型, 此模型由第三方供应商提供"},
  240. {"模型名称": "claude-3-7-sonnet-20250219", "输入价格": 0.015, "输出价格": 0.075, "特点": "claude的模型, 此模型由第三方供应商提供"},
  241. {"模型名称": "claude-3-5-sonnet-20240620", "输入价格": 0.015, "输出价格": 0.075, "特点": "claude的模型, 此模型由第三方供应商提供"},
  242. {"模型名称": "claude-3-5-sonnet-20241022", "输入价格": 0.015, "输出价格": 0.075, "特点": "claude的模型, 此模型由第三方供应商提供"},
  243. {"模型名称": "claude-3-5-haiku-20241022", "输入价格": 0.005, "输出价格": 0.025, "特点": "claude的模型, 此模型由第三方供应商提供"},
  244. ])
  245. # Gemini系列
  246. models_data.extend([
  247. {"模型名称": "gemini-2.5-pro", "输入价格": 0.007, "输出价格": 0.04, "特点": "是gemini 最新的旗舰模型, 此模型由第三方供应商提供"},
  248. {"模型名称": "gemini-2.5-flash", "输入价格": 0.0012, "输出价格": 0.01, "特点": "Google Gemini 的模型, 此模型由第三方供应商提供"},
  249. {"模型名称": "gemini-2.5-flash-nothinking", "输入价格": 0.0012, "输出价格": 0.01, "特点": "Google Gemini 的模型, 此模型由第三方供应商提供"},
  250. {"模型名称": "gemini-2.5-flash-lite", "输入价格": 0.0004, "输出价格": 0.0016, "特点": "Google Gemini 的模型, 此模型由第三方供应商提供"},
  251. {"模型名称": "gemini-2.5-flash-image-preview", "输入价格": 0.0015, "输出价格": 0.15, "特点": "Google Gemini的生图模型也是大家口中所说的nano banana 一张图的价格大概在2毛钱左右"},
  252. {"模型名称": "gemini-3-pro-image-preview", "输入价格": 0, "输出价格": 0.68, "特点": "Google Gemini的生图模型也是大家口中所说的nano banana2"},
  253. {"模型名称": "gemini-3-pro-preview", "输入价格": 0.008, "输出价格": 0.048, "特点": "Google Gemini 的模型, 此模型由第三方供应商提供"},
  254. {"模型名称": "gemini-3-flash-preview", "输入价格": 0.002, "输出价格": 0.012, "特点": "Google Gemini 的模型, 此模型由第三方供应商提供"},
  255. {"模型名称": "gemini-3-flash-preview-nothinking", "输入价格": 0.002, "输出价格": 0.012, "特点": "Google Gemini 的模型, 此模型由第三方供应商提供"},
  256. ])
  257. # Grok系列
  258. models_data.extend([
  259. {"模型名称": "grok-4", "输入价格": 0.012, "输出价格": 0.06, "特点": "grok基础模此模型由第三方供应商提供"},
  260. {"模型名称": "grok-4-fast", "输入价格": 0.0008, "输出价格": 0.002, "特点": "grok基础模此模型由第三方供应商提供"},
  261. ])
  262. # Qwen系列
  263. models_data.extend([
  264. {"模型名称": "qwen3-235b-a22b", "输入价格": 0.0014, "输出价格": 0.0056, "特点": "qwen最新的开源模型, 此模型由第三方供应商提供"},
  265. {"模型名称": "qwen3-235b-a22b-instruct-2507", "输入价格": 0.0014, "输出价格": 0.0056, "特点": "qwen最新的开源模型, 此模型由第三方供应商提供"},
  266. {"模型名称": "qwen3-coder-plus", "输入价格": 0.0028, "输出价格": 0.0112, "特点": "qwen最新的开源模型, 此模型由第三方供应商提供"},
  267. {"模型名称": "qwen3-coder-480b-a35b-instruct", "输入价格": 0.0042, "输出价格": 0.0168, "特点": "qwen最新的开源模型, 此模型由第三方供应商提供"},
  268. ])
  269. # Kimi系列
  270. models_data.extend([
  271. {"模型名称": "kimi-k2-0711-preview", "输入价格": 0.0028, "输出价格": 0.0112, "特点": "kimi最新的模型, 此模型由第三方供应商提供"},
  272. {"模型名称": "kimi-k2-0905-preview", "输入价格": 0.0028, "输出价格": 0.0112, "特点": "kimi最新的模型, 此模型由第三方供应商提供"},
  273. {"模型名称": "kimi-k2-thinking", "输入价格": 0.0028, "输出价格": 0.0112, "特点": "kimi最新的模型, 此模型由第三方供应商提供"},
  274. {"模型名称": "kimi-k2-thinking-turbo", "输入价格": 0.0056, "输出价格": 0.0406, "特点": "kimi最新的模型, 此模型由第三方供应商提供"},
  275. ])
  276. # 向量模型
  277. models_data.extend([
  278. {"模型名称": "text-embedding-ada-002", "输入价格": 0.0007, "输出价格": 0, "特点": "向量嵌入模型"},
  279. {"模型名称": "text-embedding-3-small", "输入价格": 0.00014, "输出价格": 0, "特点": "小型向量模型"},
  280. {"模型名称": "text-embedding-3-large", "输入价格": 0.00091, "输出价格": 0, "特点": "大型向量模型"},
  281. ])
  282. # 转换为DataFrame
  283. df = pd.DataFrame(models_data)
  284. # 计算平均价格
  285. df['平均价格'] = (df['输入价格'] + df['输出价格'].fillna(0)) / 2
  286. df.loc[df['输出价格'] == 0, '平均价格'] = df.loc[df['输出价格'] == 0, '输入价格']
  287. # 添加性能评分
  288. df['性能评分'] = df['模型名称'].apply(get_performance_score)
  289. # 格式化价格显示(人民币)
  290. df['输入价格(元/1K)'] = df['输入价格'].apply(lambda x: f"¥{x:.5f}")
  291. df['输出价格(元/1K)'] = df['输出价格'].apply(lambda x: f"¥{x:.5f}" if x > 0 else "N/A")
  292. # 创建document目录(如果不存在)
  293. output_dir = "../document"
  294. if not os.path.exists(output_dir):
  295. os.makedirs(output_dir)
  296. # 准备导出列
  297. export_columns = ['模型名称', '输入价格(元/1K)', '输出价格(元/1K)', '平均价格', '特点']
  298. export_columns_with_perf = ['模型名称', '输入价格(元/1K)', '输出价格(元/1K)', '平均价格', '性能评分', '特点']
  299. # 1. 按输入价格排序
  300. df_input = df.sort_values('输入价格', ascending=True).reset_index(drop=True)
  301. export_df_input = df_input[export_columns].copy()
  302. export_df_input['平均价格(元/1K)'] = export_df_input['平均价格'].apply(lambda x: f"¥{x:.5f}")
  303. export_df_input = export_df_input[['模型名称', '输入价格(元/1K)', '输出价格(元/1K)', '平均价格(元/1K)', '特点']]
  304. # 2. 按输出价格排序(输出价格为0的放最后)
  305. df_output = df.copy()
  306. df_output['输出价格_排序'] = df_output['输出价格'].apply(lambda x: x if x > 0 else 999999)
  307. df_output = df_output.sort_values('输出价格_排序', ascending=True).reset_index(drop=True)
  308. export_df_output = df_output[export_columns].copy()
  309. export_df_output['平均价格(元/1K)'] = export_df_output['平均价格'].apply(lambda x: f"¥{x:.5f}")
  310. export_df_output = export_df_output[['模型名称', '输入价格(元/1K)', '输出价格(元/1K)', '平均价格(元/1K)', '特点']]
  311. # 3. 按平均价格排序
  312. df_avg = df.sort_values('平均价格', ascending=True).reset_index(drop=True)
  313. export_df_avg = df_avg[export_columns].copy()
  314. export_df_avg['平均价格(元/1K)'] = export_df_avg['平均价格'].apply(lambda x: f"¥{x:.5f}")
  315. export_df_avg = export_df_avg[['模型名称', '输入价格(元/1K)', '输出价格(元/1K)', '平均价格(元/1K)', '特点']]
  316. # 4. 按性能从强到弱排序
  317. df_perf = df.sort_values('性能评分', ascending=False).reset_index(drop=True)
  318. export_df_perf = df_perf[export_columns_with_perf].copy()
  319. export_df_perf['平均价格(元/1K)'] = export_df_perf['平均价格'].apply(lambda x: f"¥{x:.5f}")
  320. export_df_perf = export_df_perf[['模型名称', '输入价格(元/1K)', '输出价格(元/1K)', '平均价格(元/1K)', '性能评分', '特点']]
  321. # 使用ExcelWriter创建包含多个sheet的Excel文件
  322. file_path = os.path.join(output_dir, "ChatAnywhere_所有模型价格表_完整版.xlsx")
  323. with pd.ExcelWriter(file_path, engine='openpyxl') as writer:
  324. export_df_input.to_excel(writer, sheet_name='按输入价格排序', index=False)
  325. export_df_output.to_excel(writer, sheet_name='按输出价格排序', index=False)
  326. export_df_avg.to_excel(writer, sheet_name='按平均价格排序', index=False)
  327. export_df_perf.to_excel(writer, sheet_name='按性能从强到弱', index=False)
  328. print(f"✅ Excel文件已成功生成!")
  329. print(f"📁 文件位置: {os.path.abspath(file_path)}")
  330. print(f"📊 共 {len(df)} 个模型")
  331. print(f"📑 包含4个Sheet:")
  332. print(f" 1. 按输入价格排序")
  333. print(f" 2. 按输出价格排序")
  334. print(f" 3. 按平均价格排序")
  335. print(f" 4. 按性能从强到弱")
  336. print(f"\n前5个性能最强的模型:")
  337. print(export_df_perf.head(5)[['模型名称', '性能评分']].to_string(index=False))