当前位置: 首页 > news >正文

LightRAG简要概述

文章目录

    • 索引流程
    • 问答流程
      • naive
      • local
      • global
      • hybrid
      • mix
    • 中文prompt

在这里插入图片描述
在这里插入图片描述

官方仓库:LightRAG

没有废话,直接进入主题。

索引流程

1、提取实体与关系
2、LLM判断是否有漏掉的实体与关系,如有则接着提取
3、合并实体,根据多个实体描述,进行摘要,作为最后的实体描述
4、插入图数据库,其中,实体描述和关系描述,都会被向量化,插入向量数据库中,以便检索时使用

问答流程

多种模式问答: “naive”, “local”, “global”, “hybrid”, “mix”

naive

直接用query检索文档chunk,不展开叙述。

local

回答流程:

  • 提取高级关键词(用于表示总体概念或主题)和低级关键词(用于表示特定的实体或细节)

对应的prompt

---角色---你是一个乐于助人的助手,负责从用户的查询内容以及对话历史记录中识别高级关键词和低级关键词。---目标---根据给定的查询内容和对话历史记录,列出高级关键词和低级关键词。高级关键词侧重于总体概念或主题,而低级关键词侧重于特定的实体、细节或具体的术语。---说明---- 在提取关键词时,需同时考虑当前的查询内容和相关的对话历史记录。
- 以JSON格式输出关键词。
- JSON应包含两个键:- “high_level_keywords”(高级关键词)用于表示总体概念或主题。- “low_level_keywords”(低级关键词)用于表示特定的实体或细节。######################
---示例---
######################
示例1:查询内容:“国际贸易如何影响全球经济稳定?”
################
输出:
{"高级关键词": ["国际贸易", "全球经济稳定", "经济影响"],"低级关键词": ["贸易协定", "关税", "货币兑换", "进口", "出口"]
}
#############################示例2:查询内容:“森林砍伐对生物多样性会产生哪些环境方面的后果?”
################
输出:
{"高级关键词": ["环境后果", "森林砍伐", "生物多样性丧失"],"低级关键词": ["物种灭绝", "栖息地破坏", "碳排放", "雨林", "生态系统"]
}
#############################示例3:查询内容:“教育在减贫方面起到了什么作用?”
################
输出:
{"高级关键词": ["教育", "减贫", "社会经济发展"],"低级关键词": ["入学机会", "识字率", "职业培训", "收入不平等"]
}
##########################################################
---真实数据---
######################
对话历史记录:
{历史记录内容}当前查询内容:{查询内容}
######################
“输出”内容应该是人类可读的文本,而非Unicode字符。使用与“查询内容”相同的语言。
输出: 

如果没有找到低级关键词,则走global模式

  • 根据低级关键词检索相关的实体节点
  • 获取检索到的实体节点的详细信息
    • 获取每个节点的邻居节点
      • 获取检索到的每个节点的一跳邻居的详细信息
      • 获取所有一跳邻居的原始chunk text
      • 返回内容,作为prompt的text_units部分
    • 获取每个节点的相连的所有边
      • 获取检索到的每个节点的所有的边
      • 获取所有边的信息
      • 返回内容,作为prompt的relations部分
  • 合并三部分的内容到prompt中
    • 检索到的所有相关的实体节点
    • 所有相关的实体节点的原始chunk text
    • 与所有相关的实体节点相连的边的信息
  • 回答问题

global

回答流程:

  • 提取高级关键词(用于表示总体概念或主题)和低级关键词(用于表示特定的实体或细节)
  • 根据高级关键词检索相关的边
  • 对边进行联合排序,第一关键字是边上两节点的度之和,第二关键字是由LLM生成的源节点与目标节点的关系强度
  • 取出这些边上的所有节点的信息,包括源节点和目标节点,作为prompt的entity部分
  • 取出这些边上的所有源节点的原始chunk text,作为prompt的text_units部分
  • 合并三部分的内容到prompt中
    • 检索到的所有相关的边
    • 边上的所有节点的信息
    • 边上的所有源节点的原始chunk text

hybrid

local 与 global得到的数据进行合并

mix

hybrid 与 naive得到的数据进行合并

中文prompt

	from __future__ import annotationsfrom typing import AnyGRAPH_FIELD_SEP = "<SEP>"PROMPTS: dict[str, Any] = {}PROMPTS["DEFAULT_LANGUAGE"] = "中文"PROMPTS["DEFAULT_TUPLE_DELIMITER"] = "<|>"PROMPTS["DEFAULT_RECORD_DELIMITER"] = "##"PROMPTS["DEFAULT_COMPLETION_DELIMITER"] = "<|COMPLETE|>"PROMPTS["DEFAULT_ENTITY_TYPES"] = ["组织", "人物", "地点", "事件", "类别", "物品", "时间"] PROMPTS["entity_extraction"] = """---目标---给定一份可能与该活动相关的文本文件和一个实体类型列表,从文本中识别出所有这些类型的实体以及这些已识别实体之间的所有关系。使用{language}作为输出语言。---步骤---1. 识别所有实体。对于每个已识别的实体,提取以下信息:- entity_name(实体名称):实体的名称,使用与输入文本相同的语言。如果是英文,则将名称大写。- entity_type(实体类型):以下类型之一:[{entity_types}]- entity_description(实体描述):对实体的属性和活动进行详细描述将每个实体格式化为("entity"{tuple_delimiter}<entity_name>{tuple_delimiter}<entity_type>{tuple_delimiter}<entity_description>)2. 从第1步中识别出的实体中,识别出所有(source_entity,target_entity)对,这些对彼此之间是*明确相关*的。对于每对相关实体,提取以下信息:- source_entity(源实体):第1步中识别出的源实体的名称- target_entity(目标实体):第1步中识别出的目标实体的名称- relationship_description(关系描述):解释为什么认为源实体和目标实体彼此相关- relationship_strength(关系强度):一个数字分数,表示源实体和目标实体之间关系的强度- relationship_keywords(关系关键词):一个或多个高级关键词,总结关系的总体性质,重点关注概念或主题,而不是具体细节将每对关系格式化为("relationship"{tuple_delimiter}<source_entity>{tuple_delimiter}<target_entity>{tuple_delimiter}<relationship_description>{tuple_delimiter}<relationship_keywords>{tuple_delimiter}<relationship_strength>)3. 识别出能够总结整个文本的主要概念、主题或主题的高级关键词。这些关键词应能够捕捉文档中呈现的总体思想。将内容级关键词格式化为("content_keywords"{tuple_delimiter}<high_level_keywords>)4. 将步骤1和2中识别出的所有实体和关系作为单一列表返回,使用**{record_delimiter}**作为列表分隔符。5. 完成后,输出{completion_delimiter}######################---示例---######################{examples}#############################---真实数据---######################Entity_types(实体类型):[{entity_types}]Text(文本):{input_text}######################Output(输出):"""PROMPTS["entity_extraction_examples"] = ["""示例 1:实体类型:[人物,技术,任务,组织,地点]文本:```当Alex紧咬着牙关时,在Taylor那专断而笃定的态度的衬托下,他心中的沮丧感渐渐平息。正是这种竞争的暗流让他保持警觉,他和Jordan对探索的共同承诺,在某种程度上是对Cruz日益狭隘的控制与秩序观念的一种无声反抗。接着,Taylor做出了一件出乎意料的事。他们在Jordan身旁停下,有那么一瞬间,带着近乎崇敬的神情观察着那个设备。"如果能够理解这项技术……"Taylor的声音低了下来,"它可能会改变我们的处境。对我们所有人来说都是如此。"之前那种潜在的轻视似乎有所动摇,取而代之的是对他们手中事物重要性的一丝勉强的尊重。Jordan抬起头,在短暂的一瞬间,他们的目光与Taylor的交汇,一场无声的意志较量缓和成了一种不安的休战状态。这是一个细微的转变,几乎难以察觉,但Alex在心里默默留意到了。他们所有人都是通过不同的途径来到这里的。```输出:("entity"{tuple_delimiter}"Alex"{tuple_delimiter}"人物"{tuple_delimiter}"Alex是一个体验到沮丧情绪并且善于观察其他角色之间动态关系的角色。"){record_delimiter}("entity"{tuple_delimiter}"Taylor"{tuple_delimiter}"人物"{tuple_delimiter}"Taylor被描绘成专断而笃定的形象,并且对一个设备表现出片刻的崇敬,这表明其观点发生了转变。"){record_delimiter}("entity"{tuple_delimiter}"Jordan"{tuple_delimiter}"人物"{tuple_delimiter}"Jordan有着对探索的共同承诺,并且与Taylor就一个设备有过重要的互动。"){record_delimiter}("entity"{tuple_delimiter}"Cruz"{tuple_delimiter}"人物"{tuple_delimiter}"Cruz与控制和秩序的观念相关联,影响着其他角色之间的动态关系。"){record_delimiter}("entity"{tuple_delimiter}"设备"{tuple_delimiter}"技术"{tuple_delimiter}"那个设备是故事的核心,具有可能改变局面的潜在影响,并且受到Taylor的崇敬。"){record_delimiter}("relationship"{tuple_delimiter}"Alex"{tuple_delimiter}"Taylor"{tuple_delimiter}"Alex受到Taylor专断笃定态度的影响,并且观察到Taylor对设备态度的变化。"{tuple_delimiter}"权力动态,观点转变"{tuple_delimiter}7){record_delimiter}("relationship"{tuple_delimiter}"Alex"{tuple_delimiter}"Jordan"{tuple_delimiter}"Alex和Jordan有着对探索的共同承诺,这与Cruz的观念形成对比。"{tuple_delimiter}"共同目标,反抗"{tuple_delimiter}6){record_delimiter}("relationship"{tuple_delimiter}"Taylor"{tuple_delimiter}"Jordan"{tuple_delimiter}"Taylor和Jordan就设备有过直接互动,导致出现了片刻的相互尊重和一种不安的休战状态。"{tuple_delimiter}"冲突解决,相互尊重"{tuple_delimiter}8){record_delimiter}("relationship"{tuple_delimiter}"Jordan"{tuple_delimiter}"Cruz"{tuple_delimiter}"Jordan对探索的承诺是对Cruz控制和秩序观念的反抗。"{tuple_delimiter}"意识形态冲突,反抗"{tuple_delimiter}5){record_delimiter}("relationship"{tuple_delimiter}"Taylor"{tuple_delimiter}"The Device"{tuple_delimiter}"Taylor对设备表现出崇敬,表明其重要性和潜在影响。"{tuple_delimiter}"崇敬,技术重要性"{tuple_delimiter}9){record_delimiter}("content_keywords"{tuple_delimiter}"权力动态,意识形态冲突,探索,反抗"){completion_delimiter}#############################""","""示例 2:实体类型:[公司, 指数, 商品, 市场趋势, 经济政策, 生物]文本:```今日股市大幅下跌,科技巨头股价显著下滑,全球科技指数在午盘交易中下跌3.4%。分析师将抛售归因于投资者对利率上升和监管不确定性的担忧。在受影响最严重的公司中,Nexon科技公司因季度收益低于预期,股价暴跌7.8%。相比之下,欧米伽能源受油价上涨推动,小幅上涨2.1%。与此同时,商品市场呈现出喜忧参半的情绪。由于投资者寻求避险资产,黄金期货上涨1.5%,达到每盎司2,080美元。在供应限制和强劲需求的支撑下,原油价格继续上涨,攀升至每桶87.60美元。金融专家正密切关注美联储的下一步行动,因为对可能加息的猜测日益增加。即将发布的政策声明预计将影响投资者信心和整体市场稳定性。```输出:("entity"{tuple_delimiter}"全球科技指数"{tuple_delimiter}"指数"{tuple_delimiter}"全球科技指数追踪主要科技股的表现,今日经历了3.4%的下跌。"){record_delimiter}("entity"{tuple_delimiter}"Nexon科技"{tuple_delimiter}"公司"{tuple_delimiter}"Nexon科技是一家科技公司,因业绩不佳导致股价下跌7.8%。"){record_delimiter}("entity"{tuple_delimiter}"欧米伽能源"{tuple_delimiter}"公司"{tuple_delimiter}"欧米伽能源是一家能源公司,受油价上涨推动股价上涨2.1%。"){record_delimiter}("entity"{tuple_delimiter}"黄金期货"{tuple_delimiter}"商品"{tuple_delimiter}"黄金期货上涨1.5%,表明投资者对避险资产的兴趣增加。"){record_delimiter}("entity"{tuple_delimiter}"原油"{tuple_delimiter}"商品"{tuple_delimiter}"受供应限制和强劲需求影响,原油价格上涨至每桶87.60美元。"){record_delimiter}("entity"{tuple_delimiter}"市场抛售"{tuple_delimiter}"市场趋势"{tuple_delimiter}"市场抛售指因投资者对利率和监管的担忧导致股票价值大幅下跌。"){record_delimiter}("entity"{tuple_delimiter}"美联储政策声明"{tuple_delimiter}"经济政策"{tuple_delimiter}"美联储即将发布的政策声明预计将影响投资者信心和市场稳定性。"){record_delimiter}("relationship"{tuple_delimiter}"全球科技指数"{tuple_delimiter}"市场抛售"{tuple_delimiter}"全球科技指数的下跌是由投资者担忧驱动的更广泛市场抛售的一部分。"{tuple_delimiter}"市场表现,投资者情绪"{tuple_delimiter}9){record_delimiter}("relationship"{tuple_delimiter}"Nexon科技"{tuple_delimiter}"全球科技指数"{tuple_delimiter}"Nexon科技的股价下跌促成了全球科技指数的整体下跌。"{tuple_delimiter}"公司影响,指数变动"{tuple_delimiter}8){record_delimiter}("relationship"{tuple_delimiter}"黄金期货"{tuple_delimiter}"市场抛售"{tuple_delimiter}"在市场抛售期间,黄金价格上涨是因为投资者寻求避险资产。"{tuple_delimiter}"市场反应,避险投资"{tuple_delimiter}10){record_delimiter}("relationship"{tuple_delimiter}"美联储政策声明"{tuple_delimiter}"市场抛售"{tuple_delimiter}"对美联储政策变化的猜测导致市场波动和投资者抛售。"{tuple_delimiter}"利率影响,金融监管"{tuple_delimiter}7){record_delimiter}("content_keywords"{tuple_delimiter}"市场下跌,投资者情绪,商品,美联储,股市表现"){completion_delimiter}#############################""","""示例 3:实体类型:[经济政策, 运动员, 赛事, 地点, 记录, 组织机构, 装备]文本:```在东京举办的世界田径锦标赛上,诺亚·卡特使用尖端碳纤维钉鞋打破了100米短跑记录。```输出:("entity"{tuple_delimiter}"世界田径锦标赛"{tuple_delimiter}"赛事"{tuple_delimiter}"世界田径锦标赛是一项汇集田径运动顶尖运动员的全球性体育赛事。"){record_delimiter}("entity"{tuple_delimiter}"东京"{tuple_delimiter}"地点"{tuple_delimiter}"东京是本届世界田径锦标赛的举办城市。"){record_delimiter}("entity"{tuple_delimiter}"诺亚·卡特"{tuple_delimiter}"运动员"{tuple_delimiter}"诺亚·卡特是一名在世界田径锦标赛上创造100米短跑新纪录的短跑运动员。"){record_delimiter}("entity"{tuple_delimiter}"100米短跑记录"{tuple_delimiter}"记录"{tuple_delimiter}"100米短跑记录是田径运动中的一项重要基准,最近被诺亚·卡特打破。"){record_delimiter}("entity"{tuple_delimiter}"碳纤维钉鞋"{tuple_delimiter}"装备"{tuple_delimiter}"碳纤维钉鞋是一种能提供更快速度和更好抓地力的先进短跑鞋。"){record_delimiter}("entity"{tuple_delimiter}"世界田径联合会"{tuple_delimiter}"组织机构"{tuple_delimiter}"世界田径联合会是负责监督世界田径锦标赛和验证记录的管理机构。"){record_delimiter}("relationship"{tuple_delimiter}"世界田径锦标赛"{tuple_delimiter}"东京"{tuple_delimiter}"世界田径锦标赛在东京举办。"{tuple_delimiter}"赛事地点,国际赛事"{tuple_delimiter}8){record_delimiter}("relationship"{tuple_delimiter}"诺亚·卡特"{tuple_delimiter}"100米短跑记录"{tuple_delimiter}"诺亚·卡特在锦标赛上创造了新的100米短跑记录。"{tuple_delimiter}"运动员成就,破纪录"{tuple_delimiter}10){record_delimiter}("relationship"{tuple_delimiter}"诺亚·卡特"{tuple_delimiter}"碳纤维钉鞋"{tuple_delimiter}"诺亚·卡特使用碳纤维钉鞋来提升比赛表现。"{tuple_delimiter}"运动装备,性能提升"{tuple_delimiter}7){record_delimiter}("relationship"{tuple_delimiter}"世界田径联合会"{tuple_delimiter}"100米短跑记录"{tuple_delimiter}"世界田径联合会负责验证和认可新的短跑记录。"{tuple_delimiter}"体育监管,记录认证"{tuple_delimiter}9){record_delimiter}("content_keywords"{tuple_delimiter}"田径运动,短跑,破纪录,体育科技,竞技"{completion_delimiter}#############################""",]PROMPTS["summarize_entity_descriptions"] = """---角色---你是一个负责生成数据综合摘要的助手。---目标---给定一个或两个实体,以及与这些实体相关的描述列表,请生成一个全面的摘要。---要求---1. 将所有描述整合成一个完整的综合描述2. 确保包含所有描述中的信息3. 如果描述之间存在矛盾,请解决这些矛盾并提供一个连贯的总结4. 使用第三人称写作5. 包含实体名称以提供完整上下文6. 使用{language}作为输出语言#######---数据---实体:{entity_name}描述列表:{description_list}#######输出:"""PROMPTS["entity_continue_extraction"] = """上次提取中遗漏了许多实体和关系。---请记住以下步骤---1. 识别所有实体。对于每个已识别的实体,提取以下信息:- entity_name(实体名称):实体的名称,使用与输入文本相同的语言。如果是英文,则将名称大写。- entity_type(实体类型):以下类型之一:[{entity_types}]- entity_description(实体描述):对实体的属性和活动进行详细描述将每个实体格式化为("entity"{tuple_delimiter}<entity_name>{tuple_delimiter}<entity_type>{tuple_delimiter}<entity_description>)2. 从第1步中识别出的实体中,识别出所有(source_entity,target_entity)对,这些对彼此之间是*明确相关*的。对于每对相关实体,提取以下信息:- source_entity(源实体):第1步中识别出的源实体的名称- target_entity(目标实体):第1步中识别出的目标实体的名称- relationship_description(关系描述):解释为什么认为源实体和目标实体彼此相关- relationship_strength(关系强度):一个数字分数,表示源实体和目标实体之间关系的强度- relationship_keywords(关系关键词):一个或多个高级关键词,总结关系的总体性质,重点关注概念或主题,而不是具体细节将每对关系格式化为("relationship"{tuple_delimiter}<source_entity>{tuple_delimiter}<target_entity>{tuple_delimiter}<relationship_description>{tuple_delimiter}<relationship_keywords>{tuple_delimiter}<relationship_strength>)3. 识别出能够总结整个文本的主要概念、主题或主题的高级关键词。这些关键词应能够捕捉文档中呈现的总体思想。将内容级关键词格式化为("content_keywords"{tuple_delimiter}<high_level_keywords>)4. 将步骤1和2中识别出的所有实体和关系作为单一列表返回,使用**{record_delimiter}**作为列表分隔符。5. 完成后,输出{completion_delimiter}---输出---使用相同格式在下方添加:\n""".strip()PROMPTS["entity_if_loop_extraction"] = """---目标---看起来可能还有一些实体未被提取。---输出---仅通过"YES"或"NO"回答是否还有需要添加的实体。""".strip()PROMPTS["fail_response"] = ("Sorry, I'm not able to provide an answer to that question.[no-context]")PROMPTS["rag_response"] = """---角色---你是一个帮助助手,负责回答用户关于以下知识库的查询。---目标---基于知识库生成简明的回答,遵循回答规则,同时考虑对话历史和当前查询。总结知识库中提供的所有信息,并结合与知识库相关的通用知识。不要包含知识库未提供的信息。在处理带有时间戳的关系时:1. 每个关系都有一个"created_at"时间戳,表示我们获取这个知识的时间2. 当遇到冲突的关系时,同时考虑语义内容和时间戳3. 不要自动优先选择最近创建的关系 - 根据上下文进行判断4. 对于特定时间的查询,在考虑创建时间戳之前优先考虑内容中的时间信息---对话历史---{history}---知识库---{context_data}---回答规则---- 目标格式和长度:{response_type}- 使用markdown格式并添加适当的章节标题- 请使用与用户提问相同的语言回答- 确保回答与对话历史保持连贯性- 如果不知道答案,请直接说明- 不要编造内容。不要包含知识库未提供的信息"""PROMPTS["keywords_extraction"] = """---角色---你是一个负责识别用户查询和对话历史中的高层级和低层级关键词的助手。---目标---根据查询和对话历史,列出高层级和低层级关键词。高层级关键词关注宏观概念或主题,而低层级关键词关注具体实体、细节或具体术语。---指示---- 提取关键词时需同时考虑当前查询和相关的对话历史- 以JSON格式输出关键词- JSON应包含两个键:- "high_level_keywords" 用于宏观概念或主题- "low_level_keywords" 用于具体实体或细节######################---示例---######################{examples}#############################---实际数据---######################对话历史:{history}当前查询:{query}######################输出:"""PROMPTS["keywords_extraction_examples"] = ["""示例 1:查询:"国际贸易如何影响全球经济稳定性?"################输出:{"high_level_keywords": ["国际贸易", "全球经济稳定性", "经济影响"],"low_level_keywords": ["贸易协定", "关税", "货币汇率", "进口", "出口"]}#############################""","""示例 2:查询:"森林砍伐对生物多样性有什么环境影响?"################输出:{"high_level_keywords": ["环境影响", "森林砍伐", "生物多样性损失"],"low_level_keywords": ["物种灭绝", "栖息地破坏", "碳排放", "热带雨林", "生态系统"]}#############################""","""示例 3:查询:"教育在减少贫困方面起什么作用?"################输出:{"high_level_keywords": ["教育", "减少贫困", "社会经济发展"],"low_level_keywords": ["入学机会", "识字率", "职业培训", "收入不平等"]}#############################""",]PROMPTS["naive_rag_response"] = """---角色---你是一个帮助助手,负责回答用户关于以下文档片段的查询。---目标---基于文档片段生成简明的回答,遵循回答规则,同时考虑对话历史和当前查询。总结文档片段中提供的所有信息,并结合与文档片段相关的通用知识。不要包含文档片段未提供的信息。在处理带有时间戳的内容时:1. 每个内容都有一个"created_at"时间戳,表示我们获取这个知识的时间2. 当遇到冲突信息时,同时考虑内容和时间戳3. 不要自动优先选择最近的内容 - 根据上下文进行判断4. 对于特定时间的查询,在考虑创建时间戳之前优先考虑内容中的时间信息---对话历史---{history}---文档片段---{content_data}---回答规则---- 目标格式和长度:{response_type}- 使用markdown格式并添加适当的章节标题- 请使用与用户提问相同的语言回答- 确保回答与对话历史保持连贯性- 如果不知道答案,请直接说明- 不要包含文档片段未提供的信息"""PROMPTS["similarity_check"] = """请分析以下两个问题之间的相似度:问题1:{original_prompt}问题2:{cached_prompt}请评估这两个问题在语义上是否相似,以及问题2的答案是否可以用来回答问题1,直接提供一个0到1之间的相似度分数。相似度分数标准:0:完全不相关或答案无法重用,包括但不限于:- 问题主题不同- 问题中提到的地点不同- 问题中提到的时间不同- 问题中提到的具体人物不同- 问题中提到的具体事件不同- 问题中的背景信息不同- 问题中的关键条件不同1:完全相同且答案可以直接重用0.5:部分相关且答案需要修改后才能使用仅返回0-1之间的数字,不要包含任何其他内容。"""PROMPTS["mix_rag_response"] = """---角色---你是一个帮助助手,负责回答用户关于以下数据源的查询。---目标---基于数据源生成简明的回答,遵循回答规则,同时考虑对话历史和当前查询。数据源包含两部分:知识图谱(KG)和文档片段(DC)。总结数据源中提供的所有信息,并结合与数据源相关的通用知识。不要包含数据源未提供的信息。在处理带有时间戳的信息时:1. 每条信息(包括关系和内容)都有一个"created_at"时间戳,表示我们获取这个知识的时间2. 当遇到冲突信息时,同时考虑内容/关系和时间戳3. 不要自动优先选择最近的信息 - 根据上下文进行判断4. 对于特定时间的查询,在考虑创建时间戳之前优先考虑内容中的时间信息---对话历史---{history}---数据源---1. 来自知识图谱(KG):{kg_context}2. 来自文档片段(DC):{vector_context}---回答规则---- 目标格式和长度:{response_type}- 使用markdown格式并添加适当的章节标题- 请使用与用户提问相同的语言回答- 确保回答与对话历史保持连贯性- 将回答组织成多个章节,每个章节专注于一个主要观点或方面- 使用清晰且能反映内容的章节标题- 在"参考来源"章节的末尾列出最多5个最重要的参考来源。清楚地标明每个来源是来自知识图谱(KG)还是文档数据(DC),使用以下格式:[KG/DC] 来源内容- 如果不知道答案,请直接说明。不要编造内容。- 不要包含数据源未提供的信息。"""

相关文章:

LightRAG简要概述

文章目录 索引流程问答流程naivelocalglobalhybridmix 中文prompt 官方仓库&#xff1a;LightRAG 没有废话&#xff0c;直接进入主题。 索引流程 1、提取实体与关系 2、LLM判断是否有漏掉的实体与关系&#xff0c;如有则接着提取 3、合并实体&#xff0c;根据多个实体描述&a…...

【Mac】安装 Parallels Desktop、Windows、Rocky Linux

一、安装PD 理论上&#xff0c;PD只支持试用15天&#xff01;当然&#xff0c;你懂的。 第一步&#xff0c;在 Parallels Desktop for Mac 官网 下载 Install Parallels Desktop.dmg第二步&#xff0c;双击 Install Parallels Desktop.dmg 第三步&#xff0c;双击安装Paralle…...

Unity利用噪声生成动态地形

引言 在游戏开发中&#xff0c;地形是构建游戏世界的基础元素之一。传统的地形创建方法通常依赖于手动建模或预设资源&#xff0c;这种方式虽然精确但缺乏灵活性&#xff0c;且工作量巨大。而使用噪声算法生成地形则提供了一种程序化、动态且高效的解决方案。本文将详细介绍如…...

【Linux】Ext系列文件系统(上)

目录 一、 理解硬件 1-1 磁盘 1-2 磁盘物理结构 1-3 磁盘的存储结构 1-4 如何定位一个扇区 1-4 磁盘的逻辑结构 1-4-1 理解过程 1-4-2 真实过程 1-5 CHS && LBA地址 二、文件系统 2-1 "块"概念 2-2 "分区"概念 2-3 "inode"…...

解决diffusers加载stablediffusion模型,输入prompt总是报错token数超出clip最大长度限制

1. StableDiffusion1.5 在加载huggingface中的扩散模型时&#xff0c;输入prompt总是会被报错超过clip的最大长度限制。 解决方案&#xff1a;使用compel库 from diffusers import AutoPipelineForText2Image import torch import pdb from compel import Compeldevice torc…...

metersphere接口测试(1)使用MeterSphere进行接口测试

文章目录 前言接口文档单接口测试环境配置梳理接口测试场景测试接口 接口自动化怎么写复用性高的自动化测试用例 总结 前言 大汉堡工作第203天&#xff0c;本篇记录我第一次接触接口测试任务&#xff0c;最近有些懈怠啊~ 接口文档 首先就是接口地址&#xff0c;接口测试时用…...

Android第三次面试总结(网络篇)

在计算机网络领域&#xff0c;网络模型是理解通信原理的基础框架。本文将详细解析 OSI 参考模型和 TCP/IP 模型的分层结构、核心功能及实际应用&#xff0c;并通过对比帮助读者建立完整的知识体系。 一、OSI 参考模型&#xff1a;七层架构的理论基石 OSI&#xff08;开放系统…...

AirtestIDE用法

包括airtest和poco 1. airtest 安装python3.7.9 64 python3 -m pip install -U airtest 或者&#xff1a; git clone https://github.com/AirtestProject/Airtest.git pip install -e airtest 无界面的airtest用法&#xff1a; 打开手机中的 开发者选项 , 以及 允许USB调…...

【面试手撕】非常规算法,多线程常见手撕题目

【面试手撕】非常规算法&#xff0c;多线程常见手撕题目 生产者消费者ReentrantLock实现的生产苹果/消费苹果synchronized实现的生产消费LinkedBlockingQueue阻塞队列方法实现多条件资源分配分布式任务调度模拟 交替打印两个线程交替打印1-100之间的数ReentrantLock 实现synchr…...

MySQL复合查询

目录 多表查询 自连接 子查询 单行子查询 多行子查询 in关键字 all关键字 any关键字 多列子查询 from中使用子查询 合并查询 union 操作符 union all 操作符 内外连接 内连接 外连接 左外连接 右外连接 前几期我们已经学习了MySQL的基本查询&…...

登录Xshell主机及Linux基本指令

✅博客主页:爆打维c-CSDN博客​​​​​​ &#x1f43e; &#x1f539;分享c、c知识及代码 &#x1f43e; &#x1f539;Gitee代码仓库 五彩斑斓黑1 (colorful-black-1) - Gitee.com 一、操作系统简介 Linux其实跟我们熟知的Window一样&#xff0c;它们都是操作系统。 &#x…...

[LevelDB]关于LevelDB存储架构到底怎么设计的?

本文内容组织形式 LevelDB 存储架构重要特点总体概括LevelDB中内存模型MemTableMemTable的数据结构背景&#xff1a;SkipListSkiplist的数据结构 Skiplist的数据访问细节 SkipList的核心方法Node细节源代码 MemTable的数据加速方式Iterator 的核心方法 MemTable 的读取&写入…...

深入解析 React Diff 算法:原理、优化与实践

深入解析 React Diff 算法&#xff1a;原理、优化与实践 1. 引言 React 作为前端领域的标杆框架&#xff0c;采用 虚拟 DOM&#xff08;Virtual DOM&#xff09; 来提升 UI 更新性能。React 的 Diff 算法&#xff08;Reconciliation&#xff09; 是虚拟 DOM 运行机制的核心&a…...

【从零开始】Air780EPM的LuatOS二次开发——OneWire协议调试注意事项!

当涉及到与传感器、执行器等外部设备交互时&#xff0c;OneWire协议的高效调试成为决定项目成败的关键环节。OneWire协议&#xff08;单总线协议&#xff09;以其仅需一根数据线即可实现设备通信的极简特性&#xff0c;被广泛应用于温度传感器、身份识别模块等场景。 一、LuatO…...

响应(Response)

在 Flask 中&#xff0c;视图函数可以返回多种类型的响应&#xff0c;例如字符串、HTML、JSON、文件等。Flask 提供了 make_response 函数&#xff0c;用于生成和自定义 HTTP 响应。 2.1 默认响应 默认情况下&#xff0c;视图函数返回的字符串会被 Flask 包装成一个 HTTP 响应…...

C++学习之云盘项目fastDFS

1.资料介绍 1.1 一些概念 1. 什么是服务器 硬件 : 一台配置高的电脑 软件 : 电脑必须有一个能够解析 http 协议的软件 2. 常见的 Web 服务器 tomcat 服务器 apache 组织产品 , 开源的免费服务器 weblogic 服务器 bea 公司 , 收费的服务器 不交费 , 访问量受限…...

使用vue3+el-form实现动态新增名称,值,并对名称进行必填校验

使用vue3el-form实现动态新增名称&#xff0c;值&#xff0c;并对名称进行必填校验 效果图 代码 <template><el-form :model"form" :rules"rules" ref"dynamicForm"><!-- 动态添加的名称和值 --><el-row v-for"(ite…...

Spring Boot 集成高德地图电子围栏

摘要&#xff1a;本文手把手教你通过 Spring Boot 调用高德地图 API 实现电子围栏功能&#xff0c;涵盖云端围栏创建、设备位置监控与本地算法校验&#xff0c;附带完整代码和避坑经验&#xff01; 一、电子围栏核心原理 1.1 什么是电子围栏&#xff1f; 虚拟地理边界&#x…...

3.JVM-内部结构

栈结构 动态链接 栈中的对象指向堆中的实际引用 符号引用: 比如一个类的名称 直接引用: 具体堆中数据信息 方法返回 栈中上一层的结果和下一层的指令 操作数栈 局部变量 该线程中需要的变量 PC计数器 程序计数器:存当前执行到那一步 操作数栈里面将计算完之后的结果推入局…...

Spring 框架中常用注解和使用方法

Spring 框架中常用注解的详细解释与应用场景&#xff0c;结合核心功能和实际开发需求进行分类说明&#xff1a; 1.组件定义注解 1.1 Component 作用&#xff1a;通用注解&#xff0c;将普通 Java 类标记为 Spring 管理的 Bean&#xff0c;由容器实例化和管理&#xff0c;相当…...

神策数据接入 DeepSeek,AI 赋能数据分析与智能运营

在 AI 技术迅猛发展的浪潮下&#xff0c;神策数据正在加速推进人工智能在数据分析和智能运营领域的深度应用。近日&#xff0c;神策数据宣布全面接入 DeepSeek&#xff0c;为企业客户带来更加智能化、高效的数据分析与智能运营服务。这一举措展现了神策数据在人工智能方向的探索…...

微软OneNote无法同步解决方案

目录 前言原因UWP特性 解决方案C***h注册表 参考链接 前言 假设有多台Windows电脑&#xff0c;最方便且免费的多设备笔记同步方案就是微软自家的OneNote&#xff0c;使用OneDrive自带的5G云存储。 但是在国内大陆的OneNote&#xff0c;经常会出现无法同步、同步失败&#xff1…...

一般机器学习有哪些算法?

传统的机器学习算法主要依赖统计学和优化方法&#xff0c;不依赖深层神经网络&#xff0c;通常具有较高的可解释性且适用于中小规模数据集。以下是经典的传统机器学习算法分类及代表性模型&#xff1a; 一、监督学习&#xff08;Supervised Learning&#xff09; 1. 回归&…...

RAGFlow部署与使用(开源本地知识库管理系统,包括kibana配置)

一、RAGFlow 简介 戳我访问RAGFlow RAGFlow 是一款基于深度文档理解构建的开源 RAG&#xff08;Retrieval-Augmented Generation&#xff09;引擎。它可以给我们搭建本地知识库&#xff0c;将用户的知识文档上传到RAGFlow后&#xff0c;通过文档切分、向量入库&#xff0c;在…...

STM32G070CBT6读写FLASH中的数据

向FLASH中写入数据函数 /*函数说明&#xff1a;向FLASH中写数据形参&#xff1a;addr-要写入数据的起始地址 data-准备写入数据 len-数据大小返回值&#xff1a;1-成功&#xff0c;0-失败 */ uint8_t FlashWriteData(uint64_t addr,uint8_t data[],size_t len) {uint32_t Fir…...

如何使用HACS一键集成米家与果家设备到HomeAssistant玩转智能家居

文章目录 前言1. 下载HACS源码2. 添加HACS商店3. 绑定米家设备 前言 各位科技潮人和智能家居发烧友们&#xff0c;是不是也梦想着把家里变成一个高科技的空间&#xff1f;有了群晖NAS这位得力助手&#xff0c;不仅存储空间大得吓人&#xff0c;还能通过Docker轻松安装各种应用…...

Flutter_学习记录_状态管理之GetX

1. 状态管理、Flutter Getx介绍 1.1 状态管理 通俗的讲&#xff1a;当我们想在多个页面&#xff08;组件/Widget&#xff09;之间共享状态&#xff08;数据&#xff09;&#xff0c;或者一个页面&#xff08;组件/Widget&#xff09;中的多个子组件之间共享状态&#xff08;数…...

DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)之添加列宽调整功能,示例Table14_09自定义单元格的固定表头表格

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦 💕 目录 DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)之添加列宽调整功能,示例Table14_09自定义单元格…...

基于 Prometheus + Grafana 监控微服务和数据库

以下是基于 Prometheus Grafana 监控微服务和数据库的详细指南&#xff0c;包含架构设计、安装配置及验证步骤&#xff1a; 一、整体架构设计 二、监控微服务 1. 微服务指标暴露 Spring Boot 应用&#xff1a; xml <!-- 添加 Micrometer 依赖 --> <dependency>…...

文件解析漏洞

一&#xff0c;IIS解析漏洞 1&#xff0c;IIS6.X 目录解析 在iis的⽹站根⽬录新建⼀个名为q.asp的⽂件&#xff0c;在q.asp中新建⼀个txt⽂件 在外部浏览器中访问windows2003的iis⽹站中的1.txt 发现asp代码被执⾏ 2&#xff0c;IIS6.X 畸形文件解析 在iis的⽹站根⽬录新建⼀…...

C++学习笔记(二十一)——文件读写

一、文件读写 作用&#xff1a; 文件读写指的是将数据从程序存储到文件&#xff0c;或从文件读取数据&#xff0c;以实现数据的持久化存储。 C 提供了 fstream 头文件&#xff0c;用于文件操作&#xff0c;主要包括&#xff1a; ofstream&#xff08;输出文件流&#xff09;—…...

Ubuntu上部署Flask+MySQL项目

一、服务器安装python环境 1、安装gcc&#xff08;Ubuntu默认已安装&#xff09; 2、安装python源码 wget https://www.python.org/ftp/python/3.13.2/Python-3.13.2.tar.xz 3、安装Python依赖库 4、配置python豆瓣源 二、服务器安装虚拟环境 1、安装virtualenv pip3.10 ins…...

Unity WebGL项目访问时自动全屏

Unity WebGL项目访问时自动全屏 打开TemplateData/style.css文件 在文件最下方添加红色框内的两行代码 使用vscode或者其他编辑器打开index.html 将按钮注释掉&#xff0c;并且更改为默认全屏...

C#RTSP代理推流程序

将不支持rtsp的相机通过rtspserver实现推流 主要功能 1. rtsp交互 2. udp推流 3. Bitmap转H264,RTP打包 4. 支持多路播放...

Redis--渐进式遍历

目录 一、引言 二、介绍 三、命令 四、总结 一、引言 本篇文章将介绍Redis中的渐进式遍历 二、介绍 一般使用keys * 来获取所有的key&#xff0c;但这样的操作如果数据量很大的时候&#xff0c;会将服务器给卡死&#xff0c;所以通过渐进式遍历&#xff0c;就会避免这个问题…...

PyTorch深度学习框架60天进阶学习计划 - 第23天:Transformer架构解析

让我继续完成机器翻译示例的代码&#xff1a; PyTorch深度学习框架60天进阶学习计划&#xff1a;第23天 Transformer架构解析 学习目标 推导自注意力机制数学公式详解位置编码的傅里叶基函数设计对比编码器-解码器结构的信息流动差异 1. Transformer架构概述 Transformer架…...

《C#上位机开发从门外到门内》3-4:基于TCP/IP的远程监控系统设计与实现

文章目录 一、项目概述二、系统架构设计三、通信协议设计四、功能模块实现五、系统安全性与稳定性六、性能优化与测试七、实际应用案例八、结论 随着信息技术的飞速发展&#xff0c;远程监控系统在工业自动化、智能家居、环境监测等领域的应用日益广泛。基于TCP/IP协议的远程监…...

【MySQL】MySQL审计工具Audit Plugin安装使用

MySQL审计工具Audit Plugin安装使用 https://www.cnblogs.com/waynechou/p/mysql_audit.html MySQL 5.6 开启审计功能 https://blog.51cto.com/u_15127556/4344503 MySQL之添加日志审计功能 https://blog.csdn.net/weixin_43279032/article/details/105507170 MySQL开启日志记录…...

Flutter 按钮组件 ElevatedButton 详解

目录 1. 引言 2. ElevatedButton 的基本用法 3. 主要属性 4. 自定义按钮样式 4.1 修改背景颜色和文本颜色 4.2 修改按钮形状和边框 4.3 修改按钮大小 4.4 阴影控制 4.5 水波纹效果 5. 结论 相关推荐 1. 引言 在 Flutter 中&#xff0c;ElevatedButton 是一个常用的…...

AndroidStudio+Android8.0下的Launcher3 导入,编译,烧录,调试

文章目录 编译完成搜索输出文件Android.mk配置gradle编译环境报错一报错二报错三输出文件下载INSTALL_FAILED_TEST_ONLY查找系统签名查找签名工具开始签名查看签名签名问题重新生成秘钥解决方案生成成功挽救错误:重新刷机更换testkey秘钥keystore生成keystoreINSTALL_FAILED_S…...

【差分约束】P5590 赛车游戏|省选-

本文涉及知识点 【数学 线性代数】差分约束 P5590 赛车游戏 题目描述 R 君和小伙伴打算一起玩赛车。但他们被老司机 mocania 骗去了秋名山。 秋名山上有 n n n 个点和 m m m 条边&#xff0c;R 君和他的小伙伴要从点 1 1 1 出发开往点 n n n&#xff0c;每条边都有一个…...

咪咕MG101_晨星MSO9380芯片_安卓5.1.1_免拆卡刷固件包

咪咕MG101_晨星MSO9380芯片_安卓5.1.1_免拆卡刷固件包&#xff08;内有教程&#xff09; 刷机教程简单说明&#xff1a; 1、把下载好的刷机包&#xff0c;U盘里建立一个upgrade文件夹&#xff0c;固件放入此文件夹里&#xff0c;放入U盘中&#xff0c;注意升级包为压缩包不要对…...

【软件工程】06_软件设计

6.1 软件设计概述 1. 软件设计的目标 软件设计的最基本目标就是回答 “概括地描述系统如何实现用户所提出来的功能和性能等方面的需求?” 这个问题。 软件设计的目标是根据软件需求分析的结果,设想并设计软件,即根据目标系统的逻辑模型确定目标系统的物理模型。包括软件体系…...

在Flutter中使用Future读取一个大文件会导致线程阻塞吗

目录 一、Future 与文件读取的机制 1. Dart 的异步 I/O 原理 2. 代码示例 二、什么情况下会阻塞主线程? 1. I/O 操作本身不会阻塞 2. 数据处理可能阻塞 3. 示例对比 三、如何避免阻塞主线程? 1. 将耗时操作移到 Isolate 2. 使用 compute 函数(简化 Isolate 操作)…...

2025-03-17 Unity 网络基础1——网络基本概念

文章目录 1 网络1.1 局域网1.2 以太网1.3 城域网1.4 广域网1.5 互联网&#xff08;因特网&#xff09;1.6 万维网1.7 小结 2 IP 地址2.1 IP 地址2.2 端口号2.3 Mac 地址2.4 小结 3 客户端与服务端3.1 客户端3.2 服务端3.3 网络游戏中的客户端与服务端 1 网络 ​ 在没有网络之前…...

2025-03-17 学习记录--C/C++-PTA 习题4-8 高空坠球

合抱之木&#xff0c;生于毫末&#xff1b;九层之台&#xff0c;起于累土&#xff1b;千里之行&#xff0c;始于足下。&#x1f4aa;&#x1f3fb; 一、题目描述 ⭐️ 习题4-8 高空坠球 皮球从某给定高度自由落下&#xff0c;触地后反弹到原高度的一半&#xff0c;再落下&…...

Java网络编程socket

一、UDP 特点&#xff1a; ① 用户数据报协议&#xff08;User Datagram Protocol&#xff09; ​ ② UDP是面向无连接通信协议 ​③ 速度快&#xff0c;一次只能传输64KB数据&#xff0c;数据不安全&#xff0c;容易丢失 &#xff08;1&#xff09;单播 一对一 客户端&#xf…...

蓝桥杯备赛 Day0_移动零

&#x1f388; 个人主页&#x1f449;&#xff1a;tbRNA-CSDN博客tbRNA-CSDN博客tbRNA-CSDN博客 &#x1f4af; 个人简介&#xff1a;在校大学生一枚&#x1f48b;. &#x1f60d; 希望我的文章对大家有着不一样的帮助&#xff0c;欢迎大家关注我&#xff0c;感谢大家的多多支持…...

Razor C# 变量

Razor C# 变量 引言 在ASP.NET MVC和Razor视图引擎中,变量是构建动态网页的基础。理解Razor C#变量的使用对于开发者来说至关重要。本文将详细介绍Razor C#变量的概念、类型、作用域以及如何在实际项目中有效使用它们。 一、Razor C# 变量的概念 Razor C# 变量是存储在Raz…...

产品更新丨谷云科技ETLCloud 3月更新速递

本月&#xff0c;我们的数据集成产品ETLCloud继续迎来多项更新&#xff0c;进一步提升系统的兼容性和用户体验。以下是本月更新的亮点内容&#xff1a; 新增10项功能组件&#xff0c;持续丰富产品易用性 聚水潭-奇门通用组件 新增聚水潭-奇门通用组件&#xff0c;帮助企业更…...