CN117542509A - 一种基于诊疗指导树和诊疗推理引擎的多轮问诊方法 - Google Patents
一种基于诊疗指导树和诊疗推理引擎的多轮问诊方法 Download PDFInfo
- Publication number
- CN117542509A CN117542509A CN202311651915.4A CN202311651915A CN117542509A CN 117542509 A CN117542509 A CN 117542509A CN 202311651915 A CN202311651915 A CN 202311651915A CN 117542509 A CN117542509 A CN 117542509A
- Authority
- CN
- China
- Prior art keywords
- node
- patient
- tree
- diagnosis
- decision
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000003745 diagnosis Methods 0.000 title claims abstract description 103
- 238000011282 treatment Methods 0.000 title claims abstract description 100
- 238000000034 method Methods 0.000 title claims abstract description 76
- 238000003066 decision tree Methods 0.000 claims abstract description 83
- 230000003993 interaction Effects 0.000 claims abstract description 4
- 208000024891 symptom Diseases 0.000 claims description 20
- 201000010099 disease Diseases 0.000 claims description 15
- 208000037265 diseases, disorders, signs and symptoms Diseases 0.000 claims description 15
- 238000006243 chemical reaction Methods 0.000 claims description 12
- 238000010845 search algorithm Methods 0.000 claims description 6
- 238000007373 indentation Methods 0.000 claims description 3
- 238000011269 treatment regimen Methods 0.000 claims description 3
- 238000011084 recovery Methods 0.000 claims 1
- 230000002452 interceptive effect Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16H—HEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
- G16H50/00—ICT specially adapted for medical diagnosis, medical simulation or medical data mining; ICT specially adapted for detecting, monitoring or modelling epidemics or pandemics
- G16H50/20—ICT specially adapted for medical diagnosis, medical simulation or medical data mining; ICT specially adapted for detecting, monitoring or modelling epidemics or pandemics for computer-aided diagnosis, e.g. based on medical expert systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/332—Query formulation
- G06F16/3329—Natural language query formulation or dialogue systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/01—Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
- G06N5/022—Knowledge engineering; Knowledge acquisition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
- G06N5/027—Frames
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
- G06N5/045—Explanation of inference; Explainable artificial intelligence [XAI]; Interpretable artificial intelligence
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16H—HEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
- G16H50/00—ICT specially adapted for medical diagnosis, medical simulation or medical data mining; ICT specially adapted for detecting, monitoring or modelling epidemics or pandemics
- G16H50/70—ICT specially adapted for medical diagnosis, medical simulation or medical data mining; ICT specially adapted for detecting, monitoring or modelling epidemics or pandemics for mining of medical data, e.g. analysing previous cases of other patients
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Evolutionary Computation (AREA)
- Public Health (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Biomedical Technology (AREA)
- Pathology (AREA)
- Primary Health Care (AREA)
- General Health & Medical Sciences (AREA)
- Epidemiology (AREA)
- Human Computer Interaction (AREA)
- Medical Treatment And Welfare Office Work (AREA)
Abstract
本发明提供了一种基于诊疗指导树和诊疗推理引擎的多轮问诊方法。包括:依据患者主诉检索相关决策树;定义一种大语言模型可执行的诊疗指导树表示方法以及大语言模型易理解的If‑Elif‑Else伪代码结构,并且设计了将决策树转换为这两种结构的方法;设计大语言模型驱动的医疗决策推理引擎,结合患者主诉和大语言模型与患者的对话历史,按照诊疗指导树种的决策思路,使用大语言模型进行逐步判断患者信息是否满足条件节点所述内容。基于以上提出的方法,实现了大语言模型依据诊疗指导树的决策思路,基于诊疗决策推理引擎与患者进行多轮对话的问诊框架。本发明方法可以实现模型与患者之间的交互,并增加大语言模型决策结果的可解释性。
Description
技术领域
本发明涉及自然语言处理技术领域,具体来说涉及自然语言大模型和医疗决策树领域,更具体地说,涉及提供了一种大模型可执行的诊疗指导树LLM-executable CGT表示方法、一种大模型可理解的诊疗指导树If-Elif-Else的伪代码表示方法、大模型驱动的医疗决策引擎CDM-engine和一个大语言模型为患者进行疾病诊断时的多轮问诊方法。
背景技术
在医学领域,由于ChatGPT等大语言模型技术的兴起,大语言模型在医疗领域具有巨大的潜力和应用前景。但是由于语言模型输出结果的过程为端到端的生成,缺乏可解释性,同时也缺乏一个可靠的决策过程。因此,随着大语言模型参与医疗决策过程得到越来越多的重视,也急切的需要一个能够直接被大语言模型所理解和执行的决策过程表示方法。特别的,需要一个能够引导大语言模型在决策树上进行推理,并且能够与患者进行多轮交互,引导患者给出更多信息以此来让大模型进行更加精准的决策的方法。
然而,目前医疗领域使用的决策树表示多为高度结构化的树形结构,不仅每个节点的内容为三元组等强结构或高度抽象的键值属性,而且没有统一的表示方式,不同表示方式下的决策树节点类型繁多,决策树的决策过程也较为复杂。这样的决策树往往只能应用于医院中特定的医疗决策支持系统,难以直接输入ChatGPT等大语言模型,缺乏灵活性并且在理解这些决策树时存在困难。
除此之外,传统的医疗决策树和决策支持系统(CDA)在决策过程中,对每一个节点的判断只有“是”和“否”两种判断结果,不能够判断目前已知的患者信息,能否支持当前步骤的决策,即无法输出“unable to determine”这样的结果。当根据患者信息无法判断是否满足决策树条件时,应当采取交互措施,来于患者或医生进行交互以获取更多的信息,来推进决策过程。而且传统的CDA系统,在遇到这种情况时便会决策失败,无法给出决策结果。
并且,由于大语言模型在进行医疗决策时无法可视化生成过程,即为一种黑盒模型的一步到位式的生成结果,缺乏可解释性。同时大语言模型的生成结果也更倾向于回答QA问题,往往在一次问答中给出多个可能的结果,并为每个结果进行知识性的解释。这对患者并非是友好的回答,因为患者往往只需要较为精确的回答,而不是泛泛的回答可能的疾病。因此,现在的大模型急需一种可行的引导大模型进行合理决策,并生成精准回复的方法,并且将决策过程可视化展示。
总之,现有的决策树表示和推理方法无法满足大语言模型时代的需求,急需一种大模型可执行的决策树表示方法,引导大模型进行多步决策并且能够交互式的获取更多信息来完成更加精准的决策。
发明内容
本发明的目的是提供一种大模型可执行的临床指南决策过程表示方法(LLM-executable CGT)、大语言模型驱动的医疗决策推理引擎(CDM-engine)和Patient-LLM交互式的多轮问诊方法,能够有效的将临床指南的决策树表示成LLM-executable CGT格式,并且在基础上使用CDM-engine进行推理,最终结合两者来实现一个大语言模型为患者进行疾病诊断时的多轮问诊方法。
为了实现上述目的,本发明提供如下方案:
一种基于诊疗指导树和诊疗推理引擎的多轮问诊方法是由基于大语言模型可执行的诊疗指导树和大语言模型驱动的医疗决策推理引擎的大语言模型与患者的多轮问诊方法,包括:
S1:构建决策树知识库,输入患者主诉C,从决策树知识库中检索出与患者主诉相关的决策树T,其表示为:
T=[N1,N2,N3,…Ni…,Nn_node,R1,R2,R3,…Rj…,Rm_relation]
其中,Ni表示决策树中的节点,1≤i≤n_node,n_node为节点总数,其结构为:
{"id":节点id,
"node_content":"医学术语描述词"};
Rj表示节点之间的连接关系,1≤j≤m_relation,m_relation为连接线总数,其结构为:
{"id":连接线id,
"source":"连接线起点",
"target":"连接线终点",
"label":"连接线上的标签"};
S2:将检索得到的决策树T转换成半结构化的大语言模型可执行的诊疗指导树LLM-executable CGT表示形式,所述的LLM-executable CGT是将决策树T作为输入,转换成由根节点、条件节点和动作节点组成,并且节点内容以非结构化的自然语言形式表示的诊疗指导树结构;
S3:将诊疗指导树表示形式转换成易于大语言模型可理解的If-Elif-EIse的伪代码格式LLM-intelligible IEET,所述的将诊疗指导树转换成大语言模型可理解的If-Elif-EIse的伪代码过程为:将大模型可执行的诊疗指导树作为输入,转换成由If、Elif、Else和Action语句构成的伪代码结构,即LLM-intelligible IEET;
S4:依据诊疗指导树,利用基于大语言模型驱动的医疗决策推理引擎CDM-engine进行逐步推理,所述的基于大语言模型驱动的医疗决策推理引擎是使用大语言模型并依据诊疗指导树进行逐步推理决策,生成可解释性的决策过程,并且生成追问,与患者进行多轮交互来得到的更精准的决策;
S5:构建一个完整的基于大语言模型可执行的诊疗指导树、大语言模型可理解的If-Elif-Else表示和大语言模型驱动的医疗决策推理引擎组成的大语言模型与患者交互式的多轮问诊框架。
其中,S1构建决策树索引库,使用患者主诉和基本信息从决策树知识库中检索出与患者主诉症状相关的决策树,具体包括:
S11:使用embedding模型,将决策树向量化,存储于向量数据库ElasticSearch中,用于计算与患者信息的相关度,其中决策树的表示为:
T=[N1,N2,N3,……,Nn_node,R1,R2,R3,……,Rm_relation]
其中,Ni(1≤i≤n_node)表示决策树中的节点,n_node为节点总数,其结构为:{"id":节点id,"node_content":"医学术语描述词"};Rj(1≤j≤m_relation)表示节点之间的连接关系,m_relation为连接线总数,其结构为:{"id":连接线id,"source":"连接线起点","target":"连接线终点","label":"连接线上的标签"};
S12:使用Langchain连接ElasticSearch索引库;
S13:使用HuggingFace的m3e-base模型向量化编码患者的主诉信息;
S14:并使用余弦相似度检索算法从向量数据库中检索出与患者主诉最相似的决策树;
其中,S2将检索得到的决策树T转换成半结构化的大语言模型可执行的诊疗指导树LLM-executable CGT表示形式,具体包括:
S21:定义大语言模型可执行的诊疗指导树为使用自然语言表示医疗决策树内容,并且易于大语言模型理解和执行,能够引导大语言模型按照决策路径逐步执行诊疗决策推理的诊疗指导树;
S22:临床指导树CGT是二叉树结构,由根节点、条件节点和动作节点组成,其表示为:
TCGT=[Root,C1,C2,C3,…Ci,…,Cn_condition_node,A1,A2,A3,…Aj,…Am_action_node]
其中,Root为临床指导树的根节点,有且只有一个,代表临床指导树的名称,一般为患者主诉中经常出现的症状或疾病;
Ci为条件节点,其中1≤i≤n_condition_node,n_condition_node为条件节点总数,Ci是临床指导树中的非叶节点,表示决策过程中需要评估的条件;
Aj为动作节点,其中1≤j≤n_action_node,n_action_node为动作节点总数,Aj是临床指导树中的叶子节点,代表决策的结果;
每个节点均使用非结构化的自然语言的形式表示;
条件节点的结构为:
{"id":节点id,
"parent_id":父节点id,
"conditions":"自然语言形式的条件语句",
"label":"与父节点的分支标签,为Yes分支或No分支"};
S23:输入通过检索得到的决策树T=[N1,N2,N3,……,Nn_node,R1,R2,R3,……,Rm_relation];
S24:将决策树T的根节点作为TCGT,使用大语言模型来对决策树T中的每一个节点进行分类,将其中的包含有判断条件的归类为条件节点Ci,将表示诊断的疾病或治疗方案的归类为动作节点Ai,并加入到TCGT中;
S25:使用大语言模型将条件节点Ci和动作节点Ai的内容改写成自然语言格式;
S26:输出大语言模型可执行的诊疗指导树格式的决策树TCGT。
S3步骤,将诊疗指导树表示形式转换成易于大语言模型可理解的If-Elif-EIse的伪代码格式LLM-intelligible IEET,具体包括:
S31:定义大语言模型可理解的If-Elif-Else表示方式,所述表示方式是一种作为提示直接输入大语言模型的If-Elif-Else伪代码格式,与医疗指导树中的树形结构不同,IEET格式没有使用值属性来表示决策树节点,而是使用If-Elif-Else语句来表示节点内容,并使用层级缩进关系来表示不同节点之间的关系,其结构表示为:
S32:诊疗指导树TCGT=[Root,C1,C2,C3,……,Cn_condition_node,A1,A2,A3,……Am_action_node]构建成二叉树格式,输入到CGT2IEET转化算法中,输出序列SIEET表示由IF、Elif、Else和Action组成的文本,其表示为:
SIEET=CGT2IEET(TCGT)
其中,CGT2IEET转化算法用于将治疗指导树转换成If-Elif-Else结构的伪代码格式;
S33:CGT2IEET算法使用深度优先搜索算法从根节点开始遍历诊疗指导树TCGT,遍历到第一个条件节点Ci时,将Ci改写成If语句,拼接到Sr中;
然后使用CGT2IEET算你发遍历该节点的Yes分支,得到Ci子树的IEET表示Si-yes-branch,接着以[\r\t]Si-yes-branch的形式拼接到Sr中,其表示为:
Sr=Ci-if+[\r\t]Si-yes-branch
其中,Sr为CGT2IEET算法的返回结果,\r为换行符,\t为缩进符;
S34:继续遍历节点Ci的“No”分支,如果Ci的“No”分支的子节点为条件节点Cj,则将节点Cj改写成Elif语句,拼接到Sr中,接着遍历节点Cj的Yes分支,重复S33所述的过程,得到Cj子树的IEET表示Sj-subtree,然后以[\r\t]Sj-subree的形式拼接到Sr中,其表示为:
Sr=Sr+Cj-elif+[\r\t]Sj-subtree
S35:如果Ci的No分支的子节点为动作节点Ak,则将节点Ak改写成Action语句,以Else[\r\t]:Ak的形式拼接到Sr中。CGT2IEET算法执行完毕,返回结果Sr;
S36:输出转换完成LLM-intelligible IEET结构的决策树SIEET。
S4步骤,依据诊疗指导树,利用基于大语言模型驱动的医疗决策推理引擎CDM-engine进行逐步推理,具体包括:
S41:接收患者的原始主诉CC,将对话历史Hdialog置空,获取当前待判断的诊疗指导树中条件节点Ci的内容,作为推理引擎的输入;
S42:将患者原始主诉CC,对话历史Hdialog,当前条件节点的判断条件Ci构造成一个输入到大语言模型中的提示语Prompt,并设定让大语言模型依据患者原始主诉和历史对话来判断患者是否满足条件节点Ci所述条件的任务Ti,Prompt表示为;
Prompt="你需要依据患者的主诉和对话历史来判断患者是否有条件中所描述的症状,如果依据已知的患者信息能够判断出患者有条件中描述的症状,则输出Yes;如果能够判断患者没有该症状,则输出No;如果已知的患者信息不足以判断患者是否有相应的症状,则输出Unable to determine。"+"患者主诉为:"+CC+";对话历史为:"+Hdialog+";条件为:"+Ci+";患者是否有条件所描述的症状:";
S43:调用大语言模型,将Prompt输入到大语言模型中,并输出任务Ti的判断结果;
S44:当判断结果为“Yes”或“No”时,即患者满足或不满足当前条件节点所述条件,则跳转到当前节点Ci的“Yes”或“No”分支对应的下一个节点,当下一个节点为条件节点Ci+1时,则重复S41步骤,当下一个节点为动作节点Aj时,则推理结束,根据动作节点Aj的内容输出决策方案;
S45:当判断结果为“Unable to determine”时,则表示依据当前患者的主诉CC和历史对话Hdialog中的信息,不足以判断患者是否满足当前条件,需要更多的患者信息,则根据条件节点Ci的内容,生成一个问题Q,询问患者是否存在条件节点Ci中提及的信息;
S46:获取患者回复,当患者在回复中给予肯定或否定的回答时,则将本轮大语言模型的问题Q与患者的回复加入到历史对话Hdialog当中,重复S42步骤来进行判断;
S47:当患者不清楚自己是否具有问题Q中提及的相关信息,回复为“我不知道”,则使用S3中所述方法将当前条件节点Ci为根节点的子树转换成LLM-intelligible IEET结构,依据S57的步骤构造提示语Prompt,输入到大语言模型中,让模型依据子树生成患者在不同情况下的决策方案。
S5步骤,构建一个完整的基于大语言模型可执行的诊疗指导树、大语言模型可理解的If-Elif-Else表示和大语言模型驱动的医疗决策推理引擎组成的大语言模型与患者交互式的多轮问诊框架,具体包括,
S51:输入患者主诉;
S52:使用S1中所述方法检索出与患者信息相关的决策树T,并将决策树T转换成大语言模型可执行的诊疗指导树TCGT的表示形式;
S53:使用深度优先搜索算法从根节点开始遍历诊疗指导树TCGT;
S54:遍历到条件节点Ci时,使用诊疗决策引擎CDM-engine来判断患者是否满足条件节点所述内容,按照S4中所述步骤,依据患者不同回复作出相应的处理;S55:重复S54步骤,直到输出决策结果为止;
S56:当决策结果为动作节点Ai时,使用患者主诉CC和动作节点Ai的内容,构造引导大语言模型生成诊断结果的Prompt,其表示为:
Prompt="患者的主诉为:"+CC+"根据诊断决策得知患者可能患有的疾病为:"+Ai+"请根据这个诊断结果生成给患者的回复。";
将构造的Prompt输入到大语言模型中,返回给患者诊疗决策结果;
S57:当决策结果为以条件节点Ci为根节点的子树转换得到LLM-intelligibleIEET结构的决策树SIEET时,使用患者主诉CC和SIEET构造引导大语言模型生成在不同情况下患者可能患有的疾病,其表示为:
Prompt="患者的主诉为:"+CC+"根据诊断决策得知患者以下几种情况下可能患有的疾病为:"+Ai+"请根据这个诊断结果生成给患者的回复。";
将构造的Prompt输入到大模型中,返回给患者诊断结果。
从以上技术方案可以看出,本发明通过检索出与患者主诉相关的决策树,定义了LLM-executable CGT和LLM-interactive IEET两种大语言模型可以直接执行和交互的决策树表示方法,并将检索得到的决策树转换成了这两种表示方式,接着设计了一个大语言模型驱动的诊疗决策推理引擎,能够引导大语言模型在诊疗指导树上进行多步推理,同时生成进一步的追问和诊断结果;基于这些方法,我们实现了一个完整的大语言模型在为患者进行诊断时的多轮问诊方法。该方法所构造的大语言模型交互式的为患者进行诊疗决策的方法的优点:(1)更精准,能够引导大语言模型于患者进行多轮问答,通过不断的交互来获取患者的信息,以此来实现更加准确的诊疗决策;(2)高可靠,大语言模型按照诊疗指导树的决策过程来为患者进行诊疗决策,并在已知信息不足以继续推理时,引导大语言模型进一步追问患者,以此来实现诊疗决策思路可视化,更具有可解释性的决策。(3)易于理解,新定义了两种大语言模型可以直接执行和交互的决策树表示方式,使用自然语言和半结构化的表示决策树,不同于传统决策树高结构化的表示,大语言模型更容易理解决策树内容和其中的决策过程。
附图说明
读者在参照附图阅读了本发明的具体实施方式以后,将会更清楚地了解本发明的各个方面。其中,
图1示出本发明提出的大语言模型可执行的诊疗指导树的树形结构表示方法(LLM-executable CGT),以及树的组成;
图2示出本发明提出的大语言模型可交互的If-Elif-Else的伪代码表示方式(LLM-interactive IEET)。
图3示出本发明提出的诊疗决策推理引擎(CDM-engine)。
图4示出本发明提出的大语言模型与患者交互的多轮问诊方法示例图。
图5示出本发明提出基于诊疗指导树和诊疗推理引擎的多轮问诊方法图。
具体实施方式
本发明提出的一种基于大语言模型可执行的诊疗指导树(LLM-executable CGT)和大语言模型驱动的医疗决策推理引擎(CDM-engine)的大语言模型与患者的多轮问诊过程,主要分为检索相关决策树、将检索得到的决策树转换成大语言模型可执行的诊疗指导树表示方法、将诊疗指导树转换成大语言模型交互的If-Elif-Else的表示方法、使用大语言模型驱动的医疗决策推理引擎(CDM-engine)在CGT上进行逐步推理和依据CDM推理结果来实现实现大语言模型与患者交互式的多轮问诊这5个步骤。
S1:构建决策树索引库,使用患者主诉和基本信息从决策树知识库中检索出与患者主诉症状相关的决策树,具体包括:
S11:使用embedding模型,将决策树向量化,存储于向量数据库ElasticSearch中,用于计算与患者信息的相关度,其中决策树的表示为:
T=[N1,N2,N3,……,Nn_node,R1,R2,R3,……,Rm_relation]
其中,Ni(1≤i≤n_node)表示决策树中的节点,n_node为节点总数,其结构为:{"id":节点id,"node_content":"医学术语描述词"};Rj(1≤j≤m_relation)表示节点之间的连接关系,m_relation为连接线总数,其结构为:{"id":连接线id,"source":"连接线起点","target":"连接线终点","label":"连接线上的标签"};
S12:使用Langchain连接ElasticSearch索引库;
S13:使用HuggingFace的m3e-base模型向量化编码患者的主诉信息;
S14:并使用余弦相似度检索算法从向量数据库中检索出与患者主诉最相似的决策树。
S2:将检索得到的决策树T转换成半结构化的大语言模型可执行的诊疗指导树LLM-executable CGT表示形式,具体包括:
S21:定义大语言模型可执行的诊疗指导树为使用自然语言表示医疗决策树内容,并且易于大语言模型理解和执行,能够引导大语言模型按照决策路径逐步执行诊疗决策推理的诊疗指导树;
S22:临床指导树CGT是二叉树结构,由根节点、条件节点和动作节点组成,其表示为:
TCGT=[Root,C1,C2,C3,…Ci,…,Cn_condition_node,A1,A2,A3,…Aj,…Am_action_node]
其中,Root为临床指导树的根节点,有且只有一个,代表临床指导树的名称,一般为患者主诉中经常出现的症状或疾病;
Ci为条件节点,其中1≤i≤n_condition_node,n_condition_node为条件节点总数,Ci是临床指导树中的非叶节点,表示决策过程中需要评估的条件;
Aj为动作节点,其中1≤j≤n_action_node,n_action_node为动作节点总数,Aj是临床指导树中的叶子节点,代表决策的结果;
每个节点均使用非结构化的自然语言的形式表示;
条件节点的结构为:
{"id":节点id,
"parent_id":父节点id,
"conditions":"自然语言形式的条件语句",
"label":"与父节点的分支标签,为Yes分支或No分支"};
S23:输入通过检索得到的决策树T=[N1,N2,N3,……,Nn_node,R1,R2,R3,……,Rm_relation];
S24:将决策树T的根节点作为TCGT,使用大语言模型来对决策树T中的每一个节点进行分类,将其中的包含有判断条件的归类为条件节点Ci,将表示诊断的疾病或治疗方案的归类为动作节点Ai,并加入到TCGT中;
S25:使用大语言模型将条件节点Ci和动作节点Ai的内容改写成自然语言格式;
S26:输出大语言模型可执行的诊疗指导树格式的决策树TCGT。
S3:将诊疗指导树表示形式转换成易于大语言模型可理解的If-Elif-EIse的伪代码格式LLM-intelligible IEET,具体包括:
S31:定义大语言模型可理解的If-Elif-Else表示方式,所述表示方式是一种作为提示直接输入大语言模型的If-Elif-Else伪代码格式,与医疗指导树中的树形结构不同,IEET格式没有使用值属性来表示决策树节点,而是使用If-Elif-Else语句来表示节点内容,并使用层级缩进关系来表示不同节点之间的关系,其结构表示为:
S32:诊疗指导树TCGT=[Root,C1,C2,C3,……,Cn_condition_node,A1,A2,A3,……Am_action_node]构建成二叉树格式,输入到CGT2IEET转化算法中,输出序列SIEET表示由IF、Elif、Else和Action组成的文本,其表示为:
SIEET=CGT2IEET(TCGT)
其中,CGT2IEET转化算法用于将治疗指导树转换成If-Elif-Else结构的伪代码格式;
S33:CGT2IEET算法使用深度优先搜索算法从根节点开始遍历诊疗指导树TCGT,遍历到第一个条件节点Ci时,将Ci改写成If语句,拼接到Sr中;
然后使用CGT2IEET算你发遍历该节点的Yes分支,得到Ci子树的IEET表示Si-yes-branch,接着以[\r\t]Si-yes-branch的形式拼接到Sr中,其表示为:
Sr=Ci-if+[\r\t]Si-yes-branch
其中,Sr为CGT2IEET算法的返回结果,\r为换行符,\t为缩进符;
S34:继续遍历节点Ci的“No”分支,如果Ci的“No”分支的子节点为条件节点Cj,则将节点Cj改写成Elif语句,拼接到Sr中,接着遍历节点Cj的Yes分支,重复S33所述的过程,得到Cj子树的IEET表示Sj-subtree,然后以[\r\t]Sj-subree的形式拼接到Sr中,其表示为:
Sr=Sr+Cj-elif+[\r\t]Sj-subtree
S35:如果Ci的No分支的子节点为动作节点Ak,则将节点Ak改写成Action语句,以Else[\r\t]:Ak的形式拼接到Sr中。CGT2IEET算法执行完毕,返回结果Sr;
S36:输出转换完成LLM-intelligible IEET结构的决策树SIEET。
S4:如图3所示,依据诊疗指导树,利用基于大语言模型驱动的医疗决策推理引擎CDM-engine进行逐步推理,具体包括:
S41:接收患者的原始主诉CC,将对话历史Hdialog置空,获取当前待判断的诊疗指导树中条件节点Ci的内容,作为推理引擎的输入;
S42:将患者原始主诉CC,对话历史Hdialog,当前条件节点的判断条件Ci构造成一个输入到大语言模型中的提示语Prompt,并设定让大语言模型依据患者原始主诉和历史对话来判断患者是否满足条件节点Ci所述条件的任务Ti,Prompt表示为;
Prompt="你需要依据患者的主诉和对话历史来判断患者是否有条件中所描述的症状,如果依据已知的患者信息能够判断出患者有条件中描述的症状,则输出Yes;如果能够判断患者没有该症状,则输出No;如果已知的患者信息不足以判断患者是否有相应的症状,则输出Unable to determine。"+"患者主诉为:"+CC+";对话历史为:"+Hdialog+";条件为:"+Ci+";患者是否有条件所描述的症状:";
S43:调用大语言模型,将Prompt输入到大语言模型中,并输出任务Ti的判断结果;
S44:当判断结果为“Yes”或“No”时,即患者满足或不满足当前条件节点所述条件,则跳转到当前节点Ci的“Yes”或“No”分支对应的下一个节点,当下一个节点为条件节点Ci+1时,则重复S41步骤,当下一个节点为动作节点Aj时,则推理结束,根据动作节点Aj的内容输出决策方案;
S45:当判断结果为“Unable to determine”时,则表示依据当前患者的主诉CC和历史对话Hdialog中的信息,不足以判断患者是否满足当前条件,需要更多的患者信息,则根据条件节点Ci的内容,生成一个问题Q,询问患者是否存在条件节点Ci中提及的信息;
S46:获取患者回复,当患者在回复中给予肯定或否定的回答时,则将本轮大语言模型的问题Q与患者的回复加入到历史对话Hdialog当中,重复S42步骤来进行判断;
S47:当患者不清楚自己是否具有问题Q中提及的相关信息,回复为“我不知道”,则使用S3中所述方法将当前条件节点Ci为根节点的子树转换成LLM-intelligible IEET结构,依据S57的步骤构造提示语Prompt,输入到大语言模型中,让模型依据子树生成患者在不同情况下的决策方案。
S5步骤,构建一个完整的基于大语言模型可执行的诊疗指导树、大语言模型可理解的If-Elif-Else表示和大语言模型驱动的医疗决策推理引擎组成的大语言模型与患者交互式的多轮问诊框架,具体包括,
S51:输入患者主诉;
S52:使用S1中所述方法检索出与患者信息相关的决策树T,并将决策树T转换成大语言模型可执行的诊疗指导树TCGT的表示形式;
S53:使用深度优先搜索算法从根节点开始遍历诊疗指导树TCGT;
S54:遍历到条件节点Ci时,使用诊疗决策引擎CDM-engine来判断患者是否满足条件节点所述内容,按照S4中所述步骤,依据患者不同回复作出相应的处理;S55:重复S54步骤,直到输出决策结果为止;
S56:当决策结果为动作节点Ai时,使用患者主诉CC和动作节点Ai的内容,构造引导大语言模型生成诊断结果的Prompt,其表示为:
Prompt="患者的主诉为:"+CC+"根据诊断决策得知患者可能患有的疾病为:"+Ai+"请根据这个诊断结果生成给患者的回复。";
将构造的Prompt输入到大语言模型中,返回给患者诊疗决策结果;
S57:当决策结果为以条件节点Ci为根节点的子树转换得到LLM-intelligibleIEET结构的决策树SIEET时,使用患者主诉CC和SIEET构造引导大语言模型生成在不同情况下患者可能患有的疾病,其表示为:
Prompt="患者的主诉为:"+CC+"根据诊断决策得知患者以下几种情况下可能患有的疾病为:"+Ai+"请根据这个诊断结果生成给患者的回复。";
将构造的Prompt输入到大模型中,返回给患者诊断结果。
Claims (5)
1.一种基于诊疗指导树和诊疗推理引擎的多轮问诊方法,其特征在于,所述多轮问诊方法利用了基于大语言模型可执行的诊疗指导树和大语言模型驱动的医疗决策推理引擎进行大语言模型与患者之间的自动化的多轮问诊,具体步骤为:
S1:构建决策树知识库,输入患者主诉C,从决策树知识库中检索出与患者主诉相关的决策树T,其表示为:
T=[N1,N2,N3,…Ni…,Nn_node,R1,R2,R3,…Rj…,Rm_relation]
其中,Ni表示决策树中的节点,1≤i≤n_node,n_node为节点总数,其结构为:
{"id":节点id,
"node_content":"医学术语描述词"};
Rj表示节点之间的连接关系,1≤j≤m_relation,m_relation为连接线总数,其结构为:
{"id":连接线id,
"source":"连接线起点",
"target":"连接线终点",
"label":"连接线上的标签"};
S2:将检索得到的决策树T转换成半结构化的大语言模型可执行的诊疗指导树LLM-executable CGT表示形式,所述的LLM-executable CGT是将决策树T作为输入,转换成由根节点、条件节点和动作节点组成,并且节点内容以非结构化的自然语言形式表示的诊疗指导树结构;
S3:将诊疗指导树表示形式转换成易于大语言模型可理解的If-Elif-EIse的伪代码格式LLM-intelligible IEET,所述的将诊疗指导树转换成大语言模型可理解的If-Elif-EIse的伪代码过程为:将大模型可执行的诊疗指导树作为输入,转换成由If、Elif、Else和Action语句构成的伪代码结构,即LLM-intelligible IEET;
S4:依据诊疗指导树,利用基于大语言模型驱动的医疗决策推理引擎CDM-engine进行逐步推理,所述的基于大语言模型驱动的医疗决策推理引擎是使用大语言模型并依据诊疗指导树进行逐步推理决策,生成可解释性的决策过程,并且生成追问,与患者进行多轮交互来得到的更精准的决策;
S5:构建一个完整的基于大语言模型可执行的诊疗指导树、大语言模型可理解的If-Elif-Else表示和大语言模型驱动的医疗决策推理引擎组成的大语言模型与患者交互式的多轮问诊框架。
2.根据权利要求1所述的一种基于诊疗指导树和诊疗推理引擎的多轮问诊方法,其特征在于:在所述的步骤S2中将决策树作为输入,转换成由根节点、条件节点和动作节点组成的并且节点内容以非结构化的自然语言形式表示的诊疗指导树结构,所述步骤S2具体包括:
S21:定义大语言模型可执行的诊疗指导树为使用自然语言表示医疗决策树内容,并且易于大语言模型理解和执行,能够引导大语言模型按照决策路径逐步执行诊疗决策推理的诊疗指导树;
S22:临床指导树CGT是二叉树结构,由根节点、条件节点和动作节点组成,其表示为:
TCGT=[Root,C1,C2,C3,…Ci,…,Cn_condition_node,A1,A2,A3,…Aj,…Am_action_node]
其中,Root为临床指导树的根节点,有且只有一个,代表临床指导树的名称,一般为患者主诉中经常出现的症状或疾病;
Ci为条件节点,其中1≤i≤n_condition_node,n_condition_node为条件节点总数,Ci是临床指导树中的非叶节点,表示决策过程中需要评估的条件;
Aj为动作节点,其中1≤j≤n_action_node,n_action_node为动作节点总数,Aj是临床指导树中的叶子节点,代表决策的结果;
每个节点均使用非结构化的自然语言的形式表示;
条件节点的结构为:
{"id":节点id,
"parent_id":父节点id,
"conditions":"自然语言形式的条件语句",
"label":"与父节点的分支标签,为Yes分支或No分支"};
S23:输入通过检索得到的决策树T=[N1,N2,N3,……,Nn_node,R1,R2,R3,……,Rm_relation];
S24:将决策树T的根节点作为TCGT,使用大语言模型来对决策树T中的每一个节点进行分类,将其中的包含有判断条件的归类为条件节点Ci,将表示诊断的疾病或治疗方案的归类为动作节点Ai,并加入到TCGT中;
S25:使用大语言模型将条件节点Ci和动作节点Ai的内容改写成自然语言格式;
S26:输出大语言模型可执行的诊疗指导树格式的决策树TCGT。
3.根据权利要求1所述的一种基于诊疗指导树和诊疗推理引擎的多轮问诊方法,其特征在于:所述的将诊疗指导树转换成大语言模型可理解的If-Elif-Else的表示的方法是将大模型可执行的诊疗指导树作为输入,转换成由If、Elif、Else和Action语句构成的伪代码结构,所述步骤S3具体包括:
S31:定义大语言模型可理解的If-Elif-Else表示方式,所述表示方式是一种作为提示直接输入大语言模型的If-Elif-Else伪代码格式,与医疗指导树中的树形结构不同,IEET格式没有使用值属性来表示决策树节点,而是使用If-Elif-Else语句来表示节点内容,并使用层级缩进关系来表示不同节点之间的关系,其结构表示为:
S32:诊疗指导树TCGT=[Root,C1,C2,C3,……,Cn_condition_node,A1,A2,A3,……Am_action_node]构建成二叉树格式,输入到CGT2IEET转化算法中,输出序列SIEET表示由IF、Elif、Else和Action组成的文本,其表示为:
SIEET=CGT2IEET(TCGT)
其中,CGT2IEET转化算法用于将治疗指导树转换成If-Elif-Else结构的伪代码格式;
S33:CGT2IEET算法使用深度优先搜索算法从根节点开始遍历诊疗指导树TCGT,遍历到第一个条件节点Ci时,将Ci改写成If语句,拼接到Sr中;
然后使用CGT2IEET算你发遍历该节点的Yes分支,得到Ci子树的IEET表示Si-yes-branch,接着以[\r\t]Si-yes-branch的形式拼接到Sr中,其表示为:
Sr=Ci-if+[\r\t]Si-yes-branch
其中,Sr为CGT2IEET算法的返回结果,\r为换行符,\t为缩进符;
S34:继续遍历节点Ci的“No”分支,如果Ci的“No”分支的子节点为条件节点Cj,则将节点Cj改写成Elif语句,拼接到Sr中,接着遍历节点Cj的Yes分支,重复S33所述的过程,得到Cj子树的IEET表示Sj-subtree,然后以[\r\t]Sj-subree的形式拼接到Sr中,其表示为:
Sr=Sr+Cj-elif+[\r\t]Sj-subtree
S35:如果Ci的No分支的子节点为动作节点Ak,则将节点Ak改写成Action语句,以Else[\r\t]:Ak的形式拼接到Sr中。CGT2IEET算法执行完毕,返回结果Sr;
S36:输出转换完成LLM-intelligible IEET结构的决策树SIEET。
4.根据权利要求1所述的一种基于诊疗指导树和诊疗推理引擎的多轮问诊方法,其特征在于:运用大语言模型在诊疗指导树上进行逐步推理决策,能够生成可解释性的决策过程,并且可以生成追问和患者进行多轮交互来得到更精准的决策,所述步骤S4具体包括:
S41:接收患者的原始主诉CC,将对话历史Hdialog置空,获取当前待判断的诊疗指导树中条件节点Ci的内容,作为推理引擎的输入;
S42:将患者原始主诉CC,对话历史Hdialog,当前条件节点的判断条件Ci构造成一个输入到大语言模型中的提示语Prompt,并设定让大语言模型依据患者原始主诉和历史对话来判断患者是否满足条件节点Ci所述条件的任务Ti,Prompt表示为;
Prompt="你需要依据患者的主诉和对话历史来判断患者是否有条件中所描述的症状,如果依据已知的患者信息能够判断出患者有条件中描述的症状,则输出Yes;如果能够判断患者没有该症状,则输出No;如果已知的患者信息不足以判断患者是否有相应的症状,则输出Unable to determine。"+"患者主诉为:"+CC+";对话历史为:"+Hdialog+";条件为:"+Ci+";患者是否有条件所描述的症状:";
S43:调用大语言模型,将Prompt输入到大语言模型中,并输出任务Ti的判断结果;
S44:当判断结果为“Yes”或“No”时,即患者满足或不满足当前条件节点所述条件,则跳转到当前节点Ci的“Yes”或“No”分支对应的下一个节点,当下一个节点为条件节点Ci+1时,则重复S41步骤,当下一个节点为动作节点Aj时,则推理结束,根据动作节点Aj的内容输出决策方案;
S45:当判断结果为“Unable to determine”时,则表示依据当前患者的主诉CC和历史对话Hdialog中的信息,不足以判断患者是否满足当前条件,需要更多的患者信息,则根据条件节点Ci的内容,生成一个问题Q,询问患者是否存在条件节点Ci中提及的信息;
S46:获取患者回复,当患者在回复中给予肯定或否定的回答时,则将本轮大语言模型的问题Q与患者的回复加入到历史对话Hdialog当中,重复S42步骤来进行判断;
S47:当患者不清楚自己是否具有问题Q中提及的相关信息,回复为“我不知道”,则使用S3中所述方法将当前条件节点Ci为根节点的子树转换成LLM-intelligible IEET结构,依据S57的步骤构造提示语Prompt,输入到大语言模型中,让模型依据子树生成患者在不同情况下的决策方案。
5.根据权利要求1所述的一种基于诊疗指导树和诊疗推理引擎的多轮问诊方法,其特征在于:一个完整的基于大语言模型驱动的医疗决策推理引擎、大语言模型可理解的If-Elif-Else和于大语言模型驱动的医疗决策推理引擎的大语言模型与患者交互式的多轮问诊框架,用于可视化决策过程,与患者进行多轮问答,引导大语言模型主动收集患者信息,输出更加可靠准确的诊疗结果,所述步骤S5具体包括:
S51:输入患者主诉;
S52:使用S1中所述方法检索出与患者信息相关的决策树T,并将决策树T转换成大语言模型可执行的诊疗指导树TCGT的表示形式;
S53:使用深度优先搜索算法从根节点开始遍历诊疗指导树TCGT;
S54:遍历到条件节点Ci时,使用诊疗决策引擎CDM-engine来判断患者是否满足条件节点所述内容,按照S4中所述步骤,依据患者不同回复作出相应的处理;
S55:重复S54步骤,直到输出决策结果为止;
S56:当决策结果为动作节点Ai时,使用患者主诉CC和动作节点Ai的内容,构造引导大语言模型生成诊断结果的Prompt,其表示为:
Prompt="患者的主诉为:"+CC+"根据诊断决策得知患者可能患有的疾病为:"+Ai+"请根据这个诊断结果生成给患者的回复。";
将构造的Prompt输入到大语言模型中,返回给患者诊疗决策结果;
S57:当决策结果为以条件节点Ci为根节点的子树转换得到LLM-intelligible IEET结构的决策树SIEET-时,使用患者主诉CC和SIEET构造引导大语言模型生成在不同情况下患者可能患有的疾病,其表示为:
Prompt="患者的主诉为:"+CC+"根据诊断决策得知患者以下几种情况下可能患有的疾病为:"+Ai+"请根据这个诊断结果生成给患者的回复。";
将构造的Prompt输入到大模型中,返回给患者诊断结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311651915.4A CN117542509A (zh) | 2023-12-04 | 2023-12-04 | 一种基于诊疗指导树和诊疗推理引擎的多轮问诊方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311651915.4A CN117542509A (zh) | 2023-12-04 | 2023-12-04 | 一种基于诊疗指导树和诊疗推理引擎的多轮问诊方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117542509A true CN117542509A (zh) | 2024-02-09 |
Family
ID=89787982
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311651915.4A Pending CN117542509A (zh) | 2023-12-04 | 2023-12-04 | 一种基于诊疗指导树和诊疗推理引擎的多轮问诊方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117542509A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117786091A (zh) * | 2024-02-20 | 2024-03-29 | 中国人民解放军32806部队 | 基于苏格拉底式提问的自启发智能问答实现方法及系统 |
CN117932042A (zh) * | 2024-03-21 | 2024-04-26 | 支付宝(杭州)信息技术有限公司 | 作为医生代理的大语言模型的评测方法和装置 |
-
2023
- 2023-12-04 CN CN202311651915.4A patent/CN117542509A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117786091A (zh) * | 2024-02-20 | 2024-03-29 | 中国人民解放军32806部队 | 基于苏格拉底式提问的自启发智能问答实现方法及系统 |
CN117786091B (zh) * | 2024-02-20 | 2024-05-10 | 中国人民解放军32806部队 | 基于苏格拉底式提问的自启发智能问答实现方法及系统 |
CN117932042A (zh) * | 2024-03-21 | 2024-04-26 | 支付宝(杭州)信息技术有限公司 | 作为医生代理的大语言模型的评测方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Cheng et al. | Binding language models in symbolic languages | |
CN117542509A (zh) | 一种基于诊疗指导树和诊疗推理引擎的多轮问诊方法 | |
Ribeiro et al. | Predicting state changes in procedural text using analogical question answering | |
CN109741824A (zh) | 一种基于机器学习的医疗问诊方法 | |
CN115757715A (zh) | 一种基于知识图谱表示学习的复杂问题多跳智能问答方法 | |
Munch et al. | Towards interactive causal relation discovery driven by an ontology | |
CN114996423A (zh) | 一种基于子问题剪枝的水利知识图谱复杂问答方法 | |
CN114117000A (zh) | 应答方法、装置、设备及存储介质 | |
CN116821294A (zh) | 一种基于隐式知识反刍的问答推理方法和装置 | |
CN117634617B (zh) | 知识密集型推理问答方法、装置、电子设备和存储介质 | |
Liu et al. | Repairing and reasoning with inconsistent and uncertain ontologies | |
CN111444316B (zh) | 一种面向知识图谱问答的复合问句解析方法 | |
CN116415661A (zh) | 一种融合子图增强和关系语义的归纳关系预测方法及应用 | |
Saini et al. | Domobot: An ai-empowered bot for automated and interactive domain modelling | |
CN115617954A (zh) | 问答方法、装置、电子设备及存储介质 | |
Hamidi et al. | Active imitation learning of hierarchical policies | |
CN110442690B (zh) | 一种基于概率推理的询问优化方法、系统和介质 | |
Salam et al. | Probabilistic rule learning systems: A survey | |
Tsakonas et al. | An evolutionary system for neural logic networks using genetic programming and indirect encoding | |
CN117668259B (zh) | 基于知识图谱的内外规数据联动分析方法及装置 | |
Maroun | A survey on ontology operations techniques | |
Palagin et al. | Fundamentals of the Integrated Use of Neural Network and Ontolinguistic Paradigms: A Comprehensive Approach | |
Goossens et al. | GPT-3 for Decision Logic Modeling. | |
Liao | Semantic annotations for systems interoperability in a PLM environment | |
CN117271561B (zh) | 一种基于大语言模型的sql语句生成方法、装置及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |