本地大模型编程实战(35)使用知识图谱增强RAG(1)知识图谱简介

知识图谱(Knowledge Graph)本质上是一种结构化的语义知识库,它以 “实体 - 关系 - 实体” 的三元组形式,将现实世界中的概念、实体及其关联关系进行建模和存储,核心目标是让机器能够像人一样理解和运用知识。下图就是一个典型的知识图谱: 知识图谱的主要特点是建立了“知识”之间的关联,所以它的强项是 推理 ,HugeGraph 、NetworkX 支持 PageRank(在后面RAG中会用到)、k-短路、LPA(标签传播算法)、Jaccard 相似度 等算法。有了这些支持,它在 搜索引擎 、智能问答RAG(Retrieval Augmented Generation,检索增强生成) 等领域都有广泛的应用,可以明显提升这些领域应用的智能化水平。 ...

九月 6, 2025 · 2 分钟 · 火云

本地大模型编程实战(34)使用faiss实现语义检索

FAISS(Facebook AI Similarity Search)是 Facebook AI 研究院开发的一款高效的向量相似性搜索库,专门用于优化大规模高维向量的近邻搜索任务,广泛应用于语义检索、图像检索、推荐系统等场景。 本文将详细介绍如何使用 FAISS 实现语义检索。具体内容包括: 将内容矢量化并保存为索引 在保存索引的同时,保存每条信息的相关信息metadata 通过矢量库进行语义检索 语义检索是一种基于内容含义(语义)而非表面关键词的信息检索技术,核心目标是让计算机 “理解” 用户查询的真实意图,从而返回含义相关的结果,而非仅匹配字面关键词的内容。 传统检索(如早期搜索引擎)依赖关键词匹配,例如用户搜索 “如何缓解头痛”,仅会返回包含 “缓解”“头痛” 等字面词汇的内容,若某篇文章写 “应对偏头痛的方法”(未出现 “缓解”“头痛”),则会被遗漏。 语义检索则通过语义嵌入(Embedding) 技术解决这一问题: 将文本转化为 “语义向量”:用 AI 模型(如 BERT、BGE-M3 等)把用户的查询、待检索的文档(句子 / 段落)都转化为高维向量(类似 “数字指纹”),向量的相似度直接对应内容语义的相似度。 通过向量相似度匹配结果:计算 “查询向量” 与 “文档向量” 的相似度(如余弦相似度),排序后返回相似度最高的内容,实现 “含义相关即匹配”。 ...

九月 5, 2025 · 3 分钟 · 火云

使用NetworkX查询GraphML图数据

当遇到展示小规模图谱时,使用 Nextworkx 和 GraphML 是一种性价比很高的解决方案。 GraphML 是通用的图数据交换格式,负责图数据的存储和跨工具共享。 NetworkX 是 Python 中一个强大的 网络(图)分析与操作库,它可以处理 GraphML ,还提供丰富的图算法。 本文使用 Nextworkx 实现查询 GraphML 图数据的功能。 查询根节点,支持分页 查询某个节点的子图结构:即它的子节点以及子节点对应的边和下一级节点 ...

九月 4, 2025 · 2 分钟 · 火云

内网的服务如何能在公网使用?

我在内网中有很棒的服务资源,但是没有固定IP,如何能够在公网使用呢? 要解决这种问题,内网穿透工具 frp(Fast Reverse Proxy) 是一个很棒的选择:既然外网不能访问内网,那么就主动从内网打通到外网的通道! 基本的原理是: 前提条件 要有一台有公网地址的服务器【配置可以比较低】,内网服务器可以连接到这台公网服务器 内网服务器安装frp客户端:frpc,公网服务器安装frp服务端:frps 建立 “长连接”—— 打通内网到公网的 “通道” 内网设备启动 frpc 客户端,并加载配置文件(配置中包含 frps 的公网 IP、端口、认证信息等)。 frpc 主动向公网的 frps 发起 TCP 长连接(默认用 8000 端口,可自定义),并维持这个连接(通过心跳机制防止断开)。 这一步是穿透的关键:由于内网设备没有公网 IP,公网无法主动 “找到” 内网设备,因此必须由内网的 frpc “主动出击”,与公网的 frps 建立连接,形成一条稳定的 “数据通道”。 内网设备无法被公网访问的根本原因,是路由器的 NAT(网络地址转换)机制会隐藏内网 IP。frp 通过 “frpc 主动连接 frps” 的方式,让路由器将 frpc 与 frps 的连接加入 “NAT 映射表”,后续 frps 向 frpc 发送的数据(公网请求),会被路由器正确转发到内网的 frpc,从而实现 “穿透” NAT 的效果。 本文通过一个具体的例子来展示如何使用内网穿透工具frp将内网的web服务推向公网。 frp下载地址 ...

九月 3, 2025 · 1 分钟 · 火云

使用pyHugeGraph查询HugeGraph图数据

在实际项目中,我们经常会遇到类似下面的查询图数据库的需求: 查询根节点,根节点可能有多个,需要分页 点击根节点,查询其子节点以及子节点关联的边和更下一层的子节点 本文使用 pyHugeGraph 实现上述查询 HugeGraph 图数据库的功能。 ...

九月 2, 2025 · 3 分钟 · 火云