自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zg_hover的专栏

Get buy living or get busy dying!

  • 博客(453)
  • 资源 (6)
  • 收藏
  • 关注

原创 AI领域新趋势:从提示(Prompt)工程到上下文(Context)工程

上下文工程是一种构建动态系统的过程,目的是为LLM提供正确格式的信息和工具,使其能够合理地完成任务。这与传统的提示工程有着本质的区别。提示工程主要关注于如何巧妙地措辞提示,以期从LLM中获得更好的答案。然而,随着应用的复杂性不断增加,人们逐渐意识到,向AI提供完整且结构化的上下文比任何巧妙的措辞都更为重要。上下文工程是一个系统,而不是简单的字符串。它是一个在主LLM调用之前运行的系统,能够从多个来源获取上下文,包括应用开发者、用户、之前的交互、工具调用或其他外部数据。

2025-07-04 21:31:10 197

原创 qodo如何构建大型代码仓库的RAG?

在当今软件开发领域,代码库的规模日益庞大,动辄达到数百万甚至数亿行代码。这给开发者带来了巨大的挑战,尤其是在代码搜索和理解方面。如何在海量代码中快速准确地找到所需内容,成为了提升开发效率的关键。Augment Code团队通过引入量化向量搜索技术,成功地将代码搜索速度提高了40%,为解决这一难题提供了新的思路和方法。

2025-07-01 07:39:44 825

原创 Augment Code-如何为1亿+行代码库提速40%的代码搜索:量化向量搜索的妙用

在当今软件开发领域,代码库的规模日益庞大,动辄达到数百万甚至数亿行代码。这给开发者带来了巨大的挑战,尤其是在代码搜索和理解方面。如何在海量代码中快速准确地找到所需内容,成为了提升开发效率的关键。Augment Code团队通过引入量化向量搜索技术,成功地将代码搜索速度提高了40%,为解决这一难题提供了新的思路和方法。

2025-06-29 21:24:24 401

原创 Augment近实时代码库索引构建机制

Augment是一个类似于Cursor的代码助手,有人说比Cursor还好用。是否超过Cursor我们暂且不论,我们来看一下它是如何实现近实时索引构建的。

2025-06-26 18:39:10 751

原创 Continue索引实现机制

Continue是一个开源的AI代码助手,本文介绍Continue索引的实现机制。Continue采用标签系统与内容寻址相结合的方式,确保无需重复索引。当您切换分支时,Continue仅会重新索引新修改且未被缓存的文件。通过实现CodebaseIndex类,该系统可应用于多种不同的"产物"(artifact)。

2025-06-25 21:22:00 818

原创 构建高效智能体系统:从简单到复杂,找到最适合你的解决方案

在实际业务场景中构建智能体,最成功的实现往往不是使用复杂的框架或专用库,而是通过简单、可组合的模式来实现的。本文总结了我们在客户合作和自身开发过程中获得的经验,并为开发者提供实用的建议,帮助他们构建有效的智能体系统。

2025-06-21 09:58:13 767

原创 Vibe Coding 很爽?小心你的代码变成‘技术债’!

想象一下,像写作文一样来写软件,这可能吗?这会是一种什么样的体验?这就是最近讨论的一种新的编码方式,称之为“vibe coding”。你完全沉浸于氛围,拥抱指数级增长的产出,甚至忘记代码的存在。

2025-06-15 10:16:08 789

原创 Cursor如何快速索引代码库

在很多代码助手软件中,代码库索引的构建的流程其实都大体相似。有些在客户端完成代码索引的构建,有些通过离线任务在后端服务中完成(用户体验会好一些)。和文本索引库(RAG知识库)的构建不同,代码索引库的构建要复杂很多,不仅要对文本进行切割,还需要考虑代码结构中不同元素的代码结构,同时还需要考虑各个元素之间的关系。另外,由于嵌入模型对token的限制,切割后的代码片段不能大于这个最大的限制。所以,既要考虑代码的语法完整性和代码之间的关系,还要考虑代码片段不能太长。

2025-06-15 09:42:58 663

原创 Cursor实现原理初探总结

Cursor是最受欢迎的AI代码编辑器之一。最近newsletter.pragmaticengineer.com上发表了一篇和Cursor工程访谈的记录文章。该文章访谈了Cursor的开发者,并询问了很多Cursor的具体实现原理。这里对这篇文章的核心内容进行了总结。

2025-06-14 06:48:15 1049

原创 Langgraph实战-自省式RAG: Self-RAG

传统 LLM 仅依赖内部参数化知识生成回答,容易产生事实性错误(hallucination)。即使结合检索增强生成(RAG),也存在两个问题:(1)盲目检索:无论是否需要检索,都固定检索一定数量的文档,可能引入无关信息。(2)机械整合:直接拼接检索到的内容,可能降低生成结果的流畅性或实用性。现有 RAG 也存在很多的不足,例如:无法动态判断何时需要检索、检索内容是否相关,导致生成质量不稳定。

2025-06-08 20:14:02 1067

原创 Langgraph实战--自定义embeding

在Langgraph中我想使用第三方的embeding接口来实现文本的embeding。但目前langchain只提供了两个类,一个是AzureOpenAIEmbeddings,一个是:OpenAIEmbeddings。通过ChatOpenAI无法使用第三方的接口,例如:硅基流平台的接口。只能自己封装一个类,继承Embeding接口,从而实现整合第三方平台Embending API的能力。

2025-06-07 21:23:43 372

原创 Langgraph实战--在Agent中加入人工反馈

通过对AI输出中加入人类的反馈已经,能够让AI更好的输出符合预期的内容。同时,通过人工的审核,可以更好的保证输出内容的安全性和准确性。

2025-06-06 19:38:34 299

原创 大吞吐量的推理引擎:Tokasaurus

Tokasaurus一款针对吞吐量密集型工作负载进行了优化的全新 LLM 推断引擎。对于小型模型,Tokasaurus 可利用极低的 CPU 开销和动态 Hydragen 分组来利用共享前缀。

2025-06-06 08:21:22 977

原创 Github Copilot新特性:Copilot Spaces-成为某个主题的专家

Copilot的Spaces功能提供了一个能够把各种材料集中起来的知识库。通过这些材料让copilot能够更加深入的理解代码,并能够更加准确和专业地回答用户提示出的各种问题。另外,Spaces能够保持和代码仓库实时同步,让Copilot能够及时获取到最新的知识。另外,Spaces分享的功能也让团队之间的知识分享更加简单。

2025-06-05 21:02:11 1000

原创 LLM多平台统一调用系统-LiteLLM概述

在当今快速发展的AI领域,大语言模型(LLM)已成为技术创新的核心驱动力。然而,随着市场上涌现出越来越多的LLM提供商(如OpenAI、Anthropic、Google Gemini、AWS Bedrock等),开发者面临着一个日益复杂的问题:每个平台都有自己独特的API接口、认证方式和响应格式,这使得在不同模型间切换变得异常困难且维护成本高昂。LiteLLM应运而生——这是一个开源工具,旨在通过统一的OpenAI格式接口,简化对多种LLM服务的调用与管理。本文将全面介绍LiteLLM的核心功能、使用场景及

2025-05-25 20:12:24 561

原创 LLM基础-什么是大模型推理(LLM Inferencing)

和传统的机器学习模型类似,大模型也可以分为:模型训练和模型推理两个过程。模型训练就是给定的数据和算法训练出一个模型(一堆文件,包括:模型权重、配置等),然后就可以使用该模型来进行预测或分类等操作。模型推理(Model inference)是使用已训练的机器学习模型根据新的输入数据生成预测的过程。

2025-05-25 17:57:50 598

原创 Langgraph实战-多Agent-主副Agent协同

如果单个Agent需要专门从事多个领域的工作或管理许多工具,它可能会很吃力。为了解决这个问题,你可以将Agent分解成更小的、独立的Agent,并将它们组合成一个多Agent系统。在多Agent系统中,Agent之间需要相互通信。它们通过 “交接”(handoffs)进行通信。“交接 ”是一种描述将控制权交给哪个Agent以及向该Agent发送有效载荷的基本要素。

2025-05-21 07:30:17 447

原创 DoomArena:AI 智能体安全测试的新框架

在人工智能(AI)智能体(Agent)技术快速发展的今天,越来越多的企业和研究机构开始将AI智能体应用于自动化任务中,例如网页浏览、工具调用和客户服务等。然而,随着智能体的广泛应用,其安全性问题也日益凸显。恶意攻击者可能通过多种方式利用智能体的漏洞,例如数据泄露、权限提升和未经授权的金融交易等。为了应对这些挑战,ServiceNow Research和华盛顿大学的研究团队开发了**DoomArena**——一个模块化、可配置、即插即用的AI智能体安全测试框架。

2025-05-07 07:58:02 776

原创 dify实现分析-agent-Agent的类设计

本文分析了Dify的Agent设计框架。分析类Dify Agent相关的各个类的实现和关系。并对各个类的功能进行类分析。

2025-05-06 08:44:07 965

原创 MCP实战-本地MCP Server + Client实战

本文开发一个MCP的Client和Server。然后通过本地模式来运行,并获取到server的结果。

2025-04-27 17:33:01 201

翻译 适用于企业智能体的智能体网格(翻译)

这种新范式需要一个“智能体网格”,即一个平台,无论这些智能体、LLM 或工具部署在何处,都可以在所有智能体交互中实现安全性、可观察性、发现和治理。本文阐述了这一愿景,以及我们 Solo.io 如何准备提供此基础设施。

2025-04-27 08:46:49 43

原创 LLM基础-什么是Tokenizer

在自然语言处理(NLP)中,Tokenizer(分词器)是将文本转化为模型可处理单元(Token)的核心组件。它的拆分逻辑直接影响模型的性能、效率和泛化能力。本文介绍Tokenizer的文本拆分机制

2025-04-27 07:46:31 558

原创 MCP实战-本地MCP Server+Cursor实践

本文介绍了如何编写一个最简单的本地MCP Server,并通过Cursor来使用该MCP Server。

2025-04-24 19:09:42 575

原创 LLM基础-什么是嵌入(Embeddings)

在自然语言处理(NLP)领域,Token Embeddings(标记嵌入)扮演着至关重要的角色。它不仅是语言模型的基础,更是连接人类语言与机器理解的桥梁。本文将深入探讨 Token Embeddings 的原理、生成过程、应用场景,以及它在现代语言模型中的重要性。

2025-04-23 19:23:41 820

原创 Langgraph实战-Agent-使用ReAct进行情感分析

在这个例子中创建了一个情感分析 Agent,它使用 LLM(大型语言模型)来处理客户反馈,并集成自定义情感分析工具,将反馈分为正面、中性或负面。根据情感分析结果, Agent使用 ReAct(推理、行动、观察)框架生成适当的回应。 Agent对客户反馈进行推理,调用情感分析工具,并作出回应。

2025-04-23 08:35:20 508

原创 Langgraph实战-Agent-ReAct(Reason+Act)概述

ReAct 架构将推理与动作相结合,使Agent能够通过生成想法并基于这些想法执行动作。这种决策透明度使Agent能够更负责地执行任务,因为它会记录每一步的推理过程。

2025-04-22 07:32:30 1071

原创 LLM基础-什么是Token?

Token 是大语言模型(LLM, Large Language Model)中最基本的输入单元,它是语言被模型“理解”的方式。不同于人类可以直接看懂一段自然语言文本,LLM 只能处理数字,而这些数字就是由 token 转换而来的。

2025-04-20 13:27:18 497

原创 本地离线安装Ollama

官方提供了一个下载和执行的脚本,但是由于网络原因,该脚本实在太慢了,只能手动下载安装包。此时,虽然安装包已经下载了,但不要自己解压安装,否则会出现很多未知的错误。最好是用官方提供的脚本来安装。

2025-04-20 13:18:13 529

原创 LangGraph实战-在agent中使用短期记忆(Short-Term memory)

通过使用MemorySaver,我们可以在会话线程中存储对话的状态。在后台,LangGraph 每一步都会保存检查点(checkpoints)--对话状态的快照。这些检查点与模拟会话的线程 ID 相连。只要线程 ID(thread ID) 保持不变,Agent就能记住过去的交互。

2025-03-23 09:17:32 879

原创 FastGPT原理分析-数据集创建第二步:处理任务的执行

本文介绍了文件上传后的任务触发方式。可以看到,是通过监控mongodb数据表dataset_trainings的插入操作来触发数据处理任务。有两种数据处理方式:(1)QA问答方式数据处理;(2)嵌入向量处理方式。后面会介绍这两种方式的具体实现逻辑。

2025-03-23 09:06:01 533

原创 LangGraph实战-Graph构建的基本概念

顾名思义,LangGraph是围绕Graphs(图)展开的,图是连接任务的网络,可用来构建AI智能体的Workflow(工作流)。这些工作流程依赖于四个主要组件:* State(状态):表示应用程序当前快照的共享数据结构。它可以是任何 Python 类型,但通常是 TypedDict 或 Pydantic BaseModel。* Nodes(节点):编码代理逻辑的 Python 函数。它们接收当前状态作为输入,执行一些计算或额外功能,并返回更新后的状态。* Edges(边):根据当前状态决定下一步执

2025-03-21 08:42:47 732

翻译 MCP(MODEL CONTEXT PROTOCOL)概述

Anthropic 将 MCP 定义为将客户端连接到中间件服务器,该服务器连接其他应用程序接口,并公开工具、资源和提示。公开意味着向用户显示现有的功能或名称。模型上下文协议,目前是开源的,这意味着任何人都可以构建自己的 MCP 服务器,或使用我们将要讨论的现有 MCP 服务器之一。模型上下文协议使应用程序能够以一致的方式为 LLM 提供上下文,将上下文提供与实际 LLM 交互隔离开来。

2025-03-18 07:18:00 136

原创 FastGPT原理分析-数据集创建第一步

本文介绍了FastGpt创建数据集的总体流程,并详细分析了第一步的实现步骤和实现原理。可以看到,这一步只是把数据放到了Mongodb的训练队列的表中,那么,当数据插入到Mongodb后,该如何处理这些数据?而处理这些数据的任务又是如何触发的呢?这些实现的原理和逻辑,在下一篇文章中进行分析。

2025-03-14 08:21:06 959

原创 Manus开源版本地部署和初步探索

初步尝试了一下OpenManus,感觉上基本的多Agent框架已经有了,但工具只有3-4个,功能上还存在一些小的问题。个人认为类似Manus这样的多Agent系统,最大的优势就是利用产品化思维,把各种复杂的流程设计与调用都进行了封装,这样留给用户的是一个非常容易使用的界面接口。这样小白用户使用起来也非常的方便,可以享受AI带来的遍历。

2025-03-09 10:37:48 904

原创 dify实现分析-dify的rag实现分析总结

至此,dify关于rag的实现逻辑就基本上分析完了,本文对dify的rag实现进行总结。另外,由于之前的文章顺序比较随意,所以,这里会把之前的文案顺序进行一个梳理,并给出阅读的顺序目录。后面会根据需要对这部分内容进行增补。

2025-03-02 10:34:41 1602

原创 dify实现分析-rag-文档切割的实现

本文介绍了dify中文本分割的几种方式。并对这几种方式的实现进行了分析和比较。文本分割是,RAG框架实现中比较关键的一环,分割质量的好坏直接影响RAG回答的效果。dify中考虑到了文本的长度和语义的连贯性,会对小的分块进行合并,而且又会保证了文本有一定的重叠,保证了语义的连贯性。另外,在其他的RAG框架中也可以使用tiktoken包来对文本块进行token化,然后再对token进行分割。这种方式相对比较简介,在后续文章中会继续分析这种实现方式的原理。

2025-03-01 08:43:25 2449

原创 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 471

原创 dify实现分析-rag-rerank中的关键词提取相似度计算

本文分析了dify关键词提取相似度计算的实现逻辑。dify通过计算每个文档内容得tf-idf,以及计算问题文本得tf-idf,再通过余弦相似度来计算两者的相似度。从而得到问题和文档内容的相似程度分数。

2025-02-26 08:37:36 1434

原创 BM25算法基本使用以及在RAG中的应用

BM25算法被多种RAG开源框架和向量库的向量查询中提到或使用到。本文介绍BM25算法的基本原理,并通过一个可运行的例子来说明如何使用BM25算法。BM25(Best Match 25)是一种用于信息检索的概率模型,常用于搜索引擎和问答系统中。在RAG(Retrieval-Augmented Generation)框架中,BM25用于从大规模文档库中检索与查询最相关的文档。BM25基于词频(TF)和逆文档频率(IDF)计算文档与查询的相关性,结合了文档长度归一化,能够有效处理不同长度的文档。

2025-02-23 21:08:30 1525

原创 dify实现分析-rag-内容检索rerank的两种实现

本文介绍了dify的两种rerank方式的实现。目前dify中支持2种rerank方式,一种通过rerank模型来实现,一种是通过计算分词和向量与query的相似度来实现。另外,dify支持多种rerank模型,可以根据需要进行选择。

2025-02-23 20:55:10 3600

neo4j调优手册v1.0.pdf

neo4j性能优化

2021-08-04

write_solid_code

编写风格好的代码,本书可以 让你学到如何颈好的写出风格,和稳健的程序代码。

2008-11-06

泰坦里克事故乘客训练和测试数据

泰坦尼克事故的乘客信息,训练数据和测试数据

2017-07-01

avafind 破解版

avafind 可用版本。

2016-10-06

unix network programing

unix network programing steven 的经典书籍 学linux/unix网络编程必备书 网络上有chm版本的,我把它搞成了pdf版,方便大家打印

2009-03-06

linux编程和内核的调试技巧

调试技巧 linux下程序的调试技巧,包括内核的调试,很有用的一本书哦!

2008-10-10

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除