index.ts 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. import request from '@/config/axios'
  2. // AI API 密钥 VO
  3. // TODO @fan:要不前端不弄太多 VO,就用这个 ImageDetailVO?!
  4. export interface ImageDetailVO {
  5. id: number // 编号
  6. prompt: string // 提示词
  7. status: number // 状态
  8. errorMessage: string // 错误信息
  9. type: string // 模型下分不同的类型(清晰、真实...)
  10. taskId: number // dr 任务id
  11. picUrl: string // 任务地址
  12. originalPicUrl: string // 绘制图片地址
  13. platform: string // 平台
  14. model: string // 模型
  15. style: string // 图像生成的风格
  16. size: string // 图片尺寸
  17. buttons: ImageMjButtonsVO[] // mj 操作按钮
  18. createTime: string // 创建时间
  19. updateTime: string // 更新事件
  20. }
  21. export interface ImageMjButtonsVO {
  22. customId: string // MJ::JOB::upsample::1::85a4b4c1-8835-46c5-a15c-aea34fad1862 动作标识
  23. emoji: string // 图标 emoji
  24. label: string // Make Variations 文本
  25. style: number // 样式: 2(Primary)、3(Green)
  26. }
  27. export interface ImageMjActionVO {
  28. id: string // MJ::JOB::upsample::1::85a4b4c1-8835-46c5-a15c-aea34fad1862 动作标识
  29. customId: string // MJ::JOB::upsample::1::85a4b4c1-8835-46c5-a15c-aea34fad1862 动作标识
  30. }
  31. export interface ImagePageReqVO {
  32. pageNo: number // 分页编号
  33. pageSize: number // 分页大小
  34. }
  35. export interface ImageDallReqVO {
  36. prompt: string // 提示词
  37. model: string // 模型
  38. style: string // 图像生成的风格
  39. width: string // 图片宽度
  40. height: string // 图片高度
  41. }
  42. export interface ImageDrawReqVO {
  43. platform: string // 平台
  44. prompt: string // 提示词
  45. model: string // 模型
  46. style: string // 图像生成的风格
  47. width: string // 图片宽度
  48. height: string // 图片高度
  49. options: object // 绘制参数,Map<String, String>
  50. }
  51. export interface ImageMidjourneyImagineReqVO {
  52. prompt: string // 提示词
  53. model: string // 模型 mj nijj
  54. base64Array: string[] // size不能为空
  55. width: string // 图片宽度
  56. height: string // 图片高度
  57. version: string // 版本
  58. }
  59. // TODO 芋艿:review 下整体注释、方法名
  60. // AI API 密钥 API
  61. export const ImageApi = {
  62. // 获取 image 列表
  63. getImageList: async (params: ImagePageReqVO) => {
  64. return await request.get({ url: `/ai/image/my-page`, params })
  65. },
  66. // 获取 image 详细信息
  67. getImageDetail: async (id: number) => {
  68. return await request.get({ url: `/ai/image/get-my?id=${id}`})
  69. },
  70. // 生成图片
  71. drawImage: async (data: ImageDrawReqVO)=> {
  72. return await request.post({ url: `/ai/image/draw`, data })
  73. },
  74. // 删除
  75. deleteImage: async (id: number)=> {
  76. return await request.delete({ url: `/ai/image/delete-my?id=${id}`})
  77. },
  78. // ------------ midjourney
  79. // midjourney - imagine
  80. midjourneyImagine: async (data: ImageMidjourneyImagineReqVO)=> {
  81. return await request.post({ url: `/ai/image/midjourney/imagine`, data })
  82. },
  83. // midjourney - action
  84. midjourneyAction: async (params: ImageMjActionVO)=> {
  85. return await request.get({ url: `/ai/image/midjourney/action`, params })
  86. },
  87. }