- 博客(40)
- 收藏
- 关注
原创 Agent中的memory
众所周知,大模型是无状态的。但是基于大模型的agent一般是有状态的,也就是它有记忆功能。在AI Agent框架中,Memory机制是核心组件之一,它赋予Agent持续学习和上下文感知的能力,使其能够像人类一样基于历史交互进行决策。类似人脑一样,memory机制是agent智能化的基石。当前,memory机制也有一些挑战,比如记忆泄露(未清理的旧数据可能导致存储膨胀(需设置TTL))、隐私合规(GDPR要求用户数据可删除)等。参考文档。
2025-08-16 19:43:11
914
原创 AI应用安全 - Prompt注入攻击
随着大模型的爆火,各行各业都在使用大模型进行智能化改造。但是如何做一个可靠的大模型应用,就需要考虑各种安全问题。本文主要介绍一种常见的安全问题,即prompt注入攻击,并介绍一些防范手段。Prompt Injection Attack(提示注入攻击)是针对大型语言模型(LLM)的一种新兴安全威胁,攻击者通过精心构造的输入提示(prompt)来操纵模型行为,使其产生非预期输出或执行恶意操作。它主要包括两种注入方式,一是直接注入,而是间接注入。
2025-08-16 17:13:44
954
原创 Transformer浅说
近两年大模型爆火,大模型的背后是transformer架构,transformer成为家喻户晓的词,人人都知道它,但是想要详细讲清楚,需要专业的算法人员来讲解,网上也有很多资料,我就不班门弄斧了。作为一个经常使用大模型的人,也需要一点知识,来认识它,这样才能更好的使用它。Transformer 是一种基于自注意力机制(Self-Attention)的深度学习架构,由Google团队在2017年的论文《Attention Is All You Need》中提出。
2025-08-16 14:35:44
572
原创 浏览器mcp工具browser-use
大模型仍在以前所未有的速度进行发展,大模型的应用也在迅速发展,目前大模型使用mcp工具越来越多,比较特殊的一种是让大模型操作浏览器的mcp,因为目前人们接触互联网大多通过浏览器的方式,下面我们来介绍一下browser-use。browser-use 是一个开源的 Python 库,旨在让大型语言模型(LLM)直接控制真实浏览器,实现网页自动化任务。
2025-07-26 09:41:26
612
原创 大模型推理框架介绍
最近大模型很火,但是能够训练大模型的,一般是头部大厂。相较于大模型训练而言,大模型推理则很多公司都在做,能够很好地进行大模型推理,在成本优化、性能提升、硬件适配、吞吐提高等多个方面很有意义。本文简要介绍两种推理框架Hugging Face Transformers和vllm,并对其简单对比。两种推理框架面向的侧重点不同,部署一般使用vllm,而开发调试使用hugging face较为方便。参考文档。
2025-07-14 08:59:13
620
原创 大模型微调
大模型持续火热,对社会的改造也正在持续不断地发生,通过大模型的微调,将其应用到不同的领域,也正在逐步推进。不管你是不是做大模型微调的,我觉得都需要了解一些大模型微调相关的知识,以下从三个方面进行介绍,分别是微调数据、微调工具和微调方式。大模型微调是一项技术性强但也极具性价比的任务。要把微调做好,不仅仅是“跑通训练脚本”,更需要设计良好的目标、数据、策略和评估机制。
2025-07-06 20:06:30
794
原创 Workflow vs Agent
大模型应用有两种范式,workflow和agent,最近大模型agent爆火,似乎大模型应用不谈agent都不好意思,但是实际落地并不如此,agent因为不可控,结果不可预知等缺点,并没有广泛地应用于大模型应用中,本文介绍workflow和agent的优缺点,并重点推荐这两种混合模式应用于生产中。工作流架构(Workflow)是指通过预定义的步骤序列将大模型(LLM)与外部工具串联起来,形成“流水线”式的任务处理流程。
2025-06-17 19:52:23
632
原创 Deep Research实践
上文介绍了Deep Research,它在实际应用中具有很大的价值,而且说明它需要agent。其实,因为agent在操作中具有很大的不稳定性,很多情况使用workflow来处理deep research。本文介绍一种基于langgraph来实现deep research的方案,参考文章。整体架构图如下,首先看report structure generator这个模块,它其实和chatgpt的深度研究类似,用户提出问题后,首先和用户进行交互,希望用户提出更具体的建议,缩短研究范围。
2025-06-08 20:40:18
823
原创 Deep Research
随着大模型能力的提升,大模型应用RAG越来越广泛地用于智能问答之中,但是,人们已经不满足传统的RAG问答,对其提出了越来越高的要求,比如针对一个复杂的问题,人们希望得到的答案,不仅仅是一个简短的片段或单一来源的摘要,而是一个经过深入论证、全面研究、兼顾多角度的回应。这就是Deep Research。Deep Research 不只是回答单个问题,而是面向“一个主题”或“一个复杂课题”做端到端的调研。
2025-06-06 07:58:33
711
原创 使用autoGen处理多agent
当下你说什么最火,肯定是ai agent了。目前正在从单agent系统发展到多agent系统,单agent更适合做具体的事情,有点类似于医院的分诊台,每个科室是一个agent,分诊台将需求分给更专业的单agent。AutoGen 是微软开发的一个开源框架,用于简化多智能体(Multi-Agent)系统的创建和管理。它允许开发者构建能够相互协作、自主决策的智能体(Agent)系统,这些智能体可以处理复杂任务、进行对话、执行代码等。主要特点多智能体协作:支持多个智能体协同工作,每个智能体可以扮演不同角色。
2025-06-02 18:24:59
867
原创 Postgres mcp server
传统 RAG(Retrieval-Augmented Generation),通过对文本切片向量化,然后召回相似的文本块,来增强大模型的知识。最近MCP爆火,MCP + database作为一种新型的检索增强,也越来越受到人们的关注,今天介绍一种常用的postgres mcp server,说明大模型通过mcp检索的过程。在github上面有大量的mcp server,可以进行下载,postgres mcp server地址参考。
2025-05-18 16:22:26
1274
原创 大模型微调SFT VS RLHF
随着deepseek等开源大模型模型的爆火,中小型互联网公司又燃起了微调大模型的热潮。在开源模型的基础上,加入自己个性化的数据进行微调,能够在各自的大模型场景下,获得更佳的大模型效果。以下主要对比下大模型微调中的SFT和RLHF。SFT(Supervised Fine-Tuning,监督微调),它是在预训练模型基础上,通过人工标注的高质量指令-响应(Instruction-Response)对进行有监督学习,让模型更好地理解任务指令并产生符合预期的输出。Prompt : 解释什么是黑洞?
2025-05-13 08:42:12
666
原创 Agent2Agent
谷歌于2025年4月推出了A2A(Agent2Agent)协议,旨在解决当前AI智能体生态中的互操作性瓶颈。随着企业越来越多地部署专用智能体来自动化日常任务,不同厂商和平台之间缺乏统一的通信标准,使跨系统协作变得复杂且成本高昂。A2A作为一个开放协议,由50多家技术合作伙伴(如Atlassian、Salesforce、SAP、PayPal等)支持和贡献,将使不同框架或供应商构建的智能体能够相互通信、安全交换信息并协调任务。
2025-04-26 17:16:09
606
原创 Agent中的MCP
大模型时代,agent爆火,据说2025年是agent元年,agent要处理的问题就是代理人来和外部世界交互,怎么高效的交互是agent的重大课题。常见的方式是function call,每个人需要定义自己的function,然后进行调用,但是问题来了,每个人都要实现自己的function,具有大量的重复工作,MCP就是为了解决这个问题而生的。
2025-03-29 13:03:38
1069
原创 Openwebui提效小工具
大模型时代,人人都在使用大模型进行提效,对程序员而言,尤其如此,不提高自己的开发效率,就会有被取代失业的危险。本文介绍基于openwebui如何进行开发提效,解放自己繁琐的开发任务。Open WebUI 是一个功能强大、可扩展的开源 Web 界面,专为本地和云端的大型语言模型(LLM)设计,提供类似 ChatGPT 的用户体验。直观的用户界面仿照 ChatGPT 设计,提供流畅的交互体验。响应式设计,适配桌面和移动设备。
2025-03-26 20:01:39
715
原创 openai agent实践
2025开年以来,随着deepseek的爆火,大模型以及应用正在快速的迭代。随着一款大模型agent,即manus,横空出世,openai也紧接着发布了openai agent,下面主要简要介绍下这个agent。OpenAI Agent SDK 是一个由 OpenAI 发布的框架,旨在帮助开发者构建多代理 AI 应用。它提供代理(Agents)、交接(Handoffs)和防护栏(Guardrails)等基本组件,支持创建复杂的多代理工作流,如客户支持系统或任务路由系统。
2025-03-22 22:13:34
684
原创 使用langgraph构建agent
LangGraph 是 LangChain 的一个分支或扩展,专注于构建和运行基于图的、有状态的、多参与者的工作流。它通过将复杂的任务分解为多个节点(步骤),并通过边(依赖关系)连接这些节点,来实现更灵活和强大的任务编排。目前大模型agent特别火,agent框架也特别多,比如langchain、openai agent、autoGen等等,从这些不同的框架中,可以学习它们的构建思路,来完善自己的agent。参考。
2025-03-21 07:30:59
839
原创 Auto-RAG介绍
Auto-RAG(Autonomous Retrieval-Augmented Generation)是一种基于大型语言模型(LLMs)的自主检索增强生成技术,旨在解决传统检索增强生成(RAG)系统在处理复杂查询和噪声问题时的性能瓶颈。通过自动化迭代检索和利用LLMs的推理能力,Auto-RAG显著提升了生成内容的准确性、可解释性和用户体验。Auto-RAG本质上是一种ReAct范式,LLM决策是否进行下一轮召回,以及下一轮检索的问题。召回可以理解为工具调用,而下一轮检索的问题可以理解为工具调用的入参。
2025-03-09 12:09:52
1027
原创 Langchain agent窥探
在大模型时代,大模型agent是一个很火的概念,它是一种基于大语言模型(如 GPT、LLaMA 等)构建的智能代理系统,能够通过自然语言理解和生成能力,结合工具(Tools)或外部知识,完成复杂的任务。比如前两天爆火的manus,就是一种agent。本文基于langchain构建一款简单的agent,窥探其执行过程。import os@tool想要执行什么任务,需要根据问题,构建一个prompt,利于大模型正确回答,在这个例子中,任务很简单,就是让agent根据问题调用函数计算1+1的值。AI: 2。
2025-03-08 14:44:46
340
原创 使用langchain简单实现RAG
在 RAG(Retrieval-Augmented Generation)项目中,LangChain 提供了许多优势,使得集成 LLM(大语言模型)和RAG变得更加高效和灵活。以下是使用 LangChain 做 RAG 项目的主要好处:1、 模块化设计,易于集成2、 内置向量数据库支持3、 多种 RAG 方案,支持Stuff、Map-Reduce、Refine 模式4、 支持Prompt 设计与优化5、 可扩展性强,可集成外部 API、工具增强 LLM 能力。
2025-03-02 18:30:46
593
原创 一种简单的ReAct agent演示
自从ReAct论文发布以后,ReAct范式agent就受到了大家广泛的关注,它被证实可以用来提高大模型的推理能力。本文以ReAct范式为基础,没有使用任何框架,简单实现演示了ReAct的过程。ReAct它是一种基于prompt的范式,下面展示了几种prompt的差别,它们分别是(a)标准(b)思考链(c)只有Act(d)ReAct。
2025-02-27 17:55:07
1998
2
原创 ReACT agent和FC agent
大模型时代llm正在改变我们的生活,它可以帮助人类写作,写代码,翻译等等,但是llm的知识在训练时被冻结,无法直接使用api接入外部数据,这就需要llm agent。下面简要介绍两种agent,分别是ReACT agent和Function Call agent。ReAct Agent结合了推理(Reasoning)和行动(Acting),使智能体能够在执行任务时进行动态推理和决策。这种方法通过提示模板引导模型进行推理和行动,具有较高的通用性和灵活性。ReACT 过程是迭代的。
2025-02-23 19:39:37
962
原创 llm agent介绍
在大模型领域,Agent智能体越来越火,它构建在大型语言模型(LLM)之上,具备环境感知、自主理解、决策制定和执行行动的能力。在RAG领域,agent首先解析客户指令,然后分解成子任务,并按照执行计划一步一步完成客户任务。机器人使用agent来处理各种复杂的任务,llm推理模型使用agent来增强推理效果,rag领域使用agent来回答各种场景的问题,总之,agent具有广泛的应用。参考。
2025-02-21 15:56:15
600
原创 一种特殊的rag案例faq
rag应用已经有成熟的操作范式,针对具体场景又有一些细微的变化。以电商业务中的问答场景为例,客户积累了大量的问答数据,即faq问答对,这些数据是结构化的,需要再加工处理的步骤不多,非常有利于做rag应用。以下以这种特殊场景为例,简要介绍rag处理步骤。已经存在大量faq问答对的场景,将数据过滤索引后,很容易接入rag系统,进行问答改造。此外,这类问答场景中,客户问题一般也具有某种共性,可以提取一些规则,基于规则匹配faq问答对,提高召回数据准确性。
2025-02-16 16:06:15
537
原创 prompt数据组装格式对llm影响
随着大模型能力的进步,prompt的重要性在不断下降,但是为提高模型输出的稳定性等,prompt优化仍然有必要。人们可以通过加入上下文,引入思考链,或者加入few shot等手段,优化prompt。今天主要讲prompt中文本内容的格式对prompt的影响。模型不同,使用场景不同,prompt中数据组装格式对大模型输出会有不同的影响,建议切换不同的格式进行批量测试,然后再选出最佳的组装格式,使得大模型输出不敏感。
2025-02-16 11:12:17
874
原创 搜索增强生成SAG
Search-Augmented Generation,即搜索增强生成,它强调通过实时搜索增强生成过程,但与 RAG 不同,SAG 可能会依赖实时的搜索引擎(如Google或专用的API)来获取信息,而不仅仅是依赖预先索引的数据。SAG 的检索阶段可能会更灵活,直接使用搜索引擎的结果。SAG是一种特殊的RAG,RAG 适用于基于预先索引的资料进行回答,能够根据内部的索引数据快速响应,但对实时信息更新较为滞后。SAG 更加灵活,能够从实时的搜索引擎中获取最新的资料进行回答,更适用于需要实时信息的场景。
2025-02-11 14:37:36
966
原创 Deepseek论文浅析
Deepseek最近很火,它开源了代码和论文,今天主要介绍下它的论文。它主要发布了2个大模型,并介绍了将优秀大模型蒸馏到小模型的方法。该论文详细介绍了deepseek的两款模型,并介绍了蒸馏对提升小模型性能的影响。此外,还有一些建议,比如DeepSeek-R1对prompt很敏感。在prompt中加入few-shot会降低其性能,建议用户直接描述问题并使用零样本设置指定输出格式以获得最佳结果。这点还是有点不一样的,一般在rag应用中,使用few-shot提升大模型的性能还是比较常见的。
2025-02-05 19:48:22
886
原创 Rag中选择合适的embedding
Embedding在rag召回文本中,占有重要的作用,准确的召回能够避免llm的幻觉。一般项目中使用bge-m3或openai向量模型作为rag的选型。其实,还有其他一些embedding模型可供选择,下面我们来探究一下,并讨论下,如何选择一个适合自己场景的embedding模型。Embedding数据是在文档上传时生成,对embedding性能要求并不高,它不影响到问答时间的快慢。
2025-01-18 12:42:49
2173
原创 文件锁浅谈
笔者近日在生产环境遇到文件锁故障java.io.IOExceptionnolocksavailable,造成上线延期,在此谈谈文件锁,以及它的应用。在程序开发中,比较常见遇到的是进程内锁,就Java后端而言,尝尝使用悲观锁和乐观锁来处理,如synchronized关键字等。如果是进程之间使用锁,就可以考虑文件锁,比如在同一个节点上,部署两个实例,这两个实例需要通过锁来进行同步。如果是多节点的进程之间需要同步,也可以考虑文件锁,只不过文件锁需要在共享文件系统上,比如nfs文件系统。
2025-01-18 08:29:11
949
原创 Rag中的精排reranker
在rag应用中,随着文档数量的增加,召回准确率会下降,主要原因是文档数量增加,会导致切分后的chunk区分度下降,不管是稀疏检索还是稠密检索,chunk和query的相似度分数难以区分开。为了解决以上问题,一般会引入reranker,初步召回时先召回比较多的chunk,比如top 20或top 50,然后再对其进行精排,即reranker。以下是网易rag应用QAnything中的数据,当chunk数据超过60万之后,一阶段召回的准确率就会明显下降,使用reranker才能继续提高召回准确率。
2025-01-14 21:23:29
1734
原创 Rag中如何优化大模型响应延迟
在rag流程中,经常会遇到大模型输出慢的问题,比较影响用户体验。在大模型应用中,如何优化大模型输出性能,减少延迟呢,一般有如下准则。以上是几种优化rag流程大模型输出延迟的方案,这些方案的使用成本不同,可以针对具体情况进行使用。参考。
2025-01-05 18:28:36
1997
原创 Chunk位置对rag问答结果的影响
随着大模型的快速发展,大模型支持的输入长度越来越长,从2k,到16k,再到32k,甚至128k等等。在rag项目中,输入大模型的长度越大,意味着可以召回更多的文档。但是,人们发现,召回更多的文档,并不能显著提高大模型回答的准确度。一个简单的原因是噪音太大。输入长度越大,不意味大模型从噪音中找到答案的能力更大。如何解决这个问题呢?大模型是个黑盒子,但是通过实验发现,在输入大模型时,对召回topK的文档进行顺序调整,可以提高大模型回答的能力。
2025-01-03 08:45:20
299
原创 Rag中的文档切片chunking
在rag整个流程中,文档的切片很重要。它的目的是为了使query更好地匹配chunk,也就是提高召回率。为了实现这个目的,需要考虑两个方面,一是chunk的长度,如果chunk太长,query就不容易匹配到chunk。二是chunk最好是语义相关的内容,也就是chunk里面噪声要小点。第一点,请参考我其他文档,不再赘述。今天主要是将给定chunk size的情况下,如何更好地切片,保证chunk语义的完整性,使其更好地匹配query。
2024-12-31 22:09:44
1573
原创 Rag中chunk大小影响
在rag流程中,首先需要上传一些文档,对文档进行解析,解析后的文档一般需要切片,切分为长度大小相当的chunk。为什么需要切片呢,因为文档的大小各异,不做切片的话,文档之前的长度相差太大,对检索召回来说,不是一个很好的事情。Rag中的检索一般包括稀疏检索,还有稠密检索,稀疏检索一般指通过关键词检索,稠密检索一般指通过向量检索召回。这两种对chunk大小的要求不完全一样,本文主要针对向量检索。以上是基于向量召回的chunk size讨论,建议大家选择256~512测试。
2024-12-28 15:15:25
1231
原创 Rag中的问题改写query rewriting
在rag的整个流程中,一般第一步就是对问题query进行改写,为什么需要改写呢,主要是用户在提问的时候,想要得到的答案和问题不匹配,为了得到想要的答案,不同的用户可能问的方式千变万化,这就需要对query进行改写,来提高rag系统的鲁棒性和扩展性。用户的query存在的问题,主要有两个方面,一是信息缺失,用户表达的不全面;一是噪声,用户query里面携带了很多不相关的东西。改写后query的质量,很依赖于prompt和大模型的能力。
2024-12-27 21:19:35
2408
原创 领域驱动设计入门
后端开发中,一般含有两种代码方式,一种是过程驱动的代码范式,一种是领域模型驱动的代码方式。一般的后端项目,使用前者,其较为适合简单、业务规则不复杂的项目。而后者更适合业务复杂、规则多变、需要长期迭代的系统。前者大家都很熟悉,开发前期,一般以数据库设计为核心,代码结构围绕数据库展开,进行分层设计。近年来,后者越来越重要,本文通过简单案例来介绍领域驱动设计,简称DDD。
2024-12-23 21:25:14
578
原创 大模型prompt浅谈
在大模型时代,写prompt是经常会遇到的事情,一个好的prompt,可以将大模型的能力最大化。一个完善的prompt,一般含有7个部分,分别是引导语,上下文信息,任务描述,输出格式指示,限制条件,样例输出和结束语。1、 随着大模型快速迭代,大模型能力越来越强,prompt的重要性在下降,在大模型能力和prompt能力之间,优先选择大模型能力。2、 不同的大模型,其最优prompt有差异,建议储备评测集并搭建小型评测平台,这样切换大模型时,可以快速验证prompt和大模型的匹配程度。
2024-12-20 07:52:49
736
原创 rag稀疏检索召回bm实践
在rag项目中, BM25 是常用的文本稀疏检索模型,它基于词频信息,计算查询和文档之间的相似性,以下介绍bm25算法的相关实践。相比于TF-IDF,bm25能够更好地处理词频的饱和效应和文档长度的影响,特别是在大规模文档集合和实际应用中,因此被广泛应用于信息检索系统中,常见的检索组件solr和elasticsearch均基于bm25算法。
2024-12-17 08:03:14
1021
原创 RAG流式问答接口技术方案选型
随着大模型的爆火,使用RAG来替代传统的问答项目,越来越常见,如kimi和TXYZ等等,这些问答输出均使用流式输出,避免了客户长时间等待。那么页面上流式输出答案是什么技术来实现的呢?一般来说,常见的技术方案有SSE和websocket。以其较为轻便,开发不复杂的优势,SSE技术成为大多数问答项目流式输出的技术方案,个别客户有使用websocket技术,主要涉及较为复杂的双向交互,比如语音视频输入等等。
2024-12-14 12:52:05
461
原创 TiDB底层存储LevelDB介绍
本文从LevelDB的架构出发,简要剖析了LevelDB的组成和读写机制。LevelDB是典型的基于LSM-Tree(log structured merge tree)的系统,其源码行数不多,但是它小而精,功能强悍,很多组件把它作为底层的文件存储系统,如RocksDB。LevelDB作为一款用于写多读少场景的K-V存储系统,其优秀的系统设计,值得我们学习。
2024-12-11 08:36:46
721
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人