lh 3 месяцев назад
Родитель
Сommit
2bfc6f4c88
3 измененных файлов с 22 добавлено и 347 удалено
  1. 2 1
      app/Console/Test/TestCommand.php
  2. 0 340
      app/Libs/Helpers.php
  3. 20 6
      app/Services/DeepSeek/DeepSeekService.php

+ 2 - 1
app/Console/Test/TestCommand.php

@@ -51,7 +51,8 @@ class TestCommand extends Command
     public function handle()
     {
         // dd(testStoryboardParsing(''));
-        dd(handleEpisodeContent(''));
+        $content = "";
+        dd(handleScriptContent($content));
         
         exit();
         $url = 'https://zw-audiobook.tos-cn-beijing.volces.com/video/ai_generation_1772704798_69a9541e94bef';

Разница между файлами не показана из-за своего большого размера
+ 0 - 340
app/Libs/Helpers.php


+ 20 - 6
app/Services/DeepSeek/DeepSeekService.php

@@ -42,7 +42,8 @@ class DeepSeekService
                 'role'    => 'system',
                 'content' => "你是一个专业的文档分析助手及资深编剧,请根据用户提供的文档内容完成示例格式的内容输出(需通过以下几个板块进行回复: <故事梗概><剧本亮点><人物关系><核心矛盾><主体列表><美术风格><场景列表><分集剧本>,每个板块之间用###分隔;同时板块之间需满足以下要求:\n
                 强制要求:\n
-                你只负责与剧本相关的内容,如果用户输入与剧本无关的内容,请告知用户并拒绝继续回答,此为第一优先原则,不满足此原则就忽略其他要求并停止继续输出\n
+                1.你只负责与剧本相关的内容,如果用户输入与剧本无关的内容,请告知用户并拒绝继续回答,此为第一优先原则,不满足此原则就忽略其他要求并停止继续输出
+                2.强制按照示例格式返回内容,不要更改格式或随意增加符号\n
                 普通要求:\n
                 1.<主体列表>中出现的主体必须尽可能统一,只允许同一个角色年龄段相差较大的情况下可重复,比如梁萧-少年、梁萧-青年、梁萧-中年、梁萧-老年这种情况,不得出现梁萧-愤怒、梁萧-隐忍、梁萧-求生等情绪和状态变化的同一角色;并且角色的样貌、形体及穿着描述尽可能详细\n
                 2.<分集剧本>要求包含“分集序号”、“分集标题”以及分镜信息,分镜信息需包含“场景描述”、“运镜”、“出场角色”和“台词内容”这几个部分,其中“出场角色”和“场景描述”必须在前面的板块<主体列表>和<场景列表>中选取,不得自定义。\n\n
@@ -2250,7 +2251,8 @@ class DeepSeekService
             1.你只负责与剧本相关的内容,如果用户输入与剧本无关的内容,请告知用户并拒绝继续回答,此为第一优先原则,不满足此原则就忽略其他要求并停止继续输出
             2.如果用户输入修改美术风格、修改画风这类内容,请告知用户不可修改美术风格,并拒绝继续回答
             3.以上两条要求对修改主体角色或场景不生效,允许用户调整主体角色说明和场景描述等
-            4.用户如果要求你帮忙写一个故事或者剧本,此类要求不属于与剧本无关,请帮助用户完成请求{$content_generation_requirement}\n
+            4.用户如果要求你帮忙写一个故事或者剧本,此类要求不属于与剧本无关,请帮助用户完成请求{$content_generation_requirement}
+            5.强制按照示例格式返回内容,不要更改格式或随意增加符号\n
             普通要求:
             1.剧集标题必须与文档内容高度相关,剧集序号是1。
             2.<主体列表>中出现的主体必须尽可能统一,只允许同一个角色年龄段相差较大的情况下可重复,比如角色-少年、角色-青年、角色-中年、角色-老年这种情况,不得出现角色-愤怒、角色-隐忍、角色-求生等情绪和状态变化的同一角色;并且角色的样貌、形体及穿着描述尽可能详细
@@ -2360,7 +2362,8 @@ class DeepSeekService
                 1.你只负责与剧本相关的内容,如果用户输入与剧本无关的内容,请告知用户并拒绝继续回答,此为第一优先原则,不满足此原则就忽略其他要求并停止继续输出
                 2.如果用户输入修改美术风格、修改画风这类内容,请告知用户不可修改美术风格,并拒绝继续回答
                 3.以上两条要求对修改主体角色或场景不生效,允许用户调整主体角色说明和场景描述等
-                4.用户如果要求你帮忙写一个故事或者剧本,此类要求不属于与剧本无关,请帮助用户完成请求{$content_generation_requirement}\n
+                4.用户如果要求你帮忙写一个故事或者剧本,此类要求不属于与剧本无关,请帮助用户完成请求{$content_generation_requirement}
+                5.强制按照示例格式返回内容,不要更改格式或随意增加符号\n
                 普通要求:\n
                 1.<主体列表>中出现的主体必须尽可能统一,只允许同一个角色年龄段相差较大的情况下可重复,比如梁萧-少年、梁萧-青年、梁萧-中年、梁萧-老年这种情况,不得出现梁萧-愤怒、梁萧-隐忍、梁萧-求生等情绪和状态变化的同一角色;并且角色的样貌、形体及穿着描述尽可能详细\n
                 2.<场景列表>与主体列表同理,需尽可能的对场景环境进行详细描述\n\n
@@ -2727,7 +2730,8 @@ class DeepSeekService
                     1.你只负责与剧本相关的内容,如果用户输入与剧本无关的内容,请告知用户并拒绝继续回答,此为第一优先原则,不满足此原则就忽略其他要求并停止继续输出
                     2.如果用户输入修改美术风格、修改画风这类内容,请告知用户不可修改美术风格,并拒绝继续回答
                     3.以上两条要求对修改主体角色或场景不生效,允许用户调整主体角色说明和场景描述等
-                    4.用户如果要求你帮忙写一个故事或者剧本,此类要求不属于与剧本无关,请帮助用户完成请求\n
+                    4.用户如果要求你帮忙写一个故事或者剧本,此类要求不属于与剧本无关,请帮助用户完成请求
+                    5.强制按照示例格式返回内容,不要更改格式或随意增加符号\n
                     普通要求:\n
                     1.<主体列表>中出现的主体必须尽可能统一,只允许同一个角色年龄段相差较大的情况下可重复,比如梁萧-少年、梁萧-青年、梁萧-中年、梁萧-老年这种情况,不得出现梁萧-愤怒、梁萧-隐忍、梁萧-求生等情绪和状态变化的同一角色;并且角色的样貌、形体及穿着描述尽可能详细\n
                     2.<场景列表>与主体列表同理,需尽可能的对场景环境进行详细描述\n\n
@@ -2789,7 +2793,8 @@ class DeepSeekService
                     1.你只负责与剧本相关的内容,如果用户输入与剧本无关的内容,请告知用户并拒绝继续回答,此为第一优先原则,不满足此原则就忽略其他要求并停止继续输出
                     2.如果用户输入修改美术风格、修改画风这类内容,请告知用户不可修改美术风格,并拒绝继续回答
                     3.以上两条要求对修改主体角色或场景不生效,允许用户调整主体角色说明和场景描述等
-                    4.用户如果要求你帮忙写一个故事或者剧本,此类要求不属于与剧本无关,请帮助用户完成请求\n
+                    4.用户如果要求你帮忙写一个故事或者剧本,此类要求不属于与剧本无关,请帮助用户完成请求
+                    5.强制按照示例格式返回内容,不要更改格式或随意增加符号\n
                     普通要求:\n
                     1.<主体列表>中出现的主体必须尽可能统一,只允许同一个角色年龄段相差较大的情况下可重复,比如梁萧-少年、梁萧-青年、梁萧-中年、梁萧-老年这种情况,不得出现梁萧-愤怒、梁萧-隐忍、梁萧-求生等情绪和状态变化的同一角色;并且角色的样貌、形体及穿着描述尽可能详细\n
                     2.<场景列表>与主体列表同理,需尽可能的对场景环境进行详细描述\n
@@ -3111,7 +3116,8 @@ class DeepSeekService
                     1.你只负责与剧本相关的内容,如果用户输入与剧本无关的内容,请告知用户并拒绝继续回答,此为第一优先原则,不满足此原则就忽略其他要求并停止继续输出
                     2.如果用户输入修改美术风格、修改画风这类内容,请告知用户不可修改美术风格,并拒绝继续回答
                     3.以上两条要求对修改主体角色或场景不生效,允许用户调整主体角色说明和场景描述等
-                    4.用户如果要求你帮忙写一个故事或者剧本,此类要求不属于与剧本无关,请帮助用户完成请求\n
+                    4.用户如果要求你帮忙写一个故事或者剧本,此类要求不属于与剧本无关,请帮助用户完成请求
+                    5.强制按照示例格式返回内容,不要更改格式或随意增加符号\n
                     普通要求:
                     1.剧集标题必须与文档内容高度相关,剧集序号是{$episode_number}。
                     2.<主体列表>必须在以下主体中选择多个(根据拆分出的分镜剧本来确认具体几个),不得自定义(需带上冒号后的具体描述):\n{$roles_content}。
@@ -3216,6 +3222,7 @@ class DeepSeekService
         // 根据章节内容拆分章节
         $chapters = $this->splitContent($full_content);
         $chapter_content = isset($chapters[($episode_number-1)]['content']) ? $chapters[($episode_number-1)]['content'] : '';
+        if (!$chapter_content) $chapter_content = $full_content;    // 如果无法拆分章节则直接用原文
         $messages = [];
 
         if ($prompt == '确认分镜大纲') {
@@ -4051,6 +4058,11 @@ class DeepSeekService
                     ];
                 }
             }
+        }else {
+            $chapters[] = [
+                'title' => '',
+                'content' => $content
+            ];
         }
         
         return $chapters;
@@ -4551,6 +4563,8 @@ class DeepSeekService
 
         if (isset($params['thinking'])) {
             $requestData['thinking'] = ['type'=>$params['thinking']];
+        }else {
+            $requestData['thinking'] = ['type'=>'disabled'];
         }
 
         if (isset($params['reasoning_effort'])) {