houzhongjian
2024-08-08 820397e43a0b64d35c6d31d2a55475061438593b
提交 | 用户 | 时间
820397 1 /**
H 2  * Created by iailab
3  *
4  * AI 枚举类
5  *
6  * 问题:为什么不放在 src/utils/constants.ts 呢?
7  * 回答:主要 AI 是可选模块,考虑到独立、解耦,所以放在了 /views/ai/utils/constants.ts
8  */
9
10 /**
11  * AI 平台的枚举
12  */
13 export const AiPlatformEnum = {
14   TONG_YI: 'TongYi', // 阿里
15   YI_YAN: 'YiYan', // 百度
16   DEEP_SEEK: 'DeepSeek', // DeepSeek
17   ZHI_PU: 'ZhiPu', // 智谱 AI
18   XING_HUO: 'XingHuo', // 讯飞
19   OPENAI: 'OpenAI',
20   Ollama: 'Ollama',
21   STABLE_DIFFUSION: 'StableDiffusion', // Stability AI
22   MIDJOURNEY: 'Midjourney', // Midjourney
23   SUNO: 'Suno' // Suno AI
24 }
25
26 export const OtherPlatformEnum: ImageModelVO[] = [
27   {
28     key: AiPlatformEnum.TONG_YI,
29     name: '通义万相'
30   },
31   {
32     key: AiPlatformEnum.YI_YAN,
33     name: '百度千帆'
34   },
35   {
36     key: AiPlatformEnum.ZHI_PU,
37     name: '智谱 AI'
38   }
39 ]
40
41 /**
42  * AI 图像生成状态的枚举
43  */
44 export const AiImageStatusEnum = {
45   IN_PROGRESS: 10, // 进行中
46   SUCCESS: 20, // 已完成
47   FAIL: 30 // 已失败
48 }
49
50 /**
51  * AI 音乐生成状态的枚举
52  */
53 export const AiMusicStatusEnum = {
54   IN_PROGRESS: 10, // 进行中
55   SUCCESS: 20, // 已完成
56   FAIL: 30 // 已失败
57 }
58
59 /**
60  * AI 写作类型的枚举
61  */
62 export enum AiWriteTypeEnum {
63   WRITING = 1, // 撰写
64   REPLY // 回复
65 }
66
67 // 表格展示对照map
68 export const AiWriteTypeTableRender = {
69   [AiWriteTypeEnum.WRITING]: '撰写',
70   [AiWriteTypeEnum.REPLY]: '回复'
71 }
72
73 // ========== 【图片 UI】相关的枚举 ==========
74
75 export const ImageHotWords = [
76   '中国旗袍',
77   '古装美女',
78   '卡通头像',
79   '机甲战士',
80   '童话小屋',
81   '中国长城'
82 ] // 图片热词
83
84 export const ImageHotEnglishWords = [
85   'Chinese Cheongsam',
86   'Ancient Beauty',
87   'Cartoon Avatar',
88   'Mech Warrior',
89   'Fairy Tale Cottage',
90   'The Great Wall of China'
91 ] // 图片热词(英文)
92
93 export interface ImageModelVO {
94   key: string
95   name: string
96   image?: string
97 }
98
99 export const StableDiffusionSamplers: ImageModelVO[] = [
100   {
101     key: 'DDIM',
102     name: 'DDIM'
103   },
104   {
105     key: 'DDPM',
106     name: 'DDPM'
107   },
108   {
109     key: 'K_DPMPP_2M',
110     name: 'K_DPMPP_2M'
111   },
112   {
113     key: 'K_DPMPP_2S_ANCESTRAL',
114     name: 'K_DPMPP_2S_ANCESTRAL'
115   },
116   {
117     key: 'K_DPM_2',
118     name: 'K_DPM_2'
119   },
120   {
121     key: 'K_DPM_2_ANCESTRAL',
122     name: 'K_DPM_2_ANCESTRAL'
123   },
124   {
125     key: 'K_EULER',
126     name: 'K_EULER'
127   },
128   {
129     key: 'K_EULER_ANCESTRAL',
130     name: 'K_EULER_ANCESTRAL'
131   },
132   {
133     key: 'K_HEUN',
134     name: 'K_HEUN'
135   },
136   {
137     key: 'K_LMS',
138     name: 'K_LMS'
139   }
140 ]
141
142 export const StableDiffusionStylePresets: ImageModelVO[] = [
143   {
144     key: '3d-model',
145     name: '3d-model'
146   },
147   {
148     key: 'analog-film',
149     name: 'analog-film'
150   },
151   {
152     key: 'anime',
153     name: 'anime'
154   },
155   {
156     key: 'cinematic',
157     name: 'cinematic'
158   },
159   {
160     key: 'comic-book',
161     name: 'comic-book'
162   },
163   {
164     key: 'digital-art',
165     name: 'digital-art'
166   },
167   {
168     key: 'enhance',
169     name: 'enhance'
170   },
171   {
172     key: 'fantasy-art',
173     name: 'fantasy-art'
174   },
175   {
176     key: 'isometric',
177     name: 'isometric'
178   },
179   {
180     key: 'line-art',
181     name: 'line-art'
182   },
183   {
184     key: 'low-poly',
185     name: 'low-poly'
186   },
187   {
188     key: 'modeling-compound',
189     name: 'modeling-compound'
190   },
191   // neon-punk origami photographic pixel-art tile-texture
192   {
193     key: 'neon-punk',
194     name: 'neon-punk'
195   },
196   {
197     key: 'origami',
198     name: 'origami'
199   },
200   {
201     key: 'photographic',
202     name: 'photographic'
203   },
204   {
205     key: 'pixel-art',
206     name: 'pixel-art'
207   },
208   {
209     key: 'tile-texture',
210     name: 'tile-texture'
211   }
212 ]
213
214 export const TongYiWanXiangModels: ImageModelVO[] = [
215   {
216     key: 'wanx-v1',
217     name: 'wanx-v1'
218   },
219   {
220     key: 'wanx-sketch-to-image-v1',
221     name: 'wanx-sketch-to-image-v1'
222   }
223 ]
224
225 export const QianFanModels: ImageModelVO[] = [
226   {
227     key: 'sd_xl',
228     name: 'sd_xl'
229   }
230 ]
231
232 export const ChatGlmModels: ImageModelVO[] = [
233   {
234     key: 'cogview-3',
235     name: 'cogview-3'
236   }
237 ]
238
239 export const StableDiffusionClipGuidancePresets: ImageModelVO[] = [
240   {
241     key: 'NONE',
242     name: 'NONE'
243   },
244   {
245     key: 'FAST_BLUE',
246     name: 'FAST_BLUE'
247   },
248   {
249     key: 'FAST_GREEN',
250     name: 'FAST_GREEN'
251   },
252   {
253     key: 'SIMPLE',
254     name: 'SIMPLE'
255   },
256   {
257     key: 'SLOW',
258     name: 'SLOW'
259   },
260   {
261     key: 'SLOWER',
262     name: 'SLOWER'
263   },
264   {
265     key: 'SLOWEST',
266     name: 'SLOWEST'
267   }
268 ]
269
270 export const Dall3Models: ImageModelVO[] = [
271   {
272     key: 'dall-e-3',
273     name: 'DALL·E 3',
274     image: `/src/assets/ai/dall2.jpg`
275   },
276   {
277     key: 'dall-e-2',
278     name: 'DALL·E 2',
279     image: `/src/assets/ai/dall3.jpg`
280   }
281 ]
282
283 export const Dall3StyleList: ImageModelVO[] = [
284   {
285     key: 'vivid',
286     name: '清晰',
287     image: `/src/assets/ai/qingxi.jpg`
288   },
289   {
290     key: 'natural',
291     name: '自然',
292     image: `/src/assets/ai/ziran.jpg`
293   }
294 ]
295
296 export interface ImageSizeVO {
297   key: string
298   name?: string
299   style: string
300   width: string
301   height: string
302 }
303
304 export const Dall3SizeList: ImageSizeVO[] = [
305   {
306     key: '1024x1024',
307     name: '1:1',
308     width: '1024',
309     height: '1024',
310     style: 'width: 30px; height: 30px;background-color: #dcdcdc;'
311   },
312   {
313     key: '1024x1792',
314     name: '3:5',
315     width: '1024',
316     height: '1792',
317     style: 'width: 30px; height: 50px;background-color: #dcdcdc;'
318   },
319   {
320     key: '1792x1024',
321     name: '5:3',
322     width: '1792',
323     height: '1024',
324     style: 'width: 50px; height: 30px;background-color: #dcdcdc;'
325   }
326 ]
327
328 export const MidjourneyModels: ImageModelVO[] = [
329   {
330     key: 'midjourney',
331     name: 'MJ',
332     image: 'https://bigpt8.com/pc/_nuxt/mj.34a61377.png'
333   },
334   {
335     key: 'niji',
336     name: 'NIJI',
337     image: 'https://bigpt8.com/pc/_nuxt/nj.ca79b143.png'
338   }
339 ]
340
341 export const MidjourneySizeList: ImageSizeVO[] = [
342   {
343     key: '1:1',
344     width: '1',
345     height: '1',
346     style: 'width: 30px; height: 30px;background-color: #dcdcdc;'
347   },
348   {
349     key: '3:4',
350     width: '3',
351     height: '4',
352     style: 'width: 30px; height: 40px;background-color: #dcdcdc;'
353   },
354   {
355     key: '4:3',
356     width: '4',
357     height: '3',
358     style: 'width: 40px; height: 30px;background-color: #dcdcdc;'
359   },
360   {
361     key: '9:16',
362     width: '9',
363     height: '16',
364     style: 'width: 30px; height: 50px;background-color: #dcdcdc;'
365   },
366   {
367     key: '16:9',
368     width: '16',
369     height: '9',
370     style: 'width: 50px; height: 30px;background-color: #dcdcdc;'
371   }
372 ]
373
374 export const MidjourneyVersions = [
375   {
376     value: '6.0',
377     label: 'v6.0'
378   },
379   {
380     value: '5.2',
381     label: 'v5.2'
382   },
383   {
384     value: '5.1',
385     label: 'v5.1'
386   },
387   {
388     value: '5.0',
389     label: 'v5.0'
390   },
391   {
392     value: '4.0',
393     label: 'v4.0'
394   }
395 ]
396
397 export const NijiVersionList = [
398   {
399     value: '5',
400     label: 'v5'
401   }
402 ]
403
404 // ========== 【写作 UI】相关的枚举 ==========
405
406 /** 写作点击示例时的数据 **/
407 export const WriteExample = {
408   write: {
409     prompt: 'vue',
410     data: 'Vue.js 是一种用于构建用户界面的渐进式 JavaScript 框架。它的核心库只关注视图层,易于上手,同时也便于与其他库或已有项目整合。\n\nVue.js 的特点包括:\n- 响应式的数据绑定:Vue.js 会自动将数据与 DOM 同步,使得状态管理变得更加简单。\n- 组件化:Vue.js 允许开发者通过小型、独立和通常可复用的组件构建大型应用。\n- 虚拟 DOM:Vue.js 使用虚拟 DOM 实现快速渲染,提高了性能。\n\n在 Vue.js 中,一个典型的应用结构可能包括:\n1. 根实例:每个 Vue 应用都需要一个根实例作为入口点。\n2. 组件系统:可以创建自定义的可复用组件。\n3. 指令:特殊的带有前缀 v- 的属性,为 DOM 元素提供特殊的行为。\n4. 插值:用于文本内容,将数据动态地插入到 HTML。\n5. 计算属性和侦听器:用于处理数据的复杂逻辑和响应数据变化。\n6. 条件渲染:根据条件决定元素的渲染。\n7. 列表渲染:用于显示列表数据。\n8. 事件处理:响应用户交互。\n9. 表单输入绑定:处理表单输入和验证。\n10. 组件生命周期钩子:在组件的不同阶段执行特定的函数。\n\nVue.js 还提供了官方的路由器 Vue Router 和状态管理库 Vuex,以支持构建复杂的单页应用(SPA)。\n\n在开发过程中,开发者通常会使用 Vue CLI,这是一个强大的命令行工具,用于快速生成 Vue 项目脚手架,集成了诸如 Babel、Webpack 等现代前端工具,以及热重载、代码检测等开发体验优化功能。\n\nVue.js 的生态系统还包括大量的第三方库和插件,如 Vuetify(UI 组件库)、Vue Test Utils(测试工具)等,这些都极大地丰富了 Vue.js 的开发生态。\n\n总的来说,Vue.js 是一个灵活、高效的前端框架,适合从小型项目到大型企业级应用的开发。它的易用性、灵活性和强大的社区支持使其成为许多开发者的首选框架之一。'
411   },
412   reply: {
413     originalContent: '领导,我想请假',
414     prompt: '不批',
415     data: '您的请假申请已收悉,经核实和考虑,暂时无法批准您的请假申请。\n\n如有特殊情况或紧急事务,请及时与我联系。\n\n祝工作顺利。\n\n谢谢。'
416   }
417 }
418
419 // ========== 【思维导图 UI】相关的枚举 ==========
420
421 /** 思维导图已有内容生成示例 **/
422 export const MindMapContentExample = `# Java 技术栈
423
424 ## 核心技术
425 ### Java SE
426 ### Java EE
427
428 ## 框架
429 ### Spring
430 #### Spring Boot
431 #### Spring MVC
432 #### Spring Data
433 ### Hibernate
434 ### MyBatis
435
436 ## 构建工具
437 ### Maven
438 ### Gradle
439
440 ## 版本控制
441 ### Git
442 ### SVN
443
444 ## 测试工具
445 ### JUnit
446 ### Mockito
447 ### Selenium
448
449 ## 应用服务器
450 ### Tomcat
451 ### Jetty
452 ### WildFly
453
454 ## 数据库
455 ### MySQL
456 ### PostgreSQL
457 ### Oracle
458 ### MongoDB
459
460 ## 消息队列
461 ### Kafka
462 ### RabbitMQ
463 ### ActiveMQ
464
465 ## 微服务
466 ### Spring Cloud
467 ### Dubbo
468
469 ## 容器化
470 ### Docker
471 ### Kubernetes
472
473 ## 云服务
474 ### AWS
475 ### Azure
476 ### Google Cloud
477
478 ## 开发工具
479 ### IntelliJ IDEA
480 ### Eclipse
481 ### Visual Studio Code`