DR.KNOWS:医疗图谱UMLS + 图神经网络 + LLM 模拟医生的诊断推理过程, 从症状出发找到可能的诊断结果
DR.KNOWS:医疗图谱UMLS + 图神经网络 + LLM 模拟医生的诊断推理过程, 从症状出发找到可能的诊断结果
- 理解要点
- 解法拆解
- 全流程分析
- 图神经网络的训练
- 论文大纲
- 核心模式
- 真实应用中,为什么说俩跳推理过于简化?
论文:Leveraging A Medical Knowledge Graph into Large Language Models for Diagnosis Prediction
理解要点
-
背景与问题:
具体问题:电子健康记录(EHR)中的临床叙述过于复杂冗长,导致医护人员认知超负荷,可能造成诊断错误。
医生经常跳过冗长重复的内容,依赖启发式决策,增加了诊断错误的风险。
-
概念性质:
- DR.KNOWS是一个结合医学知识图谱和大模型的新方法
- 性质:通过知识图谱增强LLM在自动诊断生成方面的能力
- 原因:需要确保诊断准确性,减少错误,防止患者伤害
-
正反例对比:
正例:ChatGPT+Path能正确预测"败血症"诊断,因为它利用了知识图谱中"血液"和其他症状的关联
反例:普通T5模型容易生成与诊断和疾病无关的概念,准确率较低 -
类比理解:
DR.KNOWS就像一个有经验的医生助手:
- 知识图谱相当于医生的专业知识储备
- 大语言模型相当于医生的推理能力
- 两者结合能更准确地做出诊断
-
概念总结:
DR.KNOWS是一个将医学知识图谱(KG)整合到大模型(LLMs)中的创新方法,通过知识图谱辅助解释和总结复杂医学概念,提高自动诊断的准确性。 -
概念重组:
DR.KNOWS可以理解为"诊断推理知识图谱系统",体现了诊断(D)、推理®和知识(KNOWS)的核心要素。 -
上下文关联:
文章论证了在诊断生成任务中,结合知识图谱的方法比单纯使用语言模型效果更好,支持了论文的主要论点。 -
主要矛盾:
大语言模型在医疗领域应用时的准确性与可靠性问题。 -
功能分析:
核心功能是提高自动诊断的准确性和可解释性。
通过以下方式实现:
- 利用知识图谱提供医学专业知识
- 结合语言模型的推理能力
- 提供可解释的诊断路径
- 梳理脉络:
研究背景→提出问题→提出DR.KNOWS解决方案→实验验证→得出结论,论证了结合知识图谱可以提升大语言模型在医疗诊断领域的表现。
主要贡献:
- 提出了新的图模型 DR.KNOWS (诊断推理知识图谱):
- 利用 UMLS 医疗知识图谱识别可能的诊断
- 使用多跳路径选择找到相关的诊断路径
- 提供可解释的诊断推理过程
- 与大语言模型(LLM)的集成方法:
- 将知识路径作为提示词用于微调的 T5 模型和零样本 ChatGPT
- 相比基准方法展示了更好的性能
- 通过诊断路径保持可解释性
主要结果:
- DR.KNOWS 相比基准方法获得了更高的精确率和 F1 分数
- 加入路径信息的 T5 模型表现更好:
- 最佳 ROUGE-L 分数:30.72 (VanillaT5 + 路径)
- 最佳 CUI F1分数:27.78 (VanillaT5 + 路径)
- ChatGPT 有效地利用知识路径进行诊断推理
局限性:
- 依赖于电子健康记录数据和 UMLS 知识图谱的质量
- 仅限于单一带注释的电子健康记录数据集
- 缺乏与其他类型临床数据的整合
- 需要专家评估和更广泛的临床验证
这种方法在改进自动诊断生成的同时,通过知识图谱结构保持了可解释性,显示出了良好的前景。
通过图路径集成领域知识,有助于引导大语言模型输出更准确和合理的诊断预测。
解法拆解
- 逻辑关系拆解
目的:提高医疗诊断的准确性和可解释性
问题:现有的大语言模型在医疗诊断中缺乏专业知识支撑和推理过程不透明
解法:结合知识图谱增强大语言模型的诊断能力(DR.KNOWS方法)
子解法拆解:
-
知识图构建(因为需要专业医学知识支持)
- 利用UMLS构建医学知识图谱
- 之所以用UMLS,是因为它是标准化的医学术语系统
-
路径选择(因为需要找到诊断相关的知识)
- 多跳路径搜索
- 路径相关性评分
- 之所以用多跳路径,是因为诊断推理需要多步连接才能得出结论
-
模型融合(因为需要将专业知识注入语言模型)
- 路径作为提示词
- 模型fine-tuning或零样本学习
- 之所以用提示词方式,是因为这样可以保持模型结构不变,同时引入外部知识
例子:
对于"发烧、咳嗽、肺部感染"的病例:
-
知识图谱提供症状-疾病关联
-
路径选择找出最相关的诊断路径
-
将路径作为提示词指导大模型生成诊断
-
逻辑链分析
这是一个决策树网络:
输入病例
├── 提取关键概念
│ ├── 症状
│ ├── 检查结果
│ └── 现有诊断
├── 知识图谱搜索
│ ├── 一跳邻居节点
│ └── 多跳路径
└── 语言模型生成├── 路径集成└── 诊断生成
- 隐性特征分析
发现的隐性特征包括:
- 医生诊断思维过程:解法模拟了医生从症状到诊断的推理过程
- 知识关联强度:不同路径之间的权重反映了知识的重要性
- 诊断可靠性:通过多个路径的交叉验证来提高可靠性
-
潜在局限性
-
数据依赖性
- 依赖UMLS知识质量
- 依赖训练数据完整性
-
计算复杂度
- 多跳路径搜索计算量大
- 实时性可能受限
-
通用性限制
- 可能难以处理罕见病例
- 对新出现的疾病适应性有限
-
验证挑战
- 缺乏大规模临床验证
- 需要专家评估体系
全流程分析

处理流程:
- 概念抽取:从病历中提取医学概念和CUI
- 图推理:构建子图并进行多跳路径搜索
- 路径排序:选择最相关的诊断路径
- 提示增强:将路径融入LLM提示模板
案例背景:
一名55岁男性患者,有房颤和心肌病病史,目前出现呼吸困难和水肿症状来就医。
系统诊断流程:
- 输入处理阶段
- 系统接收医生记录的病历文本(包含主诉、体征等信息)
- 使用医疗概念提取器(如cTAKES)从文本中识别关键医疗概念
- 将识别出的概念转换为标准化的医疗术语代码(CUI编码)
- 知识图谱推理阶段 (DR.KNOWS模型)
- 系统在UMLS医学知识图谱中定位这些概念节点
- 通过图神经网络分析概念之间的关联关系
- 系统识别出关键路径:
- 房颤 → 心力衰竭
- 心肌病 → 心力衰竭
- 水肿 → 充血性心力衰竭
- 诊断生成阶段
- 系统将发现的医学知识路径提供给大语言模型(如ChatGPT)
- 大语言模型结合病历内容和知识路径
- 生成诊断结论:
- 主要诊断:阵发性房颤
- 并发症:心力衰竭、脑病
- 解释:基于患者病史和当前症状,结合知识图谱显示房颤和心肌病都可导致心力衰竭
- 诊断解释
- 系统提供诊断推理过程的详细说明
- 指出症状与诊断之间的关联性
- 解释为什么得出这些诊断结论
这个系统的创新点在于:
- 结合了结构化的医学知识(知识图谱)和非结构化的临床推理(大语言模型)
- 提供可解释的诊断路径,增加了系统的可信度
- 可以发现一些隐含的诊断关系,协助医生进行更全面的诊断
这种方法模拟了临床医生的诊断思维过程: 收集信息→调用专业知识→分析关联→形成诊断,为智能辅助诊断系统提供了一个新的范式。
图神经网络的训练
- 网络架构设计:
- 使用 Stack Graph Isomorphism Network (SGIN)作为基础架构
- 输入层:使用 SapBERT 预训练模型编码医疗概念
- 中间层:多层图同构网络进行消息传递
- 输出层:Path Encoder和Path Ranker 两个组件
- 训练数据准备:
- 正样本:来自标注好的医疗记录中的诊断概念对
- 从 UMLS 知识图谱中提取这些概念之间的路径
- 负样本:随机采样的无关联的概念对
- 使用 TF-IDF 对不同类型的医疗概念进行加权
- 训练目标:
主要包含两部分损失函数:
- 预测损失(LPred):使用二元交叉熵损失,预测诊断概念
- 对比学习损失(LCL):让相关的概念表示更接近,无关的更远离
- 训练过程:
输入:医疗文本和UMLS知识图谱
for each epoch:1. 提取文本中的源概念2. 更新节点表示(使用图神经网络)3. 生成路径嵌入4. 使用MultiAttn或TriAttn对路径进行排序5. 计算损失并更新模型参数
- 关键训练参数:
- 学习率:1e-5
- 训练轮数:10轮
- 批次大小:可变(根据GPU内存)
- 早停策略:3轮无改善则停止
- 特别注意点:
- 不需要预训练整个图谱
- 采用动态子图方式训练,每次只处理相关的子图
- 使用节点权重机制处理不同类型医疗概念的重要性
- 评估指标:
- Recall@N:在N个预测中找到正确诊断的比例
- Precision@N:预测正确的诊断占总预测的比例
- F-score:综合准确率和召回率
这个训练过程的创新点在于:
- 结合了知识图谱的结构信息和语言模型的语义信息
- 使用对比学习提升模型对相似诊断概念的识别能力
- 通过注意力机制筛选最相关的诊断路径
训练成本和资源需求:
- GPU:建议使用至少16GB显存的GPU
- 数据集规模:MIMIC-III(600训练样本)或IN-HOUSE(3885训练样本)
- 训练时间:根据数据规模,几小时到几天不等
这种训练方法的优势是它不需要对整个医学知识图谱进行训练,而是针对性地学习诊断相关的路径,这大大提高了训练效率和模型实用性。
论文大纲
├── 1. 研究背景和动机【问题背景】
│ ├── EHR系统应用广泛【现状】
│ │ ├── 提供全面的患者健康记录【功能】
│ │ └── 记录诊断和治疗计划【功能】
│ └── 当前挑战【问题】
│ ├── EHR叙述冗长复杂【具体问题】
│ └── 医生认知负担重【影响】
│
├── 2. DR.KNOWS模型【技术方案】
│ ├── 知识图谱集成【核心组件】
│ │ ├── 基于UMLS医学知识库【数据来源】
│ │ └── 包含450万概念和1500万关系【规模】
│ └── 模型架构【技术细节】
│ ├── 图神经网络编码【处理方法】
│ ├── 路径编码器【处理方法】
│ └── 路径排序模块【处理方法】
│
├── 3. 实验评估【验证方案】
│ ├── 数据集【评估数据】
│ │ ├── MIMIC-III数据集【公开数据】
│ │ └── IN-HOUSE EHR数据集【私有数据】
│ └── 评估指标【评估方法】
│ ├── ROUGE评分【指标】
│ └── CUI F-score【指标】
│
└── 4. 研究贡献【研究价值】
├── 提供可解释的诊断路径【创新点】
├── 改进诊断准确性【性能提升】
└── 支持AI辅助诊断决策【应用价值】
方法部分:
├── 1. 输入层【数据接收】
│ ├── 患者文本描述【原始输入】
│ │ ├── SapBERT编码【文本表示】
│ │ └── UMLS概念提取【概念识别】
│ └── UMLS知识图谱【知识源】
│ ├── 概念节点【图结构】
│ └── 语义关系【图结构】
│
├── 2. 图神经网络编码【特征学习】
│ ├── Stack-GIN架构【网络结构】
│ │ ├── 多层GIN叠加【层次处理】
│ │ └── 非线性变换【特征转换】
│ ├── 节点表示更新【计算过程】
│ │ ├── 邻域聚合【信息融合】
│ │ └── TF-IDF权重【重要性加权】
│ └── 输出表示【结果】
│ └── 上下文化节点嵌入【特征表示】
│
├── 3. 路径编码器【路径生成】
│ ├── Transformer架构【编码器】
│ │ ├── 多头注意力【关注机制】
│ │ └── 前馈网络【特征变换】
│ ├── 路径表示生成【处理过程】
│ │ ├── 路径序列编码【序列处理】
│ │ └── FFN变换【特征整合】
│ └── n-hop路径【输出】
│ └── 路径嵌入向量【特征表示】
│
└── 4. 路径排序模块【决策层】
├── 注意力机制【排序方法】
│ ├── MultiAttn【多头注意力】
│ └── TriAttn【三线性注意力】
├── 相关性计算【评分过程】
│ ├── 上下文相关矩阵【文本相关】
│ └── 概念相关矩阵【概念相关】
└── 输出结果【最终输出】
├── Top-N路径分数【排序结果】
└── 诊断预测【预测结果】
首先接收文本输入并通过SapBERT进行编码,同时从UMLS提取相关概念
通过 Stack-GIN 进行图结构学习,获取节点的上下文表示
使用 Transformer 架构的路径编码器生成路径表示
最后通过两种注意力机制 (MultiAttn/TriAttn) 对路径进行排序和筛选

这张图展示了一个 UMLS(统一医学语言系统)知识图谱, 它通过语义关系帮助诊断, 从症状到潜在诊断需要两个"跳转"或步骤。
- 初始患者描述:
- 47岁女性
- 出现的症状:发烧、咳嗽和败血症
- 第一跳分析(第一层连接):
从核心症状出发:
- 发烧连接到:
- 传染性疾病
- 新生儿发热
- 发热性咳嗽
- 咳嗽连接到:
- 呼吸道
- 咳嗽后呕吐
- 败血症连接到:
- 败血症相关的胃肠道出血
- 传染性疾病
- 第二跳分析(第二层连接):
图谱显示两个最终可能的诊断:
- 肺炎和流感(通过传染性疾病连接)
- 呼吸窘迫综合征(通过呼吸道连接)
- 关系类型:
图谱使用了几种语义关系:
- “是一种”(Is a)
- “具有病理过程”(Has pathological process)
- “具有发现部位”(Has finding site)
- “时序跟随”(Temporally follows)
- “发生在…之后”(Occurs after)
- 视觉编码:
- 顶点颜色越深表示与输入描述的相关性越高
- 路径显示了从症状到诊断的逻辑进展
- 图中省略了"女性"的子图以节省空间
这个知识图谱有效地展示了医学诊断推理如何能被模型化为相关概念的网络,每个跳转代表从症状到潜在诊断的一个推理层级。
它对理解多个症状如何收敛指向特定医疗状况特别有帮助。

这是 Dr.KNOWs 的医疗诊断模型的架构图:
- 输入处理阶段:
- 从顶部可以看到输入信息是"47岁女性,有发烧、咳嗽和败血症"
- 这个输入会被处理成两种形式:
- 文本编码: 通过 SapBERT 模型进行处理
- 概念编码: 将症状转换为标准医学概念编号(CUIs)
- 例如 “C0243026”, “C0015967” 等唯一标识符
- 图模型组件(Graph Model Components):
包含三个主要部分:
- 图神经网络(Graph Neural Network): 处理和分析医学概念之间的关系
- 路径编码器(Path Encoder): 编码可能的诊断路径
- 路径排序器(Path Ranker): 对不同的诊断路径进行评分和排序
- 输出:
- 系统会输出评分最高的 N 个医学概念(Top N Scored CUIs)
- 这些概念代表最可能的诊断结果
- 工作原理:
- 从起始医学概念(Starting CUIs)开始
- 通过提取子图(Extract Subgraphs)来分析相关的医学概念关系
- 使用神经网络处理这些关系
- 为可能的诊断路径评分
- 生成新的起始点进行下一跳分析
这个系统的创新之处在于它结合了自然语言处理(通过 SapBERT)和图形网络分析, 能够模拟医生的诊断推理过程, 从症状出发找到可能的诊断结果。
核心模式
核心模式:症状→诊断的自动化推理过程
- 基本结构:
- 输入:病人症状描述
- 处理:知识图谱推理
- 输出:可能的诊断结果
- 创新点:两跳推理机制
- 第一跳:从初始症状找到相关概念
- 第二跳:基于相关性最高的节点推导最终诊断
- 示例:发烧+咳嗽+败血症 → 传染病 → 肺炎/流感
- 实现方法:DR.KNOWS模型
症状描述 → SapBERT编码
↓
知识图谱分析(Graph Neural Network)
↓
路径评分(Path Ranker)
↓
输出诊断
- 验证效果:
- 在公开数据集上优于基准模型
- ChatGPT结合路径提示效果更好
- 提供可解释的诊断路径
压缩后发现的核心规律:
- 医生诊断本质是多跳推理过程
- 知识图谱能模拟专家推理路径
- 大模型+知识图谱优于单独使用
这个系统的创新在于将复杂的医疗诊断过程简化为"两跳推理"模型,既保留了专业知识,又实现了自动化。
真实应用中,为什么说俩跳推理过于简化?
5WHY分析:
WHY 1: 为什么说两跳推理过于简化?
- 因为真实的医疗诊断过程通常涉及多层次、多维度的复杂推理链
WHY 2: 为什么需要多层次、多维度推理?
- 因为疾病的发展和表现是动态的,症状之间存在复杂的交互关系和时序关系
WHY 3: 为什么症状之间的关系如此复杂?
- 因为人体是一个复杂的系统,一个器官的问题可能影响多个系统,产生连锁反应
WHY 4: 为什么连锁反应难以用两跳推理捕捉?
- 因为两跳推理假设了线性的因果关系,而忽视了症状的循环影响和反馈机制
WHY 5: 为什么需要考虑循环影响和反馈机制?
- 因为这反映了真实医学诊断中的系统性思维,医生需要综合考虑多个因素的动态平衡
5SO分析:
SO 1: 如何改进当前系统?
- 引入多跳动态推理机制,允许系统进行更深层次的推理
SO 2: 这种改进会带来什么?
- 系统能够处理更复杂的病例,捕捉症状间的动态关系和反馈循环
SO 3: 对整个系统有什么影响?
- 需要重新设计知识图谱结构,加入时序信息和反馈机制,可能增加计算复杂度
SO 4: 进一步的影响是什么?
- 系统变得更复杂但更接近真实诊断过程,需要更多计算资源和训练数据
SO 5: 最终目标是什么?
- 建立一个能模拟医生系统性思维的智能辅助诊断系统,平衡准确性和实用性
需要从"简单线性推理"向"复杂系统思维"转变,才能更好地服务于实际医疗诊断。
- 多维度信息整合系统:
- 临床表现维度:症状、体征、实验室检查等
- 时间维度:疾病发展过程、治疗反应
- 个体特征维度:年龄、性别、基础疾病、用药史等
- 环境维度:流行病学、地域特点等
- 动态推理机制:
- 设计反馈闭环,根据新信息不断调整诊断假设
- 引入不确定性处理机制,对多个诊断假设同时进行评估
- 加入临床决策点,在关键节点进行诊断重评估
- 经验学习系统:
- 构建类似医生经验积累的案例库
- 设计相似病例检索和对比机制
- 从历史诊疗过程中学习诊断策略
- 系统性思维模块:
- 器官系统间的相互影响分析
- 并发症预测和风险评估
- 治疗方案对多系统的影响评估
- 整体性评估机制:
- 不仅关注单个症状,更要评估患者整体状态
- 考虑心理社会因素的影响
- 评估治疗的可行性和患者依从性
- 决策解释系统:
- 提供诊断推理的完整思路
- 解释各种因素的权重考量
- 说明排除诊断的理由
这样的系统应该是一个多层次、动态演化的复杂系统,而不是简单的线性推理。
它需要能够:
- 处理不完整和不确定的信息
- 整合多源异构数据
- 动态调整推理策略
- 提供可解释的决策过程
这种设计更接近医生的专业思维方式,但实现难度也会更大。
相关文章:
DR.KNOWS:医疗图谱UMLS + 图神经网络 + LLM 模拟医生的诊断推理过程, 从症状出发找到可能的诊断结果
DR.KNOWS:医疗图谱UMLS 图神经网络 LLM 模拟医生的诊断推理过程, 从症状出发找到可能的诊断结果 理解要点解法拆解全流程分析图神经网络的训练论文大纲核心模式真实应用中,为什么说俩跳推理过于简化? 论文:Leveraging A Medical…...
缓存雪崩 详解
缓存雪崩详解 缓存雪崩是分布式系统中一种常见的问题,它指的是缓存中大量数据在同一时间失效,导致所有的请求都直接涌向数据库或后端服务,进而导致系统负载骤增,甚至引发系统宕机或崩溃。 1. 缓存雪崩的原因 缓存雪崩通常由以下…...
使用 Vite 创建 Vue3+TS 项目并整合 ElementPlus、Axios、Pinia、Less、Vue-router 等组件或插件
前言 记录一下使用 Vite 创建 Vue3TS 项目并整合 ElementPlus、Axios、Pinia、Less、Vue-router 等组件或插件。 一、使用 Vite 创建 Vue3TS 项目 1.新建一个 temp 文件夹 (1)在桌面新建一个 temp 文件夹,然后在 VS Code 中打开此文件夹&…...
Flink随笔 20241203 Flink重点内容
Flink 是一个强大的流处理框架,它的设计理念是高吞吐量、低延迟的流式计算。你提到的这些重点是 Flink 的核心组成部分,下面我将详细解析每一个方面。 1. 窗口(Window) 窗口是 Flink 流处理中一个非常重要的概念,主要…...
shell脚本实战
学习视频来自B站UP主泷羽sec,如涉及侵权马上删除文章。 笔记只是方便学习,以下内容只涉及学习内容,切莫逾越法律红线。 安全见闻,包含了各种网络安全,网络技术,旨在明白自己的渺小,知识的广博&a…...
【机器学习】分类任务: 二分类与多分类
二分类与多分类:概念与区别 二分类和多分类是分类任务的两种类型,区分的核心在于目标变量(label)的类别数: 二分类:目标变量 y 只有两个类别,通常记为 y∈{0,1} 或 y∈{−1,1}。 示例ÿ…...
FreeSWITCH mod_conference 的按键会控
又是一篇命题作文 mod_conference 官方文档: https://developer.signalwire.com/freeswitch/FreeSWITCH-Explained/Modules/mod_conference_3965534/ 英文不好的可以看中文: http://www.freeswitch.org.cn/books/references/1.7-mod_conference.html…...
串口工作方式
串口工作方式 方式0方式0输出方式0输入 方式1方式1输出方式1输入 方式2或方式3输出输入 串口使用方法如何计算波特率串口初始化步骤串口回传实验模拟printf实验串口接收数据不丢失实验 方式0 方式 0 时,串行口为同步移位寄存器的输入输出方式。主要用于扩展并行输 入…...
统计Nginx的客户端IP,可以通过分析Nginx的访问日志文件来实现
要统计Nginx的客户端IP,可以通过分析Nginx的访问日志文件来实现。以下是一些常见的方法和步骤: 一、通过命令行工具统计 查看Nginx访问日志: Nginx的访问日志通常默认存储在/var/log/nginx/access.log,但具体位置可能因安装和配置…...
Apache Airflow 快速入门教程
Apache Airflow已经成为Python生态系统中管道编排的事实上的库。与类似的解决方案相反,由于它的简单性和可扩展性,它已经获得了普及。在本文中,我将尝试概述它的主要概念,并让您清楚地了解何时以及如何使用它。 Airflow应用场景 …...
42 基于单片机的智能浇花系统
目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 基于51单片机,采样DHT11温湿度传感器检测温湿度,通过LCD1602显示 4*4按键矩阵可以设置温度湿度阈值,温度大于阈值则开启水泵,湿度大于阈值则开启风扇…...
乐橙云小程序插件接入HbuilderX
乐橙插件使用: 1.配置app.json文件,uniapp中在mainfest.json中配置 https://uniapp.dcloud.net.cn/collocation/manifest.html#mp-weixin ** 2、集成插件页面.json文件 ** uniapp在 pages.json 对应页面的 style -> usingComponents 引入组件&…...
VoCo-LLaMA: Towards Vision Compression with Large Language Models
视觉语言模型在各种多模态任务上取得了显著的成功,但经常受到有限上下文窗口和处理高分辨率图像输入和视频的高计算成本的瓶颈。视觉压缩可以通过减少视觉令牌数量避免该问题。先前方法使用额外模块压缩视觉令牌并强制LLM理解压缩的令牌。然而,LLM对视觉…...
Vue+vite 组件开发的环境准备
一.nodejs安装 进入Node.js 官网(Node.js — Run JavaScript Everywhere),点击下载。 双击打开,进行安装 双击打开后,点击 next(下一步),后面也是一直点击 next 无其他设置,直到 …...
基于社区发现的GraphRAG思路
GraphRAG出自2024年4月的论文《From Local to Global: A Graph RAG Approach to Query-Focused Summarization》,其代码也在2024年年中开源 。它在用图结构来完成RAG时,使用社区这个概念并基于社区摘要来回答一些概括性的问题。 Graph RAG流程如论文图1所…...
react学习记录
一、目录结构react优秀代码之react目录结构简洁之道React 作为一个库,不会决定你如何组织项目的结构。这是件好事,因为这样 - 掘金【React】项目的目录结构全面指南_react项目结构-CSDN博客 1、创建项目:开发文档 Getting Started | Create…...
Day2——需求分析与设计
教师端签到应用软件的需求分析; 产品经理如何写好产品需求文档(附模板) 需求分析是软件开发过程中的关键步骤,它确保了开发的软件能够满足用户的需求。以下是进行需求分析的具体步骤: 1. 确定分析目标 明确教师端签到…...
VScode离线下载扩展安装
在使用VScode下在扩展插件时,返现VScode搜索不到插件,网上搜了好多方法,都不是常规操作,解决起来十分麻烦,可以利用离线下载安装的方式安装插件!亲测有效!!! 1.找到VScod…...
【机器学习】机器学习的基本分类-监督学习-决策树(Decision Tree)
决策树是一种树形结构的机器学习模型,适用于分类和回归任务。它通过一系列基于特征的条件判断来将数据分割为多个子区域,从而预测目标变量的值。 1. 决策树的结构 根节点(Root Node) 决策树的起点,包含所有样本。根据某…...
【第 1 章 初识 C 语言】1.8 使用 C 语言的 7 个步骤
目录 1.8 使用 C 语言的 7 个步骤 1.8.1 第 1 步:定义程序的目标 1.8.2 第 2 步:设计程序 1.8.3 第 3 步:编写代码 1.8.4 第 4 步:编译 1.8.5 第 5 步:运行程序 1.8.6 第 6 步:测试和调试程序 1.8.…...
浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)
✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义(Task Definition&…...
手游刚开服就被攻击怎么办?如何防御DDoS?
开服初期是手游最脆弱的阶段,极易成为DDoS攻击的目标。一旦遭遇攻击,可能导致服务器瘫痪、玩家流失,甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案,帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...
Cesium1.95中高性能加载1500个点
一、基本方式: 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...
java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别
UnsatisfiedLinkError 在对接硬件设备中,我们会遇到使用 java 调用 dll文件 的情况,此时大概率出现UnsatisfiedLinkError链接错误,原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用,结果 dll 未实现 JNI 协…...
selenium学习实战【Python爬虫】
selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中,新增了一个本地验证码接口 /code,使用函数式路由(RouterFunction)和 Hutool 的 Circle…...
ABAP设计模式之---“简单设计原则(Simple Design)”
“Simple Design”(简单设计)是软件开发中的一个重要理念,倡导以最简单的方式实现软件功能,以确保代码清晰易懂、易维护,并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计,遵循“让事情保…...
【Android】Android 开发 ADB 常用指令
查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...
comfyui 工作流中 图生视频 如何增加视频的长度到5秒
comfyUI 工作流怎么可以生成更长的视频。除了硬件显存要求之外还有别的方法吗? 在ComfyUI中实现图生视频并延长到5秒,需要结合多个扩展和技巧。以下是完整解决方案: 核心工作流配置(24fps下5秒120帧) #mermaid-svg-yP…...
Kubernetes 节点自动伸缩(Cluster Autoscaler)原理与实践
在 Kubernetes 集群中,如何在保障应用高可用的同时有效地管理资源,一直是运维人员和开发者关注的重点。随着微服务架构的普及,集群内各个服务的负载波动日趋明显,传统的手动扩缩容方式已无法满足实时性和弹性需求。 Cluster Auto…...
