Parcourir la source

调整处理剧本台词的公共方法

lh il y a 1 semaine
Parent
commit
041c9516f2

Fichier diff supprimé car celui-ci est trop grand
+ 3 - 61
app/Console/Test/TestCommand.php


+ 2 - 1
app/Libs/Helpers.php

@@ -1672,7 +1672,8 @@ function getTextTokens($text) {
 }
 
 // 处理小说剧本文本
-function handleDramaWords($text) {
+function handleScriptWords($text) {
+    $text = preg_replace('/[\r\n]+/', PHP_EOL, $text);
     $text_arr = explode(PHP_EOL, $text);
     $roles = [];
     $words = [];

+ 11 - 2
app/Services/DeepSeek/DeepSeekService.php

@@ -67,16 +67,25 @@ class DeepSeekService
         $response = $result->getBody()->getContents();
         $response_arr = json_decode($response, true);
         $update_data = [];
+        $content = '';
         if (isset($response_arr['choices']) && count($response_arr['choices']) > 0) {
+            $content = isset($response_arr['choices'][0]['message']['content']) ? $response_arr['choices'][0]['message']['content'] : '';
             $update_data = [
                 'role'      => 'assistant',
                 'content'   => $response_arr['choices'][0]['message']['content'],
-                'usage'     => $response_arr['usage']
+                'usage'     => isset($response_arr['usage']) ? $response_arr['usage'] : []
             ];
         }
 
+        // 处理获取到的剧本数据
+        $script_content = handleScriptWords($content);
+        $result = [
+            'origin_content'    => $content,
+            'roles'             => getProp($script_content, 'roles'),
+            'words'             => getProp($script_content, 'words'),
+        ];
 
-        dd($response_arr, $update_data);
+        return $result;
     }
 
     // 文字合成语音(火山引擎)