RAGFlow v0.9 重磅升级,支持 GraphRAG,开启下一代 RAG 之旅!

news2024/11/13 16:07:58

一、引言

前面我们介绍过很多的关于大模型和RAG相关的技术,通过其关注程度足以看到市场上对RAG框架和成熟产品的迫切需求,因为想要个人独立从0开始实现一个RAG产品并非易事,虽然有相当多的RAG或者知识库开源产品,大部分其实很难应用于实际生产环境,很多都只能算是一个简单的演示 demo 的基本实现,并没有针对不同行业不同场景实际的需求进行覆盖和完善,光一个文档深度学习和内容解析,在面对各种复杂的文档格式,有些不规则的文档内容、以及一些包括复杂表格和图片的文档,如何有效的将其内容完整的提取出来输入给大模型本身就存在非常多的困难和挑战需要突破,就算使用目前通用的 GPT-4oGemini Pro 等超大模型,其效果和准确率也是有限的。

然而,现有的 RAG 系统,即 RAG 1.0,大多依赖简单的语义相似度搜索,在处理海量、复杂的企业级数据时,面临着效率和准确性的双重挑战,同时还存在检索召回率低、缺乏精确检索能力。这导致了所谓的“垃圾输入,垃圾输出”(GIGO)问题:如果输入数据质量不高,即使 LLM 能力再强,生成的答案也难以令人满意,也就是我们上面讲到的高质量文档数据输入问题

正是在这种完全依赖大模型解决GPU算力成本还太高且又有很多迫切需求的背景下,开源界传来了好消息,RAGFlow 应运而生,它致力于打造一个以搜索为中心的端到端优化系统,从根本上解决 RAG 1.0 的局限性。RAGFlow 的设计理念是“高质量输入,高质量输出”,它通过深度文档理解技术,智能识别文档结构和内容,确保数据的高质量输入,为 LLM 提供更精准、更可靠的答案

2024 年 4 月 1 日,RAGFlow 正式开源,这一消息在技术界引起轰动。开源不到一周时间,RAGFlowGitHub 上就已收获 2900 颗星,而不到 4 个月的时间,这一数字已飙升至 13600,足以说明其受欢迎程度。虽然很多小伙伴在实际体验了 RAGFlow 产品之后反馈目前的版本还是存在非常多的 bug 未修复,相信按 RAGFlow 现在的发展和迭代速度,估计迭代俩版本就能稳定下来了,让我们拭目以待。

RAGFlow v0.9 版本于两天前正式发布,从发布日志中可以看到令人期待的新功能和体验升级。该版本不仅标志着 RAG 系统迈向知识图谱增强的RAG 2.0 时代,还针对之前版本用户的反馈,修复了大量bug,进一步提升了稳定性和易用性。

此次更新的一大亮点是对 GraphRAG 的正式支持,为 RAG 系统注入知识图谱的强大能力,显著提升了答案的精准度和可解释性。此外,v0.9 版本还新增了关键词提取、百度/DuckDuckGo/PubMed/Wikipedia/Bing/Google 搜索等 Agent 运算符,扩展了信息检索渠道。用户现在还可以使用 ASR 语音转文本功能,方便地输入音频文件

为了满足用户多样化的需求,RAGFlow v0.9 兼容了 Gemini、Groq 等更多 LLMs,并集成了 xinference reranker,进一步提升答案质量。同时,该版本还增加了对 LM Studio/OpenRouter/LocalAI/Nvidia API 等推理框架/引擎/服务的支持,为用户构建和部署 RAG 系统提供更多便利

二、RAG 1.0 :语义相似度搜索的瓶颈

早期的 RAG 系统,即 RAG 1.0,主要依赖于语义相似度搜索技术。其工作原理是将文档分割成数据块,并利用嵌入模型将其转换为向量表示,存储在向量数据库中。当用户提出问题时,系统会将问题转换为向量,并在数据库中搜索语义最相似的文档块,将其作为 LLM 的参考信息。

然而,随着 LLM 应用场景的不断拓展,这种看似直观的传统方法逐渐暴露出其局限性:

  1. 召回率低: RAG 1.0 通常采用简单的文档分块策略,忽略了文档内部细粒度的语义结构,导致许多包含关键信息的文档块无法被检索到,从而降低了答案的召回率,很多开源知识库项目基本上就是采用的这种方案。
  2. 缺乏精确检索能力: 语义相似度搜索只能找到与查询内容“大致相关”的信息,而无法满足用户对时间、主题、实体等方面的精确检索需求,尤其是在处理一些需要精确匹配的专业问题时,RAG 1.0 往往难以胜任。
  3. 过度依赖嵌入模型: RAG 1.0 的检索效果与嵌入模型的选择密切相关,而通用嵌入模型在特定领域的性能往往难以令人满意,这限制了 RAG 系统在专业领域的应用。
  4. 忽略文档结构: RAG 1.0 简单的文档分块方法忽略了文档本身的结构信息,例如章节标题、表格数据、图片注释等,这些信息对于理解文档内容、提取关键信息至关重要,而 RAG 1.0 的处理方式无疑会导致信息丢失,影响答案质量。
  5. 缺乏用户意图识别: 用户的问题表述往往与其真实意图存在差异,而 RAG 1.0 缺乏对用户意图的深度理解,只能进行简单的关键词匹配,导致检索结果与用户预期存在偏差。
  6. 无法处理复杂查询: 现实场景中的许多问题都需要进行多轮推理才能得到答案,而 RAG 1.0 仅限于处理简单的单轮问答,无法满足复杂查询的需求。

总而言之,RAG 1.0 虽然为 LLM 的应用打开了新的局面,但其简单的架构和对语义相似度搜索的依赖,使其在面对海量、复杂的企业级数据时,显得力不从心。为了突破 RAG 1.0 的瓶颈,我们需要一种更加智能、高效、精准的 RAG 解决方案,而 RAGFlow v0.9 版本带来的 GraphRAG 正是为此而生

三、RAG 2.0:以搜索为中心的端到端优化

为了解决 RAG 1.0 的局限性,新一代 RAG 架构,即 RAG 2.0,应运而生。 RAG 2.0 将 RAG 系统视为一个以搜索为中心的端到端流程,并将其细化为四个关键阶段信息提取、文档预处理、索引构建和检索

与 RAG 1.0 不同的是,RAG 2.0 强调对数据处理流程的精细化控制,每个阶段都围绕模型和算法进行优化,以确保最终答案的质量。例如,

  • 在信息提取阶段:RAG 2.0 采用更精细的文档解析和信息抽取技术,保留更多关键信息
  • 在文档预处理阶段:RAG 2.0 引入了知识图谱构建、文档聚类等技术,为检索提供更丰富的上下文信息
  • 在索引构建阶段:RAG 2.0 支持向量搜索、全文搜索、张量搜索等多种混合搜索方式,提升检索效率和精度
  • 在检索阶段:RAG 2.0 引入了查询重写、意图识别等技术,优化检索策略

为了更好地支持 RAG 2.0 架构, RAGFlow 不是简单地将 RAG 1.0 的组件拼凑起来,而是从底层架构上进行了重新设计,以模型和算法为核心,为用户提供更灵活、更高效、更精准的 RAG 解决方案。

具体来说,RAGFlow 在以下几个方面体现了对 RAG 2.0 的支持:

  • 深度文档理解: RAGFlow 采用先进的文档解析和信息抽取技术,能够处理各种复杂的文档格式,并提取关键信息,为后续的知识图谱构建、索引构建等环节提供高质量的数据基础。
  • 混合搜索: RAGFlow 集成了多种搜索技术,包括向量搜索、全文搜索和张量搜索,能够根据不同的数据类型和查询需求,灵活选择最优的搜索策略,提升检索效率和精度。
  • 知识图谱增强: RAGFlow 支持 GraphRAG 等知识图谱构建技术,能够自动从文本数据中抽取实体和关系,构建知识图谱,为 LLM 提供更丰富的上下文信息,提升答案的精准性和可解释性。
  • 查询优化: RAGFlow 引入了查询重写、意图识别等技术,能够根据用户的查询意图,动态调整检索策略,提高答案的精准度和相关性。

RAG 2.0 中的每个阶段本质上都以模型为中心。他们与数据库结合工作,以确保最终答案的有效性。

因此,RAG 2.0 相比 RAG 1.0 会复杂很多,其核心是数据库和各种模型,需要依托一个平台来不断迭代和优化,这就是我们开发并开源 RAGFlow 的原因。它没有采用已有的 RAG 1.0 组件,而是从整个链路出发来根本性地解决 LLM 搜索系统的问题。当前,RAGFlow 仍处于初级阶段,系统的每个环节,都还在不断地进化中。由于使用了正确的方式解决正确的问题,因此自开源以来 RAGFlow 只用了不到 3 个月就获得了 Github 万星。当然,这只是新的起点。

四、RAGFlow v0.9:深度融合 GraphRAG

在 RAGFlow 体系中,我们对下一代 RAG (RAG 2.0) 的定义更加完整它是一个以搜索为中心的端到端优化系统。RAG 2.0 共分为四个阶段,其中索引与检索阶段通常需要专用数据库提供支持,而前两个阶段,即数据抽取和预处理,则扮演着至关重要的角色

数据抽取阶段,我们利用各类文档模型,例如强大的大型语言模型 (LLM),来确保被索引数据的质量,避免出现“垃圾输入,垃圾输出”(Garbage In, Garbage Out) 的情况。

在数据进入数据库之前,我们还可以选择性地进行一些预处理,包括文档预聚类和知识图谱构建等。这些预处理步骤主要用于解决多跳问答和跨文档提问等复杂场景。

GraphRAG 作为一种面向下一代 RAG 的解决方案应运而生。在 RAG 2.0 的体系中,它可以被视为整个流程中的一个重要单元。从 RAGFlow 的 0.9 版本开始,我们已经将 GraphRAG 集成到系统当中。

那么,为什么选择引入 GraphRAG? 它与微软提出的 GraphRAG 又有哪些区别和联系?

知识图谱对提升 RAG 的效果至关重要。传统的 RAG 系统只能根据提问检索答案,找到的往往是与提问相似的结果,而非精准答案。例如,对于一些需要总结归纳的问题,简单的关键词匹配显然无法满足需求。

这类问题本质上是一种聚焦于查询的总结 (Query Focused Summarization, QFS)。利用知识图谱可以很好地解决这类问题。知识图谱能够根据文本相关性将内容聚合,在对话过程中根据这些聚合信息生成总结,从而精准地回答用户问题。目前,很多专用 AI 搜索引擎都在采用这种方法

之前的 RAGFlow 版本提供的 RAPTOR 功能也是对文本进行聚类,与上述原理类似。但相比之下,以知识图谱为中心的方法可以构建以命名体实体节点为中心的层次化结果,在处理 QFS 查询时,能够提供更准确、更系统的答案。

不仅如此,在其他一些场景中,知识图谱也能改善 RAG 的返回结果。它能够为返回结果添加更丰富的上下文信息,使 LLM 可以生成更具解释性的答案。

大量研究工作已经证明了知识图谱在 RAG 中的有效性。因此,GraphRAG 一经推出就迅速获得了社区的广泛关注。

当然,利用知识图谱进行问答并非新鲜事。早在 RAG 出现之前,KGQA 就已经存在多年。但这些工作一直面临着一个瓶颈:如何实现知识图谱构建的自动化和标准化。这也阻碍了基于知识图谱的问答系统在企业级场景中的大规模应用。

随着 LLM 和 RAG 的出现和普及,使用 LLM 自动构建知识图谱成为了一种可行的方案,GraphRAG 就是其中的佼佼者。

然而,GraphRAG 在实际应用中也面临一些挑战例如,在实体抽取过程中,可能会出现多个同义词对应同一个实体的情况,影响知识图谱的准确性。此外,GraphRAG 需要多次调用 LLM, 尤其是在处理大规模数据集时,会不可避免地消耗大量的 Token,增加使用成本

为了解决这些问题,RAGFlow 在 GraphRAG 的基础上进行了一系列优化和改进,使其更适用于实际应用场景:

  • 实体去重: 为了解决 GraphRAG 在实体抽取过程中可能出现的同义词问题,RAGFlow 引入了实体去重机制。它利用 LLM 的语义理解能力,自动识别和合并表示相同实体的不同名称,例如将 “2024” 和 “2024 年” 合并为同一个实体,从而提高知识图谱的准确性。
  • 降低 Token 消耗: GraphRAG 在构建知识图谱的过程中,需要多次调用 LLM,这在处理大规模数据集时会消耗大量的 Token。为了降低使用成本,RAGFlow 对 GraphRAG 的流程进行了优化,尽可能减少 LLM 的调用次数,并通过缓存机制避免重复计算,从而有效降低 Token 的消耗量。

简而言之,GraphRAG 对知识图谱的抽象和构建进行了简化,使其更易于工程化和标准化,推动了基于知识图谱的问答系统在实际应用中的落地。RAGFlow 借鉴了 GraphRAG 的实现,并在其基础上进行了一系列改进,例如引入去重步骤、降低 Token 消耗等,使其更加高效和实用。

五、总结与展望:知识图谱赋能 RAG 的未来

RAGFlow v0.9 的发布,标志着知识图谱增强型 RAG 系统 (RAG 2.0) 的全新时代正式开启。 GraphRAG 作为其中的先行者,展现了 LLM 驱动下的知识图谱构建技术所蕴含的巨大潜力。 它不仅为 RAG 系统注入了更强大的语义理解和知识推理能力,也为智能问答、语义搜索、知识发现等领域的应用打开了新的大门。

GraphRAG 之所以能够取得成功,很大程度上得益于它对传统知识图谱构建流程的简化,使其更容易在实际工程中落地。 然而,我们必须认识到,这仅仅是知识图谱与 RAG 结合的开始,未来还有广阔的探索空间。

现有的 GraphRAG 主要面向能够构建知识图谱的结构化和半结构化数据, 但在实际的企业级应用中,还有大量数据并不适合构建知识图谱, 也有一些场景需要考虑成本因素,无法对所有数据进行知识图谱构建。

因此,如何将知识图谱的优势应用到更广泛的数据类型上,如何在成本可控的情况下构建和利用知识图谱,将是未来 RAGFlow 需要着重解决的问题。

为了进一步释放知识图谱的潜力, RAGFlow 未来的发展方向将包含以下几个方面:

  • 突破数据限制,构建跨文档知识图谱: 未来的 RAG 系统需要具备处理更复杂数据的能力。RAGFlow 将探索构建跨越多个文档的知识图谱, 以捕捉更复杂的语义关系, 提升系统对复杂问题的理解和推理能力,打破数据之间的壁垒。
  • 深入挖掘语义信息,实现知识图谱驱动的查询改写: 为了进一步提升检索的精准度, RAGFlow 将探索利用知识图谱中的语义信息,对用户查询进行改写和扩展, 帮助系统更准确地理解用户意图, 返回更符合用户需求的结果。
  • 拓展知识维度,实现多模态知识融合: 未来的 RAG 系统需要能够理解和处理更加多元的信息。RAGFlow 将探索将文本、图像、视频等多模态信息融入知识图谱,构建更全面的知识表示,支持更丰富的问答场景,例如结合图片和文字进行问答等。

除了对知识图谱应用的探索, RAGFlow 还将持续进行功能开发和完善,打造更加强大和易用的 RAG 系统,例如:

  • Text2SQL: 支持用户使用自然语言进行数据库查询,方便用户从结构化数据中获取信息,降低使用门槛。
  • 多模态代理: 支持 TTS (语音合成) 和类似 Perplexity 的搜索代理, 为用户提供更便捷、更自然的交互体验。
  • OpenAI 兼容 API: 提供与 OpenAI 兼容的 API,方便开发者将 RAGFlow 集成到现有应用中, 降低开发成本。
  • 更丰富的文件格式支持: 支持解析 eml 等更多类型的文件, 扩展系统的应用场景, 满足更多用户的需求。

我们相信, 随着 RAGFlow 等开源项目的不断发展,知识图谱将与 RAG 技术更加紧密地结合,共同推动智能问答系统朝着更智能、更可靠、更易用的方向发展,为用户带来更优质的智能体验。

🚀🎁  为了方便大家快速学习和掌握大模型在实际业务场景中的实践应用,我整理了一份大模型精选资源包,包含我在探索和实践大模型过程中积累的各种资料,主要包括如下内容:

🔥 大模型文档 & 教程
🔥 大模型前沿趋势解读
🔥 最新研究报告 & 企业落地案例

关注公众号「技术狂潮AI」回复以下关键词即可快速获取:
01「大模型专栏|AI Agent」👉 回复关键词 「AI Agent」 获取
02「大模型专栏|企业落地」👉 回复关键词 「企业落地」 获取
03「大模型专栏|学习资源」👉 回复关键词 「学习资源」 获取
04「大模型专栏|行业趋势」👉 回复关键词 「行业趋势」 获取
05「大模型专栏|研究报告」👉 回复关键词 「研究报告」 获取
06「大模型专栏|技术大会」👉 回复关键词 「技术大会」 获取
07「企业数字化|转型合集」👉 回复关键词 「企业转型」 获取

所有资料都会持续更新,敬请期待!

六、参考资料

[1]. RAGFlow GitHub: https://github.com/infiniflow/ragflow

[2]. RAGFlow Demo: https://demo.ragflow.io/

[3]. GraphRAG, https://github.com/microsoft/graphrag

[4]. From Local to Global: A Graph RAG Approach to Query-Focused Summarization, https://arxiv.org/abs/2404.16130

[5]. HippoRAG: Neurobiologically Inspired Long-Term Memory for Large Language Models , https://arxiv.org/abs/2405.14831

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2033112.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用 Elasticsearch RestHighLevelClient 进行查询

Elasticsearch 提供了多种客户端库,以方便不同编程语言的用户进行操作。其中,Java 的 RestHighLevelClient 是 Elasticsearch 官方推荐的客户端之一,用于 Java 应用程序中。本文将介绍如何使用 Java 的 RestHighLevelClient 进行 Elasticsear…

Docker Hub 镜像代理加速

因为未知原因,docker hub 已经不能正常拉取镜像,可以使用以下代理服务来进行: "https://docker.m.daocloud.io", "https://noohub.ru", "https://huecker.io", "https://dockerhub.timeweb.cloud"…

深入浅出消息队列----【顺序消息的实现原理】

深入浅出消息队列----【顺序消息的实现原理】 何为顺序发消息的顺序性存储消息的顺序性消费消息的顺序性顺序消息消费的三把锁第一把锁:分布式锁第二把锁:Synchronized第三把锁:ReentrantLock 本文仅是文章笔记,整理了原文章中重要…

vue3仿飞书头像,根据不同名称生成不同的头像背景色

效果展示&#xff1a; 传递三个参数&#xff1a; name&#xff1a;要显示的名称&#xff1b;size&#xff1a;头像的大小&#xff1b;cutNum&#xff1a;分割当前名称的最后几位数&#xff1b; 代码如下&#xff1a; <template><div:style"{color: #fff,borde…

VMware虚拟机下安装Ubuntu22.04以及汉化配置保姆级教程

目录 一.VMware和Ubuntu下载 二.在VMware中创建Ubuntu 1.点击 创建新的虚拟机 2.选择典型 3.选择Ubuntu镜像包&#xff08;自定义存放的位置&#xff09; 4.创建个人信息&#xff08;密码一定要牢记&#xff09; 5.选择虚拟机的安装位置 6.其他配置项&#xff08;默认下…

在数字浪潮中扬帆远航,软件行业就业前景如何?

随着数字化转型的加速和信息技术的广泛应用&#xff0c;对于软件开发人员的需求持续增长。不仅传统IT企业需要大量的软件开发人才&#xff0c;各行各业的企业也普遍需要自主研发软件以满足其业务需求。对于具备较好的学习能力和适应能力的人来说&#xff0c;这个行业提供了更多…

jenkins一键推送到远程服务器并用docker容器启动

1.安装jenkins 我后端使用的是宝塔面板来安装的容器化jenkins,要选中允许外部访问&#xff0c;安装完之后没有那个选项了&#xff0c;一开始安装的时候要选中不使用域名和后面的允许外部访问。Jenkins 版本为&#xff1a; 2.462.1 2.配置Jenkins 2.1 Git plugin 安装完毕之…

江新安教授受邀引正基因进行《制药行业研发项目管理》培训

近日&#xff0c;科济管线创始人江新安教授应赛柏蓝邀请为北京引正基因科技有限公司&#xff08;简称引正基因&#xff09;进行《研发项目管理》授课。为提高项目管理水平&#xff0c;加强研发项目相关人员的管理能力&#xff0c;掌握研发项目管理技能与工具&#xff0c;江新安…

AI招聘在人才盘活中的作用:开启智慧人力新篇章

一、引言&#xff1a;AI赋能招聘新纪元 在21世纪的今天&#xff0c;随着科技的飞速发展&#xff0c;人工智能&#xff08;AI&#xff09;已经渗透到社会经济的各个角落&#xff0c;其中&#xff0c;人力资源管理领域也不例外。AI技术的引入&#xff0c;不仅颠覆了传统的招聘模…

代码规范 —— QMQ 开发规范

优质博文&#xff1a;IT-BLOG-CN 一、代码规范 【1】消费者必须以Consumer结尾&#xff0c;生产者必须以Producer结尾。 【2】选择合适的消费模式&#xff1a;根据业务判断消费模式是集群模式还是广播模式&#xff0c;具体为&#xff1a;MessageConsumerProvider.addListene…

R的行和列命名和类型的转换

下面内容摘录自&#xff1a; 4章8节&#xff1a;用R做数据重塑&#xff0c;行列命名和数据类型转换-CSDN博客 欢迎订阅我们专栏 一、行和列命名 在数据科学和统计分析中&#xff0c;命名是组织和管理数据的一个重要部分。尤其是在处理复杂的多维数据集时&#xff0c;为行和列命…

FPGA知识基础之--FIFO ip核的使用以及实例化clocking wizard ip产生一个异步FIFO,附RTL和仿真代码

目录 一、FIFO简介1.定义2.特点3.分类4.FIFO在FPGA中的应用 二、实验任务三、FIFO IP核1.接口2.写时序3.读时序1.Standara2 .FWFT 四、vivado设置五、程序设计1.模块2.时序3.异步信号传输4.RTL代码 五、仿真1.Testbench代码2.波形 一、FIFO简介 1.定义 FIFO是一种先进先出的数…

电能表在企业能源管理中的作用

电能表在企业能源管理中扮演着至关重要的角色&#xff0c;它不仅是能源计量的基础工具&#xff0c;更是企业实现高效能源管理、降低能源成本、提高竞争力的关键所在。 一、精确计量与实时监测 电能表作为能源计量的基础工具&#xff0c;其首要作用是实现电能的精确计量。相比…

PostgreSQL 练习 ---- psql 新增连接参数

目标 添加一个连接参数&#xff0c;默认为 false 。当 psql 连接时&#xff0c;若该连接参数非 “true” 时&#xff0c;用户 “u1“ 对表对象无操作权限&#xff0c;包括自己拥有的表。 连接机制简介 连接过程如下所述&#xff1a; 客户端初始化一个空连接&#xff0c;设置…

如何高效记录并整理编程学习笔记?

一&#xff1a;简介 在编程学习的过程中&#xff0c;建立一个高效的笔记记录和整理方法确实非常重要。下面是一些方法和建议&#xff0c;帮助你打造自己的编程学习“知识宝库”。 1&#xff09;. 选择合适的工具 选择一个适合自己的笔记工具非常重要。可以考虑以下几种&#…

SB3045LFCT-ASEMI无人机专用SB3045LFCT

编辑&#xff1a;ll SB3045LFCT-ASEMI无人机专用SB3045LFCT 型号&#xff1a;SB3045LFCT 品牌&#xff1a;ASEMI 封装&#xff1a;TO-220F 批号&#xff1a;最新 最大平均正向电流&#xff08;IF&#xff09;&#xff1a;30A 最大循环峰值反向电压&#xff08;VRRM&…

大模型系列8-Latex

大模型系列8-Latex 背景Latex符号符号加帽子、横线和波浪线求和连乘希腊字母等于约等于积分微分公式对齐算法矩阵 背景 目前正通过论文、博客、视频、文档等各种形式学习各种大模型知识。为了更好的记录&#xff0c;写了一些大模型的博客&#xff0c;不专业&#xff0c;只备忘…

Openlayers6 图形绘制和修改功能(结合React)

Openlayers常用的API了解的差不多了&#xff0c;就开始进入实战了&#xff0c;首先从绘制基本的图形开始&#xff0c;这里主要介绍一下绘制圆形、矩形和多边形。 通过使用openlayers的ol.interaction.Draw和ol.interaction.Modify模块实现地图上绘制圆形、矩形、多边形并修改编…

2024.8.12(LVS)

一、LVS 1、描述以及工作原理 1. 什么是LVS linux virtural server的简称,也就是linxu虚拟机服务器,这是一个由章文嵩博士发起的开源项目,官网是http://www.linuxvirtualserver.org,现在lvs已经是linux内核标准的一部分,使用lvs可以达到的技术目标是:通过linux达到负载均衡技…

mysql注入-字符编码技巧

一、环境搭建 创建数据表 CREATE TABLE mysql_Bian_Man (id int(10) unsigned NOT NULL AUTO_INCREMENT,username varchar(255) COLLATE latin1_general_ci NOT NULL,password varchar(255) COLLATE latin1_general_ci NOT NULL,PRIMARY KEY (id) ) ENGINEMyISAM AUTO_INCREME…