AI答非所问?你的知识库为什么不好用?4500字长文带你读懂rag发展史

学习 

文章摘要:本文简要介绍了RAG(检索增强生成)的发展历程,从最初的Naive RAG到Advanced RAG、Modular RAG、Graph RAG,再到终极形态的Agentic RAG。文章详细描述了各种RAG系统的特点、局限性和应用场景,并探讨了文档处理在RAG系统中的重要性和相关开源项目的应用。最后,文章提出了AI自主决策在RAG发展中的重要性,并指出知识库的质量和适应性对RAG系统效果的影响。 关键词:RAG、科技前沿、AI答非所问、知识库、发展历程 一、引言 近年来,随着人工智能技术的飞速发展,大型语言模型(LLM)在文本生成和自然语言理解方面取得了显著成果。然而,模型对静态训练数据的依赖限制了其响应动态实时查询的能力,导致输出过时或不准确。为解决这一问题,检索增强生成(RAG)成为一种解决方案,它通过集成实时数据检索来增强LLM,以提供与上下文相关的最新响应。 二、RAG的基础组件 RAG的主要核心组件包括从用户的输入到检索、对检索到的信息的加工处理,再到大模型的生成,最后把生成结果返回给用户。像deepseek等app应用的联网搜索功能其实就是RAG的一种应用。 三、RAG的发展历程 1. Naive RAG:基础但差点意思 Naive RAG系统依赖于简单的基于关键字的检索技术从静态数据集中获取文档。然后,检索到的文档用于增强语言模型的生成功能。虽然存在上下文复杂性最小、易于实施等优点,但其缺乏上下文感知、碎片化输出以及可扩展性问题限制了其应用场景。 2. Advanced RAG:突破性的技术革新 Advanced RAG引入了密集向量搜索、上下文重新排序和迭代检索等技术突破,使答案更精准,适用于科研分析、个性化推荐等应用。然而,计算开销和可扩展性受限等挑战仍然存在。 3. Modular RAG:灵活组装与定制化 Modular RAG把RAG拆成可替换的模块,按需定制,打破了“一刀切”的局面,成为企业落地RAG的主流选择。通过混合检索策略、工具集成和可组合管道等技术创新,Modular RAG适应了特定用例的需求。 4. Graph RAG:关系大师的出现 Graph RAG是一种基于图的检索增强生成方法,通过集成基于图的数据结构扩展了传统的检索增强生成系统。利用图形数据中的关系和层次结构来增强多跳推理和上下文丰富,Graph RAG可实现更丰富、更准确的生成输出。然而,其有限的可扩展性和数据依赖性等局限性仍需解决。 5. Agentic RAG:RAG的终极形态 Agentic RAG是RAG发展的最新形态,涉及AI自主决策。通过引入AI技术,Agentic RAG能够自主处理复杂的任务和决策过程,实现了RAG系统的智能化和自主性。然而,知识库的质量和适应性对Agentic RAG的效果具有重要影响。 四、文档处理在RAG系统中的重要性和相关开源项目的应用 在RAG系统中,文档处理是一个核心模块,其好坏会很大程度影响后续的检索结果和回答生成效果。为应对模型输入token的限制和避免拆分不当,常规的rag系统会对文档进行分片处理。以GraphRag为代表的图rag通过从文档中提取丰富的关系和层次结构,能够轻松处理需要多步推理的复杂任务。 五、结论 随着RAG技术的不断发展,其应用场景和效果不断提升。从Naive RAG到Agentic RAG,RAG系统不断突破技术瓶颈,实现了更高的精准度和自主性。然而,知识库的质量和适应性仍是影响RAG系统效果的重要因素。未来,随着技术的不断进步,RAG系统将更加智能化、自主化,为人工智能的发展带来更多可能性。

为什么不推荐在 Django 的orm查询中使用 .first()查询唯一记录

学习 

Django是一个流行的Python框架,其ORM(对象关系映射)简化了数据库交互。对于查询唯一记录,推荐使用.get()而不是.first(),因为.first()会引入不必要的排序操作,可能影响性能。然而,如果查询字段有索引,排序的性能开销通常可以忽略。Django的ORM允许开发者使用Python代码操作数据库,无需编写复杂的SQL语句。在设置中开启ORM查询的SQL日志,可以方便地查看生成的SQL语句。总体而言,Django的ORM提供了便捷的数据操作方式。

基于Reflex开发一个图片风格转换demo(1)

学习 

本文介绍了基于Python的Web开发框架Reflex的介绍和使用过程。首先强调了其对纯Python的开发模式的特点,适用于熟悉Python但对前端开发不太熟悉的人员。介绍了安装过程、初始化项目步骤、运行过程等。文章还提到了使用Reflex开发一个图片风格转换demo的过程,并指出了一些可能遇到的问题和解决方案。最后,文章鼓励读者关注作者公众号以获取更多内容。

阅读anthropic building-effective-agents 文章有感而发

学习 

本文作者阅读了anthropic的关于构建有效agent的文章后有所感悟,分享了自己在智能创作领域的体验与心得。作者详细阐述了工作流和agent的构建流程,强调预定义代码路径编排和工具的清晰定义对工作流程的重要性。作者同时探讨了如何让模型更准确地使用工具的方法,包括对工具的定义进行改进,并通过示例进行验证迭代。最后,作者提到模型返回结果的格式化控制问题,并对智能创作的未来发展提出展望。

还能这样?命令行输入错误,骂它就能解决?

学习 

这篇文章介绍了一款开源的命令行工具——the小可爱。它能够在用户在终端输入错误的命令时自动进行修正。安装方法简单,可根据不同操作系统选择相应的安装命令。设置时,用户可将特定命令添加到启动文件中以便每次打开终端时都能使用。使用上,只需输入特定词(默认是“小可爱”),它就会尝试修正错误命令。该工具自带160多种规则,也可自定义规则。更新和卸载也很方便。

从“代码恐惧”到“得心应手”:命令行错误不再难

学习 

命令行工具wut通过基于大语言模型(LLM)的技术解析终端输出内容,为用户提供清晰易懂的解释。它可以理解堆栈跟踪、解析错误代码、修正命令并提供日志信息总结。安装简单,并支持多种LLM提供商模型。使用时需在tmux或screen会话中运行,可直接获取命令解释或附带查询语句。该工具帮助从“代码恐惧”到“得心应手”,使命令行错误不再难解。

你这个django正不正宗,怎么看起来像flask?

学习 

小琪和小胖尝试使用新的工具nanodjango来简化Django应用开发。nanodjango允许在一个文件中完成整个Django应用,包括模型、视图和管理后台。他们展示了如何使用nanodjango快速构建计数器应用,并介绍了其支持API、异步视图和管理后台的特性。他们还讨论了如何将nanodjango集成到日常工作中,并展示了其潜力。文章关键词包括python、Django、开源等。

fast-graphrag 探索(4)- 我把模型服务干崩了!

学习 

文章摘要:本文主要描述了小胖在使用fast-graphrag模型处理研报数据的过程中所遇到的问题及解决方法。文章首先介绍了小胖按照官方example指导调整模型参数并编写代码以处理研报数据,但在运行后发现生成的数据文件出乎意料地小,并且只有最后一篇研报的数据。经过仔细检查代码,小胖发现是因为n_checkpoints参数设置不当导致的。调整代码后,他尝试将整批数据一次性插入,简化了代码逻辑。但随后又遇到并发量过高导致模型中转服务挂掉的问题。通过查看日志和定位问题,小胖使用asyncio.Semaphore限制了并发数,最终成功解决了所有问题。文章还涉及了python、fast-graphrag探索、AI、rag和开源等关键词。

大升级!LLM应用监控、测试、优化一步到位!

学习 

本文介绍了使用langfuse工具在开发基于检索增强生成(RAG)模型应用时的监控追踪方法。文章详细描述了langfuse的功能,包括LLM可观测性、提示管理、LLM评估、数据集管理等。文章还介绍了langfuse最近的v3.0.0大版本升级,包括新引入的Async Worker、Redis、Clickhouse和S3 / Blob Storage等技术,并解释了选择这些技术的理由。此外,文章还展示了如何使用langfuse进行trace、提示词管理,并总结了langfuse在LLM应用开发生态系统中的作用。最后,文章呼吁读者关注公众号并分享使用langfuse的经验和想法。

腾讯云智能结构化OCR实战:从图片到结构化数据的高效转换

学习 

本文介绍了作者使用腾讯云智能结构化OCR服务的实战体验。文章首先描述了作者的需求背景,即汇总多个理财子公众号发布的理财产品的数据。由于遇到一些识别不准确和费用较高的问题,作者尝试使用腾讯云的智能结构化OCR服务,并详细介绍了其特点和优势。文章还包含了价格的讨论、SDK的安装、代码示例、验证和web部署等部分。整体上,文章展示了如何使用腾讯云智能结构化识别进行OCR识别,并提供了结构化数据的处理。摘要: 本文详细描述了作者使用腾讯云智能结构化OCR服务进行理财产品的数据汇总的实战体验。文章突出了腾讯云智能结构化OCR服务的高效转换能力,将图片数据转化为结构化数据。文章涵盖了需求背景、服务特点、代码示例、验证和web部署等内容。为读者提供了一个从图片到结构化数据的高效转换的实践指南。