AI实战之RAG知识库构建和私有化agent设计

RAG = 检索增强生成(Retrieval‑Augmented Generation) 简单说:让 AI 先查你的私有资料,再回答问题,不瞎编、用你自己的数据。解决了大模型幻觉问题.之后生成回答时,先从知识库检索相关知识,然后把检索结果和原始问题一起给大模型,大模型再生成最后结果.

例如刚才下载的本地qwen3:8b大模型,只知道训练它的历史数据,也不知道你针对的知识库,根据你的问题很可能乱说回答,因此RAG :把你本地的 ** 私有知识库(源码、日志、运维手册)** 喂给 AI,AI 回答前先检索这些资料,再生成答案.Dify:就是帮你做 RAG 的可视化工具

通俗类比

  • 大模型(Ollama):一个普通大学生,只有课本知识
  • RAG :给他你的公司机密运维档案、源码、故障手册
  • 提示词工程:教他怎么看档案、怎么专业回答
  • Dify :帮你把档案整理好、让大学生快速查找、回答(私有数据不外泄:源码、生产日志不能上传到 GPT、通义千问,RAG 完全本地私有化)

第一步文档准备,要注意信息处理,命名规范

第二步文档切片,为了适应上下文限制;切分方式:按照字数;按照符号;按照语义.一般选择按照符号和字数,选择三四百字吧

第三步:文档向量化

实操步骤1.创建知识库;2.选择数据源;3.文本分段;4.构建向量化索引;5.检索设置;6.查看结果

打开dify

复制代码
http://localhost/apps

还有embedding

Embedding = 把文字变成一串数字(向量),让 AI 能看懂 "文字之间的相似度" 它是 RAG(知识库)的核心底层技术,没有 Embedding 就做不了私有知识库。

  • 日志文本:线程死锁,通信超时
  • 代码片段:pthread_mutex 未释放

变成一串几百个数字:[0.21, 0.87, -0.33, ...] 这串数字就叫 向量 / Embedding

  • 意思相近的文字 → 数字也接近
  • 意思完全无关 → 数字差距很大

完整工作流程(串联 Docker / Dify / Ollama / RAG / Embedding)

  1. 你上传 C++ 源码、生产日志 到 Dify 知识库
  2. Embedding 模型(也是 Ollama 里跑的一个小模型)把每一段文字变成数字向量
  3. 向量存入数据库
  4. 你提问:为什么线程死锁?
  5. 提问也被转成向量
  6. 系统对比向量,找出最相似的源码 / 日志片段(这就是 RAG 的检索步骤)
  7. 把片段发给大模型(qwen3:8b),生成回答
  • Ollama:本地运行 AI(大脑 + 指纹生成器)
  • Embedding:给文字做指纹,用于检索
  • RAG:用指纹查私有知识库,再让大脑回答
  • 提示词工程:教大脑怎么专业回答
  • Dify:可视化工具,把上面全部串起来
  • Docker:隔离运行 Dify 整套服务

简单说:Embedding 就是给文字做 "指纹",用来快速找相似内容。

然后我们让ai用这个,创建一个智能体agent,一个agent可以多个知识库.

创建游戏助手后,测试一下

点击知识库,选择这个新的知识库

下面我们看看如何用function calling

Function Calling = 让 AI 自动调用你写好的工具 / 代码 / 接口,去查数据、执行操作,再回来回答你 简单说:AI 不只靠脑子想,还会自己动手查工具、查数据库、执行命令'

场景:你问 AI:

"最近 3 天线程死锁的日志有哪些?帮我定位根因"

普通 AI(没有 Function Calling)

只能基于你上传的静态日志回答,查不到实时最新数据

开启 Function Calling(你的私有运维 AI)

AI 自动执行 3 步:

  1. 识别意图 :你要查实时最新日志
  2. 调用函数 / 接口:自动调用你写的 Python 脚本、数据库接口、运维系统 API,拉取最新崩溃日志
  3. 分析 + 回答:拿到实时数据后,结合知识库,给出故障根因 + 排查步骤
  • Ollama:本地运行 AI 大脑(Qwen3:8b)
  • Embedding:文字转数字,给内容打指纹(RAG 检索用)
  • RAG :查静态私有知识库(源码、历史日志、手册)
  • Function Calling :调用外部工具 / 接口,查实时数据、执行操作
  • 提示词工程:教 AI 角色、规则、格式
  • Dify:可视化搭建以上全部功能
  • Docker:隔离运行整套服务

最简单的类比

  • RAG = 查历史档案(静态资料)
  • Function Calling = 打电话查实时数据、执行命令(动态工具)

下面我们用dify里面的插件看看怎么用

创建一个agent

直接问几点大模型是不知道的,现在改好时间区域

这是一个dify已经定义好的插件的使用,下一个文章我们来试一下自己定义插件

基本流程:1.脚本开发;2.运行脚本;3.创建工具;4.schema操作;5.测试和保存

相关推荐
咖啡里的茶i1 小时前
视觉显著目标的自适应分割与动态网格生成算法研究
人工智能·算法·目标跟踪
weelinking1 小时前
【企业级】企业级大模型合规实战:数据安全与跨境传输的技术解决方案
数据库·人工智能·机器学习·云计算·github
耕烟煮云2 小时前
本文深入解析AI Native产品设计的核心范式——Linear三层架构模型
人工智能·架构
Rewloc2 小时前
人生计算器
人工智能
波动几何2 小时前
内容执行创新正交组合闭集
人工智能
XD7429716362 小时前
科技早报晚报|2026年5月13日:Agent 记忆、编程控制台与本地研究工作台,今天更值得动手的 3 个机会
人工智能·科技·开源项目·科技新闻·ai agent·开发者工具·科技早报
XD7429716362 小时前
科技早报|2026年5月16日:AI 正往高门槛场景下沉
人工智能·科技·开发者工具·科技早报
X54先生(人文科技)2 小时前
《元创力》纪实录·桥段古卷显影:当未来考古遇见元协议
人工智能·开源·零知识证明
小王毕业啦2 小时前
2009-2025年 华证ESG年度季度评级评分数据 xlsx
大数据·人工智能·数据挖掘·数据分析·社科数据·实证分析·经管数据