crazy_functional.py 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772
  1. from toolbox import HotReload # HotReload 的意思是热更新,修改函数插件后,不需要重启程序,代码直接生效
  2. from toolbox import trimmed_format_exc
  3. from loguru import logger
  4. def get_crazy_functions():
  5. from crazy_functions.读文章写摘要 import 读文章写摘要
  6. from crazy_functions.生成函数注释 import 批量生成函数注释
  7. from crazy_functions.SourceCode_Analyse import 解析项目本身
  8. from crazy_functions.SourceCode_Analyse import 解析一个Python项目
  9. from crazy_functions.SourceCode_Analyse import 解析一个Matlab项目
  10. from crazy_functions.SourceCode_Analyse import 解析一个C项目的头文件
  11. from crazy_functions.SourceCode_Analyse import 解析一个C项目
  12. from crazy_functions.SourceCode_Analyse import 解析一个Golang项目
  13. from crazy_functions.SourceCode_Analyse import 解析一个Rust项目
  14. from crazy_functions.SourceCode_Analyse import 解析一个Java项目
  15. from crazy_functions.SourceCode_Analyse import 解析一个前端项目
  16. from crazy_functions.高级功能函数模板 import 高阶功能模板函数
  17. from crazy_functions.高级功能函数模板 import Demo_Wrap
  18. from crazy_functions.Latex全文润色 import Latex英文润色
  19. from crazy_functions.询问多个大语言模型 import 同时问询
  20. from crazy_functions.SourceCode_Analyse import 解析一个Lua项目
  21. from crazy_functions.SourceCode_Analyse import 解析一个CSharp项目
  22. from crazy_functions.总结word文档 import 总结word文档
  23. from crazy_functions.解析JupyterNotebook import 解析ipynb文件
  24. from crazy_functions.Conversation_To_File import 载入对话历史存档
  25. from crazy_functions.Conversation_To_File import 对话历史存档
  26. from crazy_functions.Conversation_To_File import Conversation_To_File_Wrap
  27. from crazy_functions.Conversation_To_File import 删除所有本地对话历史记录
  28. from crazy_functions.辅助功能 import 清除缓存
  29. from crazy_functions.Markdown_Translate import Markdown英译中
  30. from crazy_functions.批量总结PDF文档 import 批量总结PDF文档
  31. from crazy_functions.PDF_Translate import 批量翻译PDF文档
  32. from crazy_functions.谷歌检索小助手 import 谷歌检索小助手
  33. from crazy_functions.理解PDF文档内容 import 理解PDF文档内容标准文件输入
  34. from crazy_functions.Latex全文润色 import Latex中文润色
  35. from crazy_functions.Latex全文润色 import Latex英文纠错
  36. from crazy_functions.Markdown_Translate import Markdown中译英
  37. from crazy_functions.虚空终端 import 虚空终端
  38. from crazy_functions.生成多种Mermaid图表 import Mermaid_Gen
  39. from crazy_functions.PDF_Translate_Wrap import PDF_Tran
  40. from crazy_functions.Latex_Function import Latex英文纠错加PDF对比
  41. from crazy_functions.Latex_Function import Latex翻译中文并重新编译PDF
  42. from crazy_functions.Latex_Function import PDF翻译中文并重新编译PDF
  43. from crazy_functions.Latex_Function_Wrap import Arxiv_Localize
  44. from crazy_functions.Latex_Function_Wrap import PDF_Localize
  45. from crazy_functions.Internet_GPT import 连接网络回答问题
  46. from crazy_functions.Internet_GPT_Wrap import NetworkGPT_Wrap
  47. from crazy_functions.Image_Generate import 图片生成_DALLE2, 图片生成_DALLE3, 图片修改_DALLE2
  48. from crazy_functions.Image_Generate_Wrap import ImageGen_Wrap
  49. from crazy_functions.SourceCode_Comment import 注释Python项目
  50. function_plugins = {
  51. "虚空终端": {
  52. "Group": "对话|编程|学术|智能体",
  53. "Color": "stop",
  54. "AsButton": True,
  55. "Info": "使用自然语言实现您的想法",
  56. "Function": HotReload(虚空终端),
  57. },
  58. "解析整个Python项目": {
  59. "Group": "编程",
  60. "Color": "stop",
  61. "AsButton": True,
  62. "Info": "解析一个Python项目的所有源文件(.py) | 输入参数为路径",
  63. "Function": HotReload(解析一个Python项目),
  64. },
  65. "注释Python项目": {
  66. "Group": "编程",
  67. "Color": "stop",
  68. "AsButton": False,
  69. "Info": "上传一系列python源文件(或者压缩包), 为这些代码添加docstring | 输入参数为路径",
  70. "Function": HotReload(注释Python项目),
  71. },
  72. "载入对话历史存档(先上传存档或输入路径)": {
  73. "Group": "对话",
  74. "Color": "stop",
  75. "AsButton": False,
  76. "Info": "载入对话历史存档 | 输入参数为路径",
  77. "Function": HotReload(载入对话历史存档),
  78. },
  79. "删除所有本地对话历史记录(谨慎操作)": {
  80. "Group": "对话",
  81. "AsButton": False,
  82. "Info": "删除所有本地对话历史记录,谨慎操作 | 不需要输入参数",
  83. "Function": HotReload(删除所有本地对话历史记录),
  84. },
  85. "清除所有缓存文件(谨慎操作)": {
  86. "Group": "对话",
  87. "Color": "stop",
  88. "AsButton": False, # 加入下拉菜单中
  89. "Info": "清除所有缓存文件,谨慎操作 | 不需要输入参数",
  90. "Function": HotReload(清除缓存),
  91. },
  92. "生成多种Mermaid图表(从当前对话或路径(.pdf/.md/.docx)中生产图表)": {
  93. "Group": "对话",
  94. "Color": "stop",
  95. "AsButton": False,
  96. "Info" : "基于当前对话或文件生成多种Mermaid图表,图表类型由模型判断",
  97. "Function": None,
  98. "Class": Mermaid_Gen
  99. },
  100. "Arxiv论文翻译": {
  101. "Group": "学术",
  102. "Color": "stop",
  103. "AsButton": True,
  104. "Info": "Arixv论文精细翻译 | 输入参数arxiv论文的ID,比如1812.10695",
  105. "Function": HotReload(Latex翻译中文并重新编译PDF), # 当注册Class后,Function旧接口仅会在“虚空终端”中起作用
  106. "Class": Arxiv_Localize, # 新一代插件需要注册Class
  107. },
  108. "批量总结Word文档": {
  109. "Group": "学术",
  110. "Color": "stop",
  111. "AsButton": False,
  112. "Info": "批量总结word文档 | 输入参数为路径",
  113. "Function": HotReload(总结word文档),
  114. },
  115. "解析整个Matlab项目": {
  116. "Group": "编程",
  117. "Color": "stop",
  118. "AsButton": False,
  119. "Info": "解析一个Matlab项目的所有源文件(.m) | 输入参数为路径",
  120. "Function": HotReload(解析一个Matlab项目),
  121. },
  122. "解析整个C++项目头文件": {
  123. "Group": "编程",
  124. "Color": "stop",
  125. "AsButton": False, # 加入下拉菜单中
  126. "Info": "解析一个C++项目的所有头文件(.h/.hpp) | 输入参数为路径",
  127. "Function": HotReload(解析一个C项目的头文件),
  128. },
  129. "解析整个C++项目(.cpp/.hpp/.c/.h)": {
  130. "Group": "编程",
  131. "Color": "stop",
  132. "AsButton": False, # 加入下拉菜单中
  133. "Info": "解析一个C++项目的所有源文件(.cpp/.hpp/.c/.h)| 输入参数为路径",
  134. "Function": HotReload(解析一个C项目),
  135. },
  136. "解析整个Go项目": {
  137. "Group": "编程",
  138. "Color": "stop",
  139. "AsButton": False, # 加入下拉菜单中
  140. "Info": "解析一个Go项目的所有源文件 | 输入参数为路径",
  141. "Function": HotReload(解析一个Golang项目),
  142. },
  143. "解析整个Rust项目": {
  144. "Group": "编程",
  145. "Color": "stop",
  146. "AsButton": False, # 加入下拉菜单中
  147. "Info": "解析一个Rust项目的所有源文件 | 输入参数为路径",
  148. "Function": HotReload(解析一个Rust项目),
  149. },
  150. "解析整个Java项目": {
  151. "Group": "编程",
  152. "Color": "stop",
  153. "AsButton": False, # 加入下拉菜单中
  154. "Info": "解析一个Java项目的所有源文件 | 输入参数为路径",
  155. "Function": HotReload(解析一个Java项目),
  156. },
  157. "解析整个前端项目(js,ts,css等)": {
  158. "Group": "编程",
  159. "Color": "stop",
  160. "AsButton": False, # 加入下拉菜单中
  161. "Info": "解析一个前端项目的所有源文件(js,ts,css等) | 输入参数为路径",
  162. "Function": HotReload(解析一个前端项目),
  163. },
  164. "解析整个Lua项目": {
  165. "Group": "编程",
  166. "Color": "stop",
  167. "AsButton": False, # 加入下拉菜单中
  168. "Info": "解析一个Lua项目的所有源文件 | 输入参数为路径",
  169. "Function": HotReload(解析一个Lua项目),
  170. },
  171. "解析整个CSharp项目": {
  172. "Group": "编程",
  173. "Color": "stop",
  174. "AsButton": False, # 加入下拉菜单中
  175. "Info": "解析一个CSharp项目的所有源文件 | 输入参数为路径",
  176. "Function": HotReload(解析一个CSharp项目),
  177. },
  178. "解析Jupyter Notebook文件": {
  179. "Group": "编程",
  180. "Color": "stop",
  181. "AsButton": False,
  182. "Info": "解析Jupyter Notebook文件 | 输入参数为路径",
  183. "Function": HotReload(解析ipynb文件),
  184. "AdvancedArgs": True, # 调用时,唤起高级参数输入区(默认False)
  185. "ArgsReminder": "若输入0,则不解析notebook中的Markdown块", # 高级参数输入区的显示提示
  186. },
  187. "读Tex论文写摘要": {
  188. "Group": "学术",
  189. "Color": "stop",
  190. "AsButton": False,
  191. "Info": "读取Tex论文并写摘要 | 输入参数为路径",
  192. "Function": HotReload(读文章写摘要),
  193. },
  194. "翻译README或MD": {
  195. "Group": "编程",
  196. "Color": "stop",
  197. "AsButton": True,
  198. "Info": "将Markdown翻译为中文 | 输入参数为路径或URL",
  199. "Function": HotReload(Markdown英译中),
  200. },
  201. "翻译Markdown或README(支持Github链接)": {
  202. "Group": "编程",
  203. "Color": "stop",
  204. "AsButton": False,
  205. "Info": "将Markdown或README翻译为中文 | 输入参数为路径或URL",
  206. "Function": HotReload(Markdown英译中),
  207. },
  208. "批量生成函数注释": {
  209. "Group": "编程",
  210. "Color": "stop",
  211. "AsButton": False, # 加入下拉菜单中
  212. "Info": "批量生成函数的注释 | 输入参数为路径",
  213. "Function": HotReload(批量生成函数注释),
  214. },
  215. "保存当前的对话": {
  216. "Group": "对话",
  217. "Color": "stop",
  218. "AsButton": True,
  219. "Info": "保存当前的对话 | 不需要输入参数",
  220. "Function": HotReload(对话历史存档), # 当注册Class后,Function旧接口仅会在“虚空终端”中起作用
  221. "Class": Conversation_To_File_Wrap # 新一代插件需要注册Class
  222. },
  223. "[多线程Demo]解析此项目本身(源码自译解)": {
  224. "Group": "对话|编程",
  225. "Color": "stop",
  226. "AsButton": False, # 加入下拉菜单中
  227. "Info": "多线程解析并翻译此项目的源码 | 不需要输入参数",
  228. "Function": HotReload(解析项目本身),
  229. },
  230. "查互联网后回答": {
  231. "Group": "对话",
  232. "Color": "stop",
  233. "AsButton": True, # 加入下拉菜单中
  234. # "Info": "连接网络回答问题(需要访问谷歌)| 输入参数是一个问题",
  235. "Function": HotReload(连接网络回答问题),
  236. "Class": NetworkGPT_Wrap # 新一代插件需要注册Class
  237. },
  238. "历史上的今天": {
  239. "Group": "对话",
  240. "Color": "stop",
  241. "AsButton": False,
  242. "Info": "查看历史上的今天事件 (这是一个面向开发者的插件Demo) | 不需要输入参数",
  243. "Function": None,
  244. "Class": Demo_Wrap, # 新一代插件需要注册Class
  245. },
  246. "精准翻译PDF论文": {
  247. "Group": "学术",
  248. "Color": "stop",
  249. "AsButton": True,
  250. "Info": "精准翻译PDF论文为中文 | 输入参数为路径",
  251. "Function": HotReload(批量翻译PDF文档), # 当注册Class后,Function旧接口仅会在“虚空终端”中起作用
  252. "Class": PDF_Tran, # 新一代插件需要注册Class
  253. },
  254. "询问多个GPT模型": {
  255. "Group": "对话",
  256. "Color": "stop",
  257. "AsButton": True,
  258. "Function": HotReload(同时问询),
  259. },
  260. "批量总结PDF文档": {
  261. "Group": "学术",
  262. "Color": "stop",
  263. "AsButton": False, # 加入下拉菜单中
  264. "Info": "批量总结PDF文档的内容 | 输入参数为路径",
  265. "Function": HotReload(批量总结PDF文档),
  266. },
  267. "谷歌学术检索助手(输入谷歌学术搜索页url)": {
  268. "Group": "学术",
  269. "Color": "stop",
  270. "AsButton": False, # 加入下拉菜单中
  271. "Info": "使用谷歌学术检索助手搜索指定URL的结果 | 输入参数为谷歌学术搜索页的URL",
  272. "Function": HotReload(谷歌检索小助手),
  273. },
  274. "理解PDF文档内容 (模仿ChatPDF)": {
  275. "Group": "学术",
  276. "Color": "stop",
  277. "AsButton": False, # 加入下拉菜单中
  278. "Info": "理解PDF文档的内容并进行回答 | 输入参数为路径",
  279. "Function": HotReload(理解PDF文档内容标准文件输入),
  280. },
  281. "英文Latex项目全文润色(输入路径或上传压缩包)": {
  282. "Group": "学术",
  283. "Color": "stop",
  284. "AsButton": False, # 加入下拉菜单中
  285. "Info": "对英文Latex项目全文进行润色处理 | 输入参数为路径或上传压缩包",
  286. "Function": HotReload(Latex英文润色),
  287. },
  288. "中文Latex项目全文润色(输入路径或上传压缩包)": {
  289. "Group": "学术",
  290. "Color": "stop",
  291. "AsButton": False, # 加入下拉菜单中
  292. "Info": "对中文Latex项目全文进行润色处理 | 输入参数为路径或上传压缩包",
  293. "Function": HotReload(Latex中文润色),
  294. },
  295. # 已经被新插件取代
  296. # "英文Latex项目全文纠错(输入路径或上传压缩包)": {
  297. # "Group": "学术",
  298. # "Color": "stop",
  299. # "AsButton": False, # 加入下拉菜单中
  300. # "Info": "对英文Latex项目全文进行纠错处理 | 输入参数为路径或上传压缩包",
  301. # "Function": HotReload(Latex英文纠错),
  302. # },
  303. # 已经被新插件取代
  304. # "Latex项目全文中译英(输入路径或上传压缩包)": {
  305. # "Group": "学术",
  306. # "Color": "stop",
  307. # "AsButton": False, # 加入下拉菜单中
  308. # "Info": "对Latex项目全文进行中译英处理 | 输入参数为路径或上传压缩包",
  309. # "Function": HotReload(Latex中译英)
  310. # },
  311. # 已经被新插件取代
  312. # "Latex项目全文英译中(输入路径或上传压缩包)": {
  313. # "Group": "学术",
  314. # "Color": "stop",
  315. # "AsButton": False, # 加入下拉菜单中
  316. # "Info": "对Latex项目全文进行英译中处理 | 输入参数为路径或上传压缩包",
  317. # "Function": HotReload(Latex英译中)
  318. # },
  319. "批量Markdown中译英(输入路径或上传压缩包)": {
  320. "Group": "编程",
  321. "Color": "stop",
  322. "AsButton": False, # 加入下拉菜单中
  323. "Info": "批量将Markdown文件中文翻译为英文 | 输入参数为路径或上传压缩包",
  324. "Function": HotReload(Markdown中译英),
  325. },
  326. "Latex英文纠错+高亮修正位置 [需Latex]": {
  327. "Group": "学术",
  328. "Color": "stop",
  329. "AsButton": False,
  330. "AdvancedArgs": True,
  331. "ArgsReminder": "如果有必要, 请在此处追加更细致的矫错指令(使用英文)。",
  332. "Function": HotReload(Latex英文纠错加PDF对比),
  333. },
  334. "📚Arxiv论文精细翻译(输入arxivID)[需Latex]": {
  335. "Group": "学术",
  336. "Color": "stop",
  337. "AsButton": False,
  338. "AdvancedArgs": True,
  339. "ArgsReminder": r"如果有必要, 请在此处给出自定义翻译命令, 解决部分词汇翻译不准确的问题。 "
  340. r"例如当单词'agent'翻译不准确时, 请尝试把以下指令复制到高级参数区: "
  341. r'If the term "agent" is used in this section, it should be translated to "智能体". ',
  342. "Info": "Arixv论文精细翻译 | 输入参数arxiv论文的ID,比如1812.10695",
  343. "Function": HotReload(Latex翻译中文并重新编译PDF), # 当注册Class后,Function旧接口仅会在“虚空终端”中起作用
  344. "Class": Arxiv_Localize, # 新一代插件需要注册Class
  345. },
  346. "📚本地Latex论文精细翻译(上传Latex项目)[需Latex]": {
  347. "Group": "学术",
  348. "Color": "stop",
  349. "AsButton": False,
  350. "AdvancedArgs": True,
  351. "ArgsReminder": r"如果有必要, 请在此处给出自定义翻译命令, 解决部分词汇翻译不准确的问题。 "
  352. r"例如当单词'agent'翻译不准确时, 请尝试把以下指令复制到高级参数区: "
  353. r'If the term "agent" is used in this section, it should be translated to "智能体". ',
  354. "Info": "本地Latex论文精细翻译 | 输入参数是路径",
  355. "Function": HotReload(Latex翻译中文并重新编译PDF),
  356. },
  357. "PDF翻译中文并重新编译PDF(上传PDF)[需Latex]": {
  358. "Group": "学术",
  359. "Color": "stop",
  360. "AsButton": False,
  361. "AdvancedArgs": True,
  362. "ArgsReminder": r"如果有必要, 请在此处给出自定义翻译命令, 解决部分词汇翻译不准确的问题。 "
  363. r"例如当单词'agent'翻译不准确时, 请尝试把以下指令复制到高级参数区: "
  364. r'If the term "agent" is used in this section, it should be translated to "智能体". ',
  365. "Info": "PDF翻译中文,并重新编译PDF | 输入参数为路径",
  366. "Function": HotReload(PDF翻译中文并重新编译PDF), # 当注册Class后,Function旧接口仅会在“虚空终端”中起作用
  367. "Class": PDF_Localize # 新一代插件需要注册Class
  368. }
  369. }
  370. function_plugins.update(
  371. {
  372. "🎨图片生成(DALLE2/DALLE3, 使用前切换到GPT系列模型)": {
  373. "Group": "对话",
  374. "Color": "stop",
  375. "AsButton": False,
  376. "Info": "使用 DALLE2/DALLE3 生成图片 | 输入参数字符串,提供图像的内容",
  377. "Function": HotReload(图片生成_DALLE2), # 当注册Class后,Function旧接口仅会在“虚空终端”中起作用
  378. "Class": ImageGen_Wrap # 新一代插件需要注册Class
  379. },
  380. }
  381. )
  382. function_plugins.update(
  383. {
  384. "🎨图片修改_DALLE2 (使用前请切换模型到GPT系列)": {
  385. "Group": "对话",
  386. "Color": "stop",
  387. "AsButton": False,
  388. "AdvancedArgs": False, # 调用时,唤起高级参数输入区(默认False)
  389. # "Info": "使用DALLE2修改图片 | 输入参数字符串,提供图像的内容",
  390. "Function": HotReload(图片修改_DALLE2),
  391. },
  392. }
  393. )
  394. # -=--=- 尚未充分测试的实验性插件 & 需要额外依赖的插件 -=--=-
  395. try:
  396. from crazy_functions.下载arxiv论文翻译摘要 import 下载arxiv论文并翻译摘要
  397. function_plugins.update(
  398. {
  399. "一键下载arxiv论文并翻译摘要(先在input输入编号,如1812.10695)": {
  400. "Group": "学术",
  401. "Color": "stop",
  402. "AsButton": False, # 加入下拉菜单中
  403. # "Info": "下载arxiv论文并翻译摘要 | 输入参数为arxiv编号如1812.10695",
  404. "Function": HotReload(下载arxiv论文并翻译摘要),
  405. }
  406. }
  407. )
  408. except:
  409. logger.error(trimmed_format_exc())
  410. logger.error("Load function plugin failed")
  411. # try:
  412. # from crazy_functions.联网的ChatGPT import 连接网络回答问题
  413. # function_plugins.update(
  414. # {
  415. # "连接网络回答问题(输入问题后点击该插件,需要访问谷歌)": {
  416. # "Group": "对话",
  417. # "Color": "stop",
  418. # "AsButton": False, # 加入下拉菜单中
  419. # # "Info": "连接网络回答问题(需要访问谷歌)| 输入参数是一个问题",
  420. # "Function": HotReload(连接网络回答问题),
  421. # }
  422. # }
  423. # )
  424. # from crazy_functions.联网的ChatGPT_bing版 import 连接bing搜索回答问题
  425. # function_plugins.update(
  426. # {
  427. # "连接网络回答问题(中文Bing版,输入问题后点击该插件)": {
  428. # "Group": "对话",
  429. # "Color": "stop",
  430. # "AsButton": False, # 加入下拉菜单中
  431. # "Info": "连接网络回答问题(需要访问中文Bing)| 输入参数是一个问题",
  432. # "Function": HotReload(连接bing搜索回答问题),
  433. # }
  434. # }
  435. # )
  436. # except:
  437. # logger.error(trimmed_format_exc())
  438. # logger.error("Load function plugin failed")
  439. try:
  440. from crazy_functions.SourceCode_Analyse import 解析任意code项目
  441. function_plugins.update(
  442. {
  443. "解析项目源代码(手动指定和筛选源代码文件类型)": {
  444. "Group": "编程",
  445. "Color": "stop",
  446. "AsButton": False,
  447. "AdvancedArgs": True, # 调用时,唤起高级参数输入区(默认False)
  448. "ArgsReminder": '输入时用逗号隔开, *代表通配符, 加了^代表不匹配; 不输入代表全部匹配。例如: "*.c, ^*.cpp, config.toml, ^*.toml"', # 高级参数输入区的显示提示
  449. "Function": HotReload(解析任意code项目),
  450. },
  451. }
  452. )
  453. except:
  454. logger.error(trimmed_format_exc())
  455. logger.error("Load function plugin failed")
  456. try:
  457. from crazy_functions.询问多个大语言模型 import 同时问询_指定模型
  458. function_plugins.update(
  459. {
  460. "询问多个GPT模型(手动指定询问哪些模型)": {
  461. "Group": "对话",
  462. "Color": "stop",
  463. "AsButton": False,
  464. "AdvancedArgs": True, # 调用时,唤起高级参数输入区(默认False)
  465. "ArgsReminder": "支持任意数量的llm接口,用&符号分隔。例如chatglm&gpt-3.5-turbo&gpt-4", # 高级参数输入区的显示提示
  466. "Function": HotReload(同时问询_指定模型),
  467. },
  468. }
  469. )
  470. except:
  471. logger.error(trimmed_format_exc())
  472. logger.error("Load function plugin failed")
  473. try:
  474. from crazy_functions.总结音视频 import 总结音视频
  475. function_plugins.update(
  476. {
  477. "批量总结音视频(输入路径或上传压缩包)": {
  478. "Group": "对话",
  479. "Color": "stop",
  480. "AsButton": False,
  481. "AdvancedArgs": True,
  482. "ArgsReminder": "调用openai api 使用whisper-1模型, 目前支持的格式:mp4, m4a, wav, mpga, mpeg, mp3。此处可以输入解析提示,例如:解析为简体中文(默认)。",
  483. "Info": "批量总结音频或视频 | 输入参数为路径",
  484. "Function": HotReload(总结音视频),
  485. }
  486. }
  487. )
  488. except:
  489. logger.error(trimmed_format_exc())
  490. logger.error("Load function plugin failed")
  491. try:
  492. from crazy_functions.数学动画生成manim import 动画生成
  493. function_plugins.update(
  494. {
  495. "数学动画生成(Manim)": {
  496. "Group": "对话",
  497. "Color": "stop",
  498. "AsButton": False,
  499. "Info": "按照自然语言描述生成一个动画 | 输入参数是一段话",
  500. "Function": HotReload(动画生成),
  501. }
  502. }
  503. )
  504. except:
  505. logger.error(trimmed_format_exc())
  506. logger.error("Load function plugin failed")
  507. try:
  508. from crazy_functions.Markdown_Translate import Markdown翻译指定语言
  509. function_plugins.update(
  510. {
  511. "Markdown翻译(指定翻译成何种语言)": {
  512. "Group": "编程",
  513. "Color": "stop",
  514. "AsButton": False,
  515. "AdvancedArgs": True,
  516. "ArgsReminder": "请输入要翻译成哪种语言,默认为Chinese。",
  517. "Function": HotReload(Markdown翻译指定语言),
  518. }
  519. }
  520. )
  521. except:
  522. logger.error(trimmed_format_exc())
  523. logger.error("Load function plugin failed")
  524. try:
  525. from crazy_functions.知识库问答 import 知识库文件注入
  526. function_plugins.update(
  527. {
  528. "构建知识库(先上传文件素材,再运行此插件)": {
  529. "Group": "对话",
  530. "Color": "stop",
  531. "AsButton": False,
  532. "AdvancedArgs": True,
  533. "ArgsReminder": "此处待注入的知识库名称id, 默认为default。文件进入知识库后可长期保存。可以通过再次调用本插件的方式,向知识库追加更多文档。",
  534. "Function": HotReload(知识库文件注入),
  535. }
  536. }
  537. )
  538. except:
  539. logger.error(trimmed_format_exc())
  540. logger.error("Load function plugin failed")
  541. try:
  542. from crazy_functions.知识库问答 import 读取知识库作答
  543. function_plugins.update(
  544. {
  545. "知识库文件注入(构建知识库后,再运行此插件)": {
  546. "Group": "对话",
  547. "Color": "stop",
  548. "AsButton": False,
  549. "AdvancedArgs": True,
  550. "ArgsReminder": "待提取的知识库名称id, 默认为default, 您需要构建知识库后再运行此插件。",
  551. "Function": HotReload(读取知识库作答),
  552. }
  553. }
  554. )
  555. except:
  556. logger.error(trimmed_format_exc())
  557. logger.error("Load function plugin failed")
  558. try:
  559. from crazy_functions.交互功能函数模板 import 交互功能模板函数
  560. function_plugins.update(
  561. {
  562. "交互功能模板Demo函数(查找wallhaven.cc的壁纸)": {
  563. "Group": "对话",
  564. "Color": "stop",
  565. "AsButton": False,
  566. "Function": HotReload(交互功能模板函数),
  567. }
  568. }
  569. )
  570. except:
  571. logger.error(trimmed_format_exc())
  572. logger.error("Load function plugin failed")
  573. try:
  574. from toolbox import get_conf
  575. ENABLE_AUDIO = get_conf("ENABLE_AUDIO")
  576. if ENABLE_AUDIO:
  577. from crazy_functions.语音助手 import 语音助手
  578. function_plugins.update(
  579. {
  580. "实时语音对话": {
  581. "Group": "对话",
  582. "Color": "stop",
  583. "AsButton": True,
  584. "Info": "这是一个时刻聆听着的语音对话助手 | 没有输入参数",
  585. "Function": HotReload(语音助手),
  586. }
  587. }
  588. )
  589. except:
  590. logger.error(trimmed_format_exc())
  591. logger.error("Load function plugin failed")
  592. try:
  593. from crazy_functions.批量翻译PDF文档_NOUGAT import 批量翻译PDF文档
  594. function_plugins.update(
  595. {
  596. "精准翻译PDF文档(NOUGAT)": {
  597. "Group": "学术",
  598. "Color": "stop",
  599. "AsButton": False,
  600. "Function": HotReload(批量翻译PDF文档),
  601. }
  602. }
  603. )
  604. except:
  605. logger.error(trimmed_format_exc())
  606. logger.error("Load function plugin failed")
  607. try:
  608. from crazy_functions.函数动态生成 import 函数动态生成
  609. function_plugins.update(
  610. {
  611. "动态代码解释器(CodeInterpreter)": {
  612. "Group": "智能体",
  613. "Color": "stop",
  614. "AsButton": False,
  615. "Function": HotReload(函数动态生成),
  616. }
  617. }
  618. )
  619. except:
  620. logger.error(trimmed_format_exc())
  621. logger.error("Load function plugin failed")
  622. try:
  623. from crazy_functions.多智能体 import 多智能体终端
  624. function_plugins.update(
  625. {
  626. "AutoGen多智能体终端(仅供测试)": {
  627. "Group": "智能体",
  628. "Color": "stop",
  629. "AsButton": False,
  630. "Function": HotReload(多智能体终端),
  631. }
  632. }
  633. )
  634. except:
  635. logger.error(trimmed_format_exc())
  636. logger.error("Load function plugin failed")
  637. try:
  638. from crazy_functions.互动小游戏 import 随机小游戏
  639. function_plugins.update(
  640. {
  641. "随机互动小游戏(仅供测试)": {
  642. "Group": "智能体",
  643. "Color": "stop",
  644. "AsButton": False,
  645. "Function": HotReload(随机小游戏),
  646. }
  647. }
  648. )
  649. except:
  650. logger.error(trimmed_format_exc())
  651. logger.error("Load function plugin failed")
  652. try:
  653. from crazy_functions.Rag_Interface import Rag问答
  654. function_plugins.update(
  655. {
  656. "Rag智能召回": {
  657. "Group": "对话",
  658. "Color": "stop",
  659. "AsButton": False,
  660. "Info": "将问答数据记录到向量库中,作为长期参考。",
  661. "Function": HotReload(Rag问答),
  662. },
  663. }
  664. )
  665. except:
  666. logger.error(trimmed_format_exc())
  667. logger.error("Load function plugin failed")
  668. # try:
  669. # from crazy_functions.高级功能函数模板 import 测试图表渲染
  670. # function_plugins.update({
  671. # "绘制逻辑关系(测试图表渲染)": {
  672. # "Group": "智能体",
  673. # "Color": "stop",
  674. # "AsButton": True,
  675. # "Function": HotReload(测试图表渲染)
  676. # }
  677. # })
  678. # except:
  679. # logger.error(trimmed_format_exc())
  680. # print('Load function plugin failed')
  681. # try:
  682. # from crazy_functions.chatglm微调工具 import 微调数据集生成
  683. # function_plugins.update({
  684. # "黑盒模型学习: 微调数据集生成 (先上传数据集)": {
  685. # "Color": "stop",
  686. # "AsButton": False,
  687. # "AdvancedArgs": True,
  688. # "ArgsReminder": "针对数据集输入(如 绿帽子*深蓝色衬衫*黑色运动裤)给出指令,例如您可以将以下命令复制到下方: --llm_to_learn=azure-gpt-3.5 --prompt_prefix='根据下面的服装类型提示,想象一个穿着者,对这个人外貌、身处的环境、内心世界、过去经历进行描写。要求:100字以内,用第二人称。' --system_prompt=''",
  689. # "Function": HotReload(微调数据集生成)
  690. # }
  691. # })
  692. # except:
  693. # print('Load function plugin failed')
  694. """
  695. 设置默认值:
  696. - 默认 Group = 对话
  697. - 默认 AsButton = True
  698. - 默认 AdvancedArgs = False
  699. - 默认 Color = secondary
  700. """
  701. for name, function_meta in function_plugins.items():
  702. if "Group" not in function_meta:
  703. function_plugins[name]["Group"] = "对话"
  704. if "AsButton" not in function_meta:
  705. function_plugins[name]["AsButton"] = True
  706. if "AdvancedArgs" not in function_meta:
  707. function_plugins[name]["AdvancedArgs"] = False
  708. if "Color" not in function_meta:
  709. function_plugins[name]["Color"] = "secondary"
  710. return function_plugins