Browse Source

将情感选项改成动态获取

lh 1 day ago
parent
commit
9005e572b9
1 changed files with 8 additions and 4 deletions
  1. 8 4
      app/Services/DeepSeek/DeepSeekService.php

+ 8 - 4
app/Services/DeepSeek/DeepSeekService.php

@@ -35,17 +35,21 @@ class DeepSeekService
         $model = getProp($data, 'model', 'r1');
         $model = $model == 'r1' ? 'deepseek-reasoner' : 'deepseek-chat';
 
+        // 获取可选情感
+        $emotion_list = DB::table('mp_emotion_list')->where('is_enabled', 1)->select('emotion_name')->orderBy('id')->get()->pluck('emotion_name')->toArray();
+        $emotion_str = implode('、', $emotion_list);
+
         // 是否启用情感
         $enable_emotion = getProp($data, 'enable_emotion', 0);
         if ($enable_emotion) {
-            $sys_content = '下面有一段小说文本,请帮我将文本中的每句话按从上到下的顺序拆分成角色不同的剧本文稿(不得更改上下文顺序和内容),文稿形式严格按照“角色名(男、女、中性):台词{情感}”输出,需要注意以下几点要求:
+            $sys_content = "下面有一段小说文本,请帮我将文本中的每句话按从上到下的顺序拆分成角色不同的剧本文稿(不得更改上下文顺序和内容),文稿形式严格按照“角色名(男、女、中性):台词{情感}”输出,需要注意以下几点要求:
 1.角色名后不要加入任何其他词语,只能加性别,在男、女或中性中选
 2.非对话部分请全部用旁白角色代替
-3.情感必须在【通用、开心、悲伤、生气、害怕、厌恶、惊讶】中选一个,不得使用其他词语';
+3.情感必须在【{$emotion_str}】中选一个,不得使用其他词语";
         }else {
-            $sys_content = '下面有一段小说文本,请帮我将文本中的每句话按从上到下的顺序拆分成角色不同的剧本文稿(不得更改上下文顺序和内容),文稿形式严格按照“角色名(男、女、中性):台词”输出,需要注意以下几点要求:
+            $sys_content = "下面有一段小说文本,请帮我将文本中的每句话按从上到下的顺序拆分成角色不同的剧本文稿(不得更改上下文顺序和内容),文稿形式严格按照“角色名(男、女、中性):台词”输出,需要注意以下几点要求:
 1.角色名后不要加入任何其他词语,只能加性别,在男、女或中性中选
-2.非对话部分请全部用旁白角色代替';
+2.非对话部分请全部用旁白角色代替";
         }
         
         $messages = [