api.php 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  1. <?php
  2. use App\Http\Controllers\Account\AccountController;
  3. use App\Http\Controllers\DeepSeek\DeepSeekController;
  4. use App\Http\Controllers\Book\BookController;
  5. use App\Http\Controllers\Timbre\TimbreController;
  6. use App\Http\Controllers\AIGeneration\ImageGenerationController;
  7. use App\Http\Controllers\AIGeneration\VideoGenerationController;
  8. use App\Http\Controllers\Anime\AnimeController;
  9. use Illuminate\Support\Facades\Route;
  10. /*
  11. |--------------------------------------------------------------------------
  12. | API Routes
  13. |--------------------------------------------------------------------------
  14. |
  15. | Here is where you can register API routes for your application. These
  16. | routes are loaded by the RouteServiceProvider within a group which
  17. | is assigned the "api" middleware group. Enjoy building your API!
  18. |
  19. */
  20. Route::group(['middleware' => ['bindToken', 'bindExportToken', 'checkLogin']], function () {
  21. Route::group(['prefix' => 'book'], function () {
  22. // 书籍管理
  23. Route::get('list', [BookController::class, 'bookList']);
  24. Route::get('all', [BookController::class, 'allBooks']);
  25. Route::get('chapterList', [BookController::class, 'chapterList']);
  26. Route::get('chapterContent', [BookController::class, 'chapterContent']);
  27. // 版本管理
  28. Route::get('addVersion', [BookController::class, 'addBookVersion']);
  29. Route::get('editVersion', [BookController::class, 'editBookVersion']);
  30. Route::get('bookVersion', [BookController::class, 'bookVersion']);
  31. Route::get('versionList', [BookController::class, 'versionList']);
  32. Route::get('taskList', [BookController::class, 'taskList']);
  33. Route::get('taskDetail', [BookController::class, 'taskDetail']);
  34. // 音效
  35. Route::get('audioEffects', [BookController::class, 'audioEffects']);
  36. Route::get('audioEffectList', [BookController::class, 'audioEffectList']);
  37. Route::post('editAudioEffect', [BookController::class, 'editAudioEffect']);
  38. // bgm
  39. Route::get('bgms', [BookController::class, 'bgms']);
  40. Route::get('bgmList', [BookController::class, 'bgmList']);
  41. Route::post('editBgm', [BookController::class, 'editBgm']);
  42. });
  43. Route::group(['middleware' => ['bindToken', 'bindExportToken', 'checkLogin', 'checkSign'], 'prefix' => 'book'], function () {
  44. Route::post('uploadAudioEffect', [BookController::class, 'uploadAudioEffect']);
  45. Route::post('uploadBgm', [BookController::class, 'uploadBgm']);
  46. });
  47. Route::group(['prefix' => 'timbre'], function () {
  48. Route::get('addCategory', [TimbreController::class, 'addCategory']);
  49. Route::get('editCategory', [TimbreController::class, 'editCategory']);
  50. Route::get('categoryList', [TimbreController::class, 'categoryList']);
  51. Route::get('list', [TimbreController::class, 'timbreList']);
  52. Route::get('timbreCategories', [TimbreController::class, 'timbreCategories']);
  53. Route::get('edit', [TimbreController::class, 'editTimbre']);
  54. Route::get('groupList', [TimbreController::class, 'timbreGroupList']);
  55. Route::post('addGroup', [TimbreController::class, 'addTimbreGroup']);
  56. Route::post('editGroup', [TimbreController::class, 'editTimbreGroup']);
  57. // 情绪组
  58. Route::get('emotionGroupList', [TimbreController::class, 'emotionGroupList']);
  59. Route::post('addEmotionGroup', [TimbreController::class, 'addEmotionGroup']);
  60. Route::post('editEmotionGroup', [TimbreController::class, 'editEmotionGroup']);
  61. Route::get('delEmotionGroup', [TimbreController::class, 'delEmotionGroup']);
  62. });
  63. Route::group(['prefix' => 'deepseek'], function () {
  64. Route::post('chatWithReasoner', [DeepSeekController::class, 'chatWithReasoner']);
  65. Route::get('timbreList', [DeepSeekController::class, 'timbreList']);
  66. Route::get('paragraphAudios', [DeepSeekController::class, 'paragraphAudios']);
  67. Route::post('addGenerateTask', [DeepSeekController::class, 'addGenerateTask']);
  68. Route::get('setStsToken', [DeepSeekController::class, 'setStsToken']);
  69. Route::get('resetParagraphAudio', [DeepSeekController::class, 'resetParagraphAudio']);
  70. Route::post('saveParagraphAudio', [DeepSeekController::class, 'saveParagraphAudio']);
  71. Route::get('emotionGroups', [DeepSeekController::class, 'emotionGroups']);
  72. Route::post('insertAudioEffect', [DeepSeekController::class, 'insertAudioEffect']);
  73. Route::post('insertBgm', [DeepSeekController::class, 'insertBgm']);
  74. // 剧本管理
  75. Route::get('scriptList', [DeepSeekController::class, 'scriptList']);
  76. Route::get('scripts', [DeepSeekController::class, 'scripts']);
  77. Route::get('scriptInfo', [DeepSeekController::class, 'scriptInfo']);
  78. Route::get('createScript', [DeepSeekController::class, 'createScript']);
  79. Route::post('chatWithFile', [DeepSeekController::class, 'chatWithFile']);
  80. Route::post('chatWithFileStream', [DeepSeekController::class, 'chatWithFileStream']);
  81. Route::post('saveScript', [DeepSeekController::class, 'saveScript']);
  82. });
  83. // AI生成
  84. Route::group(['prefix' => 'AIGeneration'], function () {
  85. // 图片生成相关路由
  86. Route::post('image/createTask', [ImageGenerationController::class, 'createTask']);
  87. Route::get('image/taskStatus', [ImageGenerationController::class, 'taskStatus']);
  88. Route::get('image/taskList', [ImageGenerationController::class, 'taskList']);
  89. // 视频生成相关路由
  90. Route::get('video/taskList', [VideoGenerationController::class, 'taskList']);
  91. // 即梦AI3.0视频生成路由
  92. Route::post('video/createJimengTask', [VideoGenerationController::class, 'createJimengTask']);
  93. Route::get('video/taskStatus', [VideoGenerationController::class, 'taskStatus']);
  94. // Seedance 1.5 Pro 视频生成路由
  95. Route::post('video/createSeedanceTask', [VideoGenerationController::class, 'createSeedanceTask']);
  96. // Route::get('video/seedance/taskStatus/{taskId}', [VideoGenerationController::class, 'getSeedanceTaskStatus']);
  97. // 可灵Omni视频生成路由
  98. Route::post('video/createKelingTask', [VideoGenerationController::class, 'createKelingTask']);
  99. Route::get('video/keling/taskStatus/{taskId}', [VideoGenerationController::class, 'getKelingTaskStatus']);
  100. // 主体管理相关路由
  101. Route::post('element/create', [VideoGenerationController::class, 'createElement']);
  102. Route::get('element/status/{taskId}', [VideoGenerationController::class, 'getElementStatus']);
  103. Route::get('element/list', [VideoGenerationController::class, 'getElementsList']);
  104. Route::post('element/delete', [VideoGenerationController::class, 'deleteElement']);
  105. Route::get('element/local/list', [VideoGenerationController::class, 'getLocalElementsList']);
  106. });
  107. // 动漫管理
  108. Route::group(['prefix' => 'anime'], function () {
  109. Route::get('textModel', [AnimeController::class, 'textModel']); // 文生文模型
  110. Route::get('artStyleList', [AnimeController::class, 'artStyleList']); // 艺术风格列表
  111. Route::post('create', [AnimeController::class, 'createAnime']); // 创建动漫
  112. Route::post('addChat', [DeepSeekController::class, 'addChat']); // 新增动漫对话
  113. Route::post('reGenerateAnime', [DeepSeekController::class, 'reGenerateAnime']); // 调整动漫大纲
  114. Route::get('chatList', [AnimeController::class, 'chatList']); // 动漫列表
  115. Route::get('chatHistory', [AnimeController::class, 'chatHistory']); // 动漫对话历史
  116. Route::post('chat', [DeepSeekController::class, 'chat']); // 动漫对话
  117. Route::get('detail', [AnimeController::class, 'animeDetail']); // 动漫大纲
  118. Route::get('episodeInfo', [AnimeController::class, 'episodeInfo']); // 动漫剧集
  119. Route::get('segmentInfo', [AnimeController::class, 'segmentInfo']); // 分镜信息
  120. Route::get('copyEpisodeVersion', [AnimeController::class, 'copyEpisodeVersion']); // 复制动漫剧集
  121. Route::get('episodeVersions', [AnimeController::class, 'episodeVersions']); // 剧集版本
  122. Route::get('bindEpisodeVersion', [AnimeController::class, 'bindEpisodeVersion']); // 绑定剧集版本
  123. Route::post('edit', [AnimeController::class, 'editAnime']); // 编辑动漫(弃用)
  124. Route::post('changeEpisodeRoles', [AnimeController::class, 'changeEpisodeRoles']); // 更改分集主体列表
  125. Route::post('changeEpisodeScenes', [AnimeController::class, 'changeEpisodeScenes']); // 更改分集场景列表
  126. Route::post('editSegment', [AnimeController::class, 'editSegment']); // 编辑分镜
  127. Route::post('batchUploadImg', [ImageGenerationController::class, 'batchUploadImg']); // 批量上传图片
  128. Route::post('batchSetRoleImg', [AnimeController::class, 'batchSetRoleImg']); // 批量生成角色形象
  129. Route::post('batchSetSceneImg', [AnimeController::class, 'batchSetSceneImg']); // 批量生成场景图片
  130. Route::post('chatChangeImg', [AnimeController::class, 'chatChangeImg']); // 对话改图
  131. Route::post('batchSetSegmentPics', [AnimeController::class, 'batchSetSegmentPics']); // 一键生成分镜图片
  132. Route::post('reGenerateSegment', [AnimeController::class, 'reGenerateSegment']); // 重新生成分镜
  133. Route::post('addSegment', [AnimeController::class, 'addSegment']); // 新增分镜
  134. Route::post('copySegment', [AnimeController::class, 'copySegment']); // 复制分镜
  135. Route::post('moveSegment', [AnimeController::class, 'moveSegment']); // 移动分镜
  136. Route::post('delSegment', [AnimeController::class, 'delSegment']); // 删除分镜
  137. Route::post('segmentHistory', [AnimeController::class, 'segmentHistory']); // 分镜历史图片/视频
  138. Route::post('createSegmentVideoTask', [AnimeController::class, 'createSegmentVideoTask']); // 分镜图片转视频
  139. Route::post('batchSetSegmentVideos', [AnimeController::class, 'batchSetSegmentVideos']); // 一键转视频
  140. Route::post('applyAudioData', [AnimeController::class, 'applyAudioData']); // 修改分镜音频参数
  141. Route::get('episodePicsInfo', [AnimeController::class, 'episodePicsInfo']); // 获取主体和场景图片生成信息
  142. // 完整视频合成任务
  143. Route::post('createCompleteVideoTask', [AnimeController::class, 'createCompleteVideoTask']);
  144. Route::get('generateImg', [AnimeController::class, 'generateImg']); // 文生图(通用)
  145. Route::post('generateText', [DeepSeekController::class, 'generateText']); // 文生文(通用)
  146. // 监控分镜图片和音频生成任务进度(SSE)
  147. Route::get('segmentPicsInfo', [AnimeController::class, 'monitorSegmentTasks']);
  148. });
  149. });
  150. // Route::post('addChat', [DeepSeekController::class, 'addChat']);
  151. // Route::post('testChat', [DeepSeekController::class, 'testChat']);
  152. Route::get('exportScript', [DeepSeekController::class, 'exportScript']);
  153. Route::get('login', [AccountController::class, 'login']); // 登录
  154. Route::get('logout', [AccountController::class, 'logout']); // 退出
  155. Route::get('sseLink', [DeepSeekController::class, 'sseLink']); // sseLink
  156. Route::get('testLink', function () {
  157. return 'Hello, World!';
  158. });
  159. // seedance回调
  160. Route::any('video/seedanceCallback', [VideoGenerationController::class, 'seedanceCallback']);
  161. Route::any('{slug}',[AccountController::class, 'index'])->where('slug', '(.*)?');