diff --git a/app/Service/common/ai/PromptService.php b/app/Service/common/ai/PromptService.php index b79bf3d3..67ac327e 100644 --- a/app/Service/common/ai/PromptService.php +++ b/app/Service/common/ai/PromptService.php @@ -60,43 +60,6 @@ class PromptService return implode("\n", $info); } - public function genPrescriptionPrompt(array $userInfo, array $drugs): string - { - $patientInfo = $this->formatPatientInfo($userInfo); - $drugsInfo = $this->formatDrugsInfo($drugs); - - $drugsInfo = base64_encode($drugsInfo); - $prompt = "你是一名专业的医生,请根据以下患者信息和可用药品,开具合理的处方: - ## 患者信息: - {$patientInfo} - ## 可用药品列表(base64_encode后的): - {$drugsInfo} - ## 请按照以下JSON格式返回处方建议: - { - \"ai_diagnosis\": \"AI诊断描述\", - \"ai_advice\": \"AI医嘱\", - \"medication_advice\": [ - { -// \"index_id\": \"药品ID\", - \"drug_id\": \"药品ID\", - \"drug_name\": \"药品名称\", - \"single_dosage\": \"单次用量\", - } - ], - \"frequency_description\": \"用药频次说明\", - \"treatment_period\": \"治疗周期说明\", - \"frequency\": \"每天次数(数字格式)\", - \"days\": \"用药天数(数字格式)\" - } - ## 要求: - 1. 诊断要基于患者年龄、病史和当前症状 - 2. 用药建议要合理,考虑药品适应症和患者情况,只能选择我给出的药品列表中的药品 - 3. 单次用量采用数字类型单位都是g - 4. 频次要合理(如:3,就是一天三次的意思) - 5. 用药天数要根据病情严重程度确定"; - - return $prompt; - } // 求签提示词封装 public function genSignPrompt($toDay, $dayDesc = '寻常日'): string @@ -118,4 +81,14 @@ class PromptService $prompt = "今天是{$toDay},{$dayDesc}。请模仿老中医,用他的口吻,根据这个季节和临近的节气,给出现代人的养生方。包含饮食、起居。要用一段或几段描述。切记不要使用md格式,请使用纯文本格式。并且语气要有仙风道骨的感觉,要用文言文来描述,后面加上注解"; return $prompt; } + + // 解惑 + public function genHelpPrompt($toDay, $dayDesc = '寻常日', $question): string + { + if (empty($question)) { + $question = '人生很迷茫'; + } + $prompt = "今天是{$toDay},{$dayDesc}。用户心中有惑:“{$question}”。请以隐世智者或禅师的口吻,结合时令节气为其解惑。包含【机锋】与【指引】。要求:不使用Markdown,纯文本输出。"; + return $prompt; + } } diff --git a/app/Service/common/ai/xunfei/client/XunFeiAiClientV1.php b/app/Service/common/ai/xunfei/client/XunFeiAiClientV1.php index adb5b922..7b196c3c 100755 --- a/app/Service/common/ai/xunfei/client/XunFeiAiClientV1.php +++ b/app/Service/common/ai/xunfei/client/XunFeiAiClientV1.php @@ -32,6 +32,8 @@ class XunFeiAiClientV1 extends BaseClient $prompt = $this->promptService->genSignPrompt($time, $dayDesc); } elseif ($version == 2) { $prompt = $this->promptService->genSignPrompt2($time, $dayDesc); + } elseif ($version == 3) { + $prompt = $this->promptService->genHelpPrompt($time, $dayDesc, request()->post('prompt', '')); } return $prompt. '\n 要求:不使用Markdown,纯文本输出,不要出现有关于Markdown的语法,分段清晰。'; }