ソースを参照

feat: optimize inquery prompt role

Fmode 5 日 前
コミット
4918ec5b38
2 ファイル変更56 行追加20 行削除
  1. 7 3
      src/app/tab2/tab2.page.html
  2. 49 17
      src/app/tab2/tab2.page.ts

+ 7 - 3
src/app/tab2/tab2.page.html

@@ -39,7 +39,7 @@
       </ion-col>
 
       <ion-col size="12" size-md="6">
-        <ion-card class="feature-card" button (click)="restoreChat('yHEHqMQDNv')">
+        <ion-card class="feature-card" button (click)="restoreChat('0w3es9v8B6')">
           <ion-card-header>
             <ion-icon name="time" color="secondary" class="feature-icon"></ion-icon>
             <ion-card-title>恢复会话</ion-card-title>
@@ -57,7 +57,7 @@
 
     <ion-row>
       <ion-col size="12">
-        <ion-card class="special-feature" button (click)="openInquiry()">
+        <ion-card class="special-feature" button>
           <ion-card-header>
             <ion-icon name="medical" color="danger" class="feature-icon"></ion-icon>
             <ion-card-title>门诊问诊服务</ion-card-title>
@@ -66,10 +66,14 @@
           <ion-card-content>
             我们的医疗智能助手可以为您提供初步的医疗咨询和建议,帮助您了解可能的健康问题。
           </ion-card-content>
-          <ion-button fill="clear" expand="block" color="danger">
+          <ion-button (click)="openInquiry()" fill="clear" expand="block" color="danger">
             进入门诊
             <ion-icon slot="end" name="medkit"></ion-icon>
           </ion-button>
+          <ion-button (click)="openInquiry('0w3es9v8B6')" fill="clear" expand="block" color="primary">
+            恢复对话
+            <ion-icon slot="end" name="medkit"></ion-icon>
+          </ion-button>
         </ion-card>
       </ion-col>
     </ion-row>

+ 49 - 17
src/app/tab2/tab2.page.ts

@@ -48,10 +48,11 @@ export class Tab2Page {
   }
   title:string = "123"
   /** 示例:问诊ChatPanel面板 */
-  openInquiry(){
+  openInquiry(chatId?:string){
     localStorage.setItem("company","E4KpGvTEto")
     let options:ChatPanelOptions = {
       roleId:"2DXJkRsjXK", // 预设,无需更改
+      chatId:chatId, // 若存在,则恢复会话。若不存在,则开启新会话
       onChatInit:(chat:FmodeChat)=>{
         console.log("onChatInit");
         console.log("Chat类",chat);
@@ -72,19 +73,39 @@ export class Tab2Page {
 您是一名亲切和蔼的专业的全科医生,晓晓,年龄36岁,需要完成一次完整的门诊服务。
 
 # 对话环节
-0.导诊(根据用户基本情况,引导挂号合适的科室)
-1.预设的问询方式(感冒问呼吸、肚子疼叩诊)
-- 打招呼,以用户自述为主
-- 当信息充足时候,确认用户症状对应的科室,并进入下一个环节
-2.拓展的问询细节
-例如:用户反映呼吸不畅,拓展出:是否咳嗽;是否感觉痛或者痒等其他需要的问题。
-- 当问询细节补充完成后进入下一个环节
-3.初步的诊断结果,并且同时列出检查检验项目
-初步诊断:确定需要有哪些进一步检查
-检查检验:获取医学客观数据
-- 等待用户提交客观数据,进入下一阶段
-4.给出诊断方案并给出处方
-- 完成处方时,请在消息结尾附带: [完成]
+请您严格按照以下环节和用户展开对话,并且注意完成每个环节时,一定要携带[xx完成]的标记。
+## 1. 导诊环节
+- **开始话语**:
+  - “欢迎来到医院,请问您是第一次来吗?我会帮助您找到合适的科室。”
+- **进入下个环节条件**:
+    - “已经大致了解您反映的情况,建议您到XX科室。[导诊完成]
+
+## 2. 问诊环节
+- **对话内容**:
+  - “请您详细描述一下您的情况,我需要了解您的病史和相关症状。”
+  - “您是否有过敏史或其他健康问题?”
+  - “根据您的情况,我认为我们需要进行一些检查,您觉得可以吗?”
+
+- **进入下个环节的条件**:
+  - “谢谢您的配合,我将为您安排相关检查。[问诊完成]”
+
+## 3. 检查环节
+- **对话内容**:
+  - “我们已经完成了问诊,现在我会为您安排必要的检查。”
+  - “请您稍等,检查结果会在不久后出来。”
+  - “检查结果已经出来了,请您填写下报告的具体数据,让我来为您分析一下。”
+
+- **进入下个环节的条件**:
+  - “检查结果已经初步分析,接下来需要请主任医生开始诊断。[检查完成]”
+
+## 4. 诊断与处方环节
+- **对话内容**:
+  - “根据问诊和检查结果,我的诊断是……”
+  - “接下来,我会为您开具相应的处方,请您仔细阅读治疗方案和注意事项。”
+  - “您是否有任何问题或者需要进一步的解释?”
+
+- **进入下个环节的条件**:
+  - “感谢您的配合,您的处方已经开好,请您按照建议进行后续的治疗或复诊安排。[处方完成]”
 
 # 开始话语
 当您准备好了,可以以一个医生的身份,向来访的用户打招呼。`);
@@ -109,7 +130,7 @@ export class Tab2Page {
         // 对话灵感列表
         let promptList = [
           {
-            cate:"外科",img:"https://file-cloud.fmode.cn/UP2cStyjuk/20231211/r1ltv1023812146.png",
+            cate:"外科123",img:"https://file-cloud.fmode.cn/UP2cStyjuk/20231211/r1ltv1023812146.png",
             messageList:["局部疼痛或肿胀","伤口出血或感染","关节活动受限","体表肿块或结节","外伤后活动障碍","皮肤溃疡不愈合","异物刺入或嵌顿","术后并发症复查","肢体麻木或无力","运动损伤疼痛"]
           },
           {
@@ -163,8 +184,19 @@ export class Tab2Page {
         console.log("onMessage",message)
         let content:any = message?.content
         if(typeof content == "string"){
-          if(content?.indexOf("[完成]")>-1){
-            console.log("门诊已完成")
+          // 根据阶段标记判断下一步处理过程
+          if (content.includes('[导诊完成]')) {
+            // 进入问诊环节
+            console.log('进入问诊环节');
+          } else if (content.includes('[问诊完成]')) {
+            // 进入检查环节
+            console.log('进入检查环节');
+          } else if (content.includes('[检查完成]')) {
+            // 进入诊断与处方环节
+            console.log('进入诊断与处方环节');
+          } else if (content.includes('[处方完成]')) {
+            // 结束会话或其他逻辑
+            console.log('结束会话');
           }
         }
       },