- 博客(448)
- 资源 (6)
- 收藏
- 关注
原创 构建高效智能体系统:从简单到复杂,找到最适合你的解决方案
在实际业务场景中构建智能体,最成功的实现往往不是使用复杂的框架或专用库,而是通过简单、可组合的模式来实现的。本文总结了我们在客户合作和自身开发过程中获得的经验,并为开发者提供实用的建议,帮助他们构建有效的智能体系统。
2025-06-21 09:58:13
425
原创 Vibe Coding 很爽?小心你的代码变成‘技术债’!
想象一下,像写作文一样来写软件,这可能吗?这会是一种什么样的体验?这就是最近讨论的一种新的编码方式,称之为“vibe coding”。你完全沉浸于氛围,拥抱指数级增长的产出,甚至忘记代码的存在。
2025-06-15 10:16:08
751
原创 Cursor如何快速索引代码库
在很多代码助手软件中,代码库索引的构建的流程其实都大体相似。有些在客户端完成代码索引的构建,有些通过离线任务在后端服务中完成(用户体验会好一些)。和文本索引库(RAG知识库)的构建不同,代码索引库的构建要复杂很多,不仅要对文本进行切割,还需要考虑代码结构中不同元素的代码结构,同时还需要考虑各个元素之间的关系。另外,由于嵌入模型对token的限制,切割后的代码片段不能大于这个最大的限制。所以,既要考虑代码的语法完整性和代码之间的关系,还要考虑代码片段不能太长。
2025-06-15 09:42:58
633
原创 Cursor实现原理初探总结
Cursor是最受欢迎的AI代码编辑器之一。最近newsletter.pragmaticengineer.com上发表了一篇和Cursor工程访谈的记录文章。该文章访谈了Cursor的开发者,并询问了很多Cursor的具体实现原理。这里对这篇文章的核心内容进行了总结。
2025-06-14 06:48:15
983
原创 Langgraph实战-自省式RAG: Self-RAG
传统 LLM 仅依赖内部参数化知识生成回答,容易产生事实性错误(hallucination)。即使结合检索增强生成(RAG),也存在两个问题:(1)盲目检索:无论是否需要检索,都固定检索一定数量的文档,可能引入无关信息。(2)机械整合:直接拼接检索到的内容,可能降低生成结果的流畅性或实用性。现有 RAG 也存在很多的不足,例如:无法动态判断何时需要检索、检索内容是否相关,导致生成质量不稳定。
2025-06-08 20:14:02
1058
原创 Langgraph实战--自定义embeding
在Langgraph中我想使用第三方的embeding接口来实现文本的embeding。但目前langchain只提供了两个类,一个是AzureOpenAIEmbeddings,一个是:OpenAIEmbeddings。通过ChatOpenAI无法使用第三方的接口,例如:硅基流平台的接口。只能自己封装一个类,继承Embeding接口,从而实现整合第三方平台Embending API的能力。
2025-06-07 21:23:43
367
原创 Langgraph实战--在Agent中加入人工反馈
通过对AI输出中加入人类的反馈已经,能够让AI更好的输出符合预期的内容。同时,通过人工的审核,可以更好的保证输出内容的安全性和准确性。
2025-06-06 19:38:34
284
原创 大吞吐量的推理引擎:Tokasaurus
Tokasaurus一款针对吞吐量密集型工作负载进行了优化的全新 LLM 推断引擎。对于小型模型,Tokasaurus 可利用极低的 CPU 开销和动态 Hydragen 分组来利用共享前缀。
2025-06-06 08:21:22
970
原创 Github Copilot新特性:Copilot Spaces-成为某个主题的专家
Copilot的Spaces功能提供了一个能够把各种材料集中起来的知识库。通过这些材料让copilot能够更加深入的理解代码,并能够更加准确和专业地回答用户提示出的各种问题。另外,Spaces能够保持和代码仓库实时同步,让Copilot能够及时获取到最新的知识。另外,Spaces分享的功能也让团队之间的知识分享更加简单。
2025-06-05 21:02:11
977
原创 LLM多平台统一调用系统-LiteLLM概述
在当今快速发展的AI领域,大语言模型(LLM)已成为技术创新的核心驱动力。然而,随着市场上涌现出越来越多的LLM提供商(如OpenAI、Anthropic、Google Gemini、AWS Bedrock等),开发者面临着一个日益复杂的问题:每个平台都有自己独特的API接口、认证方式和响应格式,这使得在不同模型间切换变得异常困难且维护成本高昂。LiteLLM应运而生——这是一个开源工具,旨在通过统一的OpenAI格式接口,简化对多种LLM服务的调用与管理。本文将全面介绍LiteLLM的核心功能、使用场景及
2025-05-25 20:12:24
541
原创 LLM基础-什么是大模型推理(LLM Inferencing)
和传统的机器学习模型类似,大模型也可以分为:模型训练和模型推理两个过程。模型训练就是给定的数据和算法训练出一个模型(一堆文件,包括:模型权重、配置等),然后就可以使用该模型来进行预测或分类等操作。模型推理(Model inference)是使用已训练的机器学习模型根据新的输入数据生成预测的过程。
2025-05-25 17:57:50
581
原创 Langgraph实战-多Agent-主副Agent协同
如果单个Agent需要专门从事多个领域的工作或管理许多工具,它可能会很吃力。为了解决这个问题,你可以将Agent分解成更小的、独立的Agent,并将它们组合成一个多Agent系统。在多Agent系统中,Agent之间需要相互通信。它们通过 “交接”(handoffs)进行通信。“交接 ”是一种描述将控制权交给哪个Agent以及向该Agent发送有效载荷的基本要素。
2025-05-21 07:30:17
425
原创 DoomArena:AI 智能体安全测试的新框架
在人工智能(AI)智能体(Agent)技术快速发展的今天,越来越多的企业和研究机构开始将AI智能体应用于自动化任务中,例如网页浏览、工具调用和客户服务等。然而,随着智能体的广泛应用,其安全性问题也日益凸显。恶意攻击者可能通过多种方式利用智能体的漏洞,例如数据泄露、权限提升和未经授权的金融交易等。为了应对这些挑战,ServiceNow Research和华盛顿大学的研究团队开发了**DoomArena**——一个模块化、可配置、即插即用的AI智能体安全测试框架。
2025-05-07 07:58:02
770
原创 dify实现分析-agent-Agent的类设计
本文分析了Dify的Agent设计框架。分析类Dify Agent相关的各个类的实现和关系。并对各个类的功能进行类分析。
2025-05-06 08:44:07
948
原创 MCP实战-本地MCP Server + Client实战
本文开发一个MCP的Client和Server。然后通过本地模式来运行,并获取到server的结果。
2025-04-27 17:33:01
196
翻译 适用于企业智能体的智能体网格(翻译)
这种新范式需要一个“智能体网格”,即一个平台,无论这些智能体、LLM 或工具部署在何处,都可以在所有智能体交互中实现安全性、可观察性、发现和治理。本文阐述了这一愿景,以及我们 Solo.io 如何准备提供此基础设施。
2025-04-27 08:46:49
39
原创 LLM基础-什么是Tokenizer
在自然语言处理(NLP)中,Tokenizer(分词器)是将文本转化为模型可处理单元(Token)的核心组件。它的拆分逻辑直接影响模型的性能、效率和泛化能力。本文介绍Tokenizer的文本拆分机制
2025-04-27 07:46:31
556
原创 MCP实战-本地MCP Server+Cursor实践
本文介绍了如何编写一个最简单的本地MCP Server,并通过Cursor来使用该MCP Server。
2025-04-24 19:09:42
539
原创 LLM基础-什么是嵌入(Embeddings)
在自然语言处理(NLP)领域,Token Embeddings(标记嵌入)扮演着至关重要的角色。它不仅是语言模型的基础,更是连接人类语言与机器理解的桥梁。本文将深入探讨 Token Embeddings 的原理、生成过程、应用场景,以及它在现代语言模型中的重要性。
2025-04-23 19:23:41
803
原创 Langgraph实战-Agent-使用ReAct进行情感分析
在这个例子中创建了一个情感分析 Agent,它使用 LLM(大型语言模型)来处理客户反馈,并集成自定义情感分析工具,将反馈分为正面、中性或负面。根据情感分析结果, Agent使用 ReAct(推理、行动、观察)框架生成适当的回应。 Agent对客户反馈进行推理,调用情感分析工具,并作出回应。
2025-04-23 08:35:20
491
原创 Langgraph实战-Agent-ReAct(Reason+Act)概述
ReAct 架构将推理与动作相结合,使Agent能够通过生成想法并基于这些想法执行动作。这种决策透明度使Agent能够更负责地执行任务,因为它会记录每一步的推理过程。
2025-04-22 07:32:30
1059
原创 LLM基础-什么是Token?
Token 是大语言模型(LLM, Large Language Model)中最基本的输入单元,它是语言被模型“理解”的方式。不同于人类可以直接看懂一段自然语言文本,LLM 只能处理数字,而这些数字就是由 token 转换而来的。
2025-04-20 13:27:18
485
原创 本地离线安装Ollama
官方提供了一个下载和执行的脚本,但是由于网络原因,该脚本实在太慢了,只能手动下载安装包。此时,虽然安装包已经下载了,但不要自己解压安装,否则会出现很多未知的错误。最好是用官方提供的脚本来安装。
2025-04-20 13:18:13
517
原创 LangGraph实战-在agent中使用短期记忆(Short-Term memory)
通过使用MemorySaver,我们可以在会话线程中存储对话的状态。在后台,LangGraph 每一步都会保存检查点(checkpoints)--对话状态的快照。这些检查点与模拟会话的线程 ID 相连。只要线程 ID(thread ID) 保持不变,Agent就能记住过去的交互。
2025-03-23 09:17:32
866
原创 FastGPT原理分析-数据集创建第二步:处理任务的执行
本文介绍了文件上传后的任务触发方式。可以看到,是通过监控mongodb数据表dataset_trainings的插入操作来触发数据处理任务。有两种数据处理方式:(1)QA问答方式数据处理;(2)嵌入向量处理方式。后面会介绍这两种方式的具体实现逻辑。
2025-03-23 09:06:01
528
原创 LangGraph实战-Graph构建的基本概念
顾名思义,LangGraph是围绕Graphs(图)展开的,图是连接任务的网络,可用来构建AI智能体的Workflow(工作流)。这些工作流程依赖于四个主要组件:* State(状态):表示应用程序当前快照的共享数据结构。它可以是任何 Python 类型,但通常是 TypedDict 或 Pydantic BaseModel。* Nodes(节点):编码代理逻辑的 Python 函数。它们接收当前状态作为输入,执行一些计算或额外功能,并返回更新后的状态。* Edges(边):根据当前状态决定下一步执
2025-03-21 08:42:47
725
翻译 MCP(MODEL CONTEXT PROTOCOL)概述
Anthropic 将 MCP 定义为将客户端连接到中间件服务器,该服务器连接其他应用程序接口,并公开工具、资源和提示。公开意味着向用户显示现有的功能或名称。模型上下文协议,目前是开源的,这意味着任何人都可以构建自己的 MCP 服务器,或使用我们将要讨论的现有 MCP 服务器之一。模型上下文协议使应用程序能够以一致的方式为 LLM 提供上下文,将上下文提供与实际 LLM 交互隔离开来。
2025-03-18 07:18:00
131
原创 FastGPT原理分析-数据集创建第一步
本文介绍了FastGpt创建数据集的总体流程,并详细分析了第一步的实现步骤和实现原理。可以看到,这一步只是把数据放到了Mongodb的训练队列的表中,那么,当数据插入到Mongodb后,该如何处理这些数据?而处理这些数据的任务又是如何触发的呢?这些实现的原理和逻辑,在下一篇文章中进行分析。
2025-03-14 08:21:06
944
原创 Manus开源版本地部署和初步探索
初步尝试了一下OpenManus,感觉上基本的多Agent框架已经有了,但工具只有3-4个,功能上还存在一些小的问题。个人认为类似Manus这样的多Agent系统,最大的优势就是利用产品化思维,把各种复杂的流程设计与调用都进行了封装,这样留给用户的是一个非常容易使用的界面接口。这样小白用户使用起来也非常的方便,可以享受AI带来的遍历。
2025-03-09 10:37:48
896
原创 dify实现分析-dify的rag实现分析总结
至此,dify关于rag的实现逻辑就基本上分析完了,本文对dify的rag实现进行总结。另外,由于之前的文章顺序比较随意,所以,这里会把之前的文案顺序进行一个梳理,并给出阅读的顺序目录。后面会根据需要对这部分内容进行增补。
2025-03-02 10:34:41
1574
原创 dify实现分析-rag-文档切割的实现
本文介绍了dify中文本分割的几种方式。并对这几种方式的实现进行了分析和比较。文本分割是,RAG框架实现中比较关键的一环,分割质量的好坏直接影响RAG回答的效果。dify中考虑到了文本的长度和语义的连贯性,会对小的分块进行合并,而且又会保证了文本有一定的重叠,保证了语义的连贯性。另外,在其他的RAG框架中也可以使用tiktoken包来对文本块进行token化,然后再对token进行分割。这种方式相对比较简介,在后续文章中会继续分析这种实现方式的原理。
2025-03-01 08:43:25
2348
原创 dify实现分析-rag-rerank的query和文档权重相似度综合得分的计算
当使用权重分数计算来对文档分块进行rerank时,不仅会按文章:[《dify实现分析-rag-rerank中的关键词提取相似度计算》](https://blog.csdn.net/zg_hover/article/details/145868550?spm=1001.2014.3001.5501)的方法计算关键词的TF-IDF余弦相似度,还会计算嵌入向量,计算问题和每个文本嵌入向量的相似度。然后,把这两者的相似度进行综合计算最后的得分,用这个得分来作为rerank选择最合适文档的依据。
2025-02-27 07:29:48
457
原创 dify实现分析-rag-rerank中的关键词提取相似度计算
本文分析了dify关键词提取相似度计算的实现逻辑。dify通过计算每个文档内容得tf-idf,以及计算问题文本得tf-idf,再通过余弦相似度来计算两者的相似度。从而得到问题和文档内容的相似程度分数。
2025-02-26 08:37:36
1388
原创 BM25算法基本使用以及在RAG中的应用
BM25算法被多种RAG开源框架和向量库的向量查询中提到或使用到。本文介绍BM25算法的基本原理,并通过一个可运行的例子来说明如何使用BM25算法。BM25(Best Match 25)是一种用于信息检索的概率模型,常用于搜索引擎和问答系统中。在RAG(Retrieval-Augmented Generation)框架中,BM25用于从大规模文档库中检索与查询最相关的文档。BM25基于词频(TF)和逆文档频率(IDF)计算文档与查询的相关性,结合了文档长度归一化,能够有效处理不同长度的文档。
2025-02-23 21:08:30
1451
原创 dify实现分析-rag-内容检索rerank的两种实现
本文介绍了dify的两种rerank方式的实现。目前dify中支持2种rerank方式,一种通过rerank模型来实现,一种是通过计算分词和向量与query的相似度来实现。另外,dify支持多种rerank模型,可以根据需要进行选择。
2025-02-23 20:55:10
3529
原创 dify实现分析-rag-关键词索引的实现
关键词索引方式不需要其他额外的存储组件就可以完成索引的构建,成本相对比较低,比较经济实惠。但该方式是通过分词和关键词匹配方式来构建的文本块查询,比起通过向量和语义匹配的方式,有一定的局限性,选择那种方式,需要根据具体的场景来确定。
2025-02-19 09:11:26
1466
原创 dify实现分析-rag-文档内容提取
在文章《[dify实现原理分析-上传文件创建知识库总体流程](https://blog.csdn.net/zg_hover/article/details/144954733?spm=1001.2014.3001.5501)》中已经介绍了,文件上传后索引构建的总体流程,本文介绍其中的“Extract: 提取文档内容:这里会按段落或整页来获取文档内容”步骤的实现。
2025-02-17 20:37:57
4372
2
原创 dify实现分析-rag-文件上传后的处理
前面的文章:已经说明了文档上传的总体步骤。当上传一个或多个文档后,dify会启动索引的构建任务来处理文档内容,并构建索引。本文介绍文档索引构建的实现逻辑。
2025-02-17 08:40:35
2518
原创 AI程序员(aider)+ollama+DeepSeek-R1安装配置和使用
aider其实是ai coder的缩写,可以说是一个ai programmer,可以根据需求编写代码,可以分析代码,重构代码等。比一般的代码助手更加智能。目前还处于比较初级的版本,但已经具备一定的可用性。本文介绍aider的本地部署和使用,通过ollama的部署和使用可以让aider使用本地部署的大模型。比如:qwen或deepseek等。ollama的安装和模型的拉取,可以参考我前面的文章,这里不再赘述。
2025-02-16 11:41:49
1288
原创 RAG核心机制和原理概述-3
在应用实践中,RAG模型虽然有着信息完整性、推理能力和跨领域适应性等显著优势,但也面临着数据质量、计算资源消耗和知识库更新等挑战。为进一步提升RAG的性能,提出了针对数据采集、内容分块、检索策略优化以及回答生成的全面改进措施,如引入知识图谱、优化用户反馈机制、实施高效去重算法等,以增强模型的适用性和效率。
2025-02-11 20:07:25
1093
unix network programing
2009-03-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人