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.测试和保存

相关推荐
LONGZETECH4 分钟前
低空经济背景下:五组核心数据拆解无人机职业教育的机遇与实训破局
大数据·人工智能·系统架构·无人机
aichitang20247 分钟前
希尔伯特空间中的正交性
人工智能·学习·机器学习·ai·泛函分析
aiqianji10 分钟前
功能全面的教AI短篇小说写作的软件都有哪些?
人工智能·python
格林威23 分钟前
C# 相机Burst模式图像采集:使用相机内存配合OpenCvSharp和Halcon实现短时间的高速采集的方法
开发语言·人工智能·数码相机·计算机视觉·c#·视觉检测·工业相机
轮到我狗叫了28 分钟前
Slurm如何使用
人工智能·python·深度学习·机器学习
AI创界者33 分钟前
【开源硬核】comfyUI MiniMax H3 融合模型本地部署一键整合包!单卡撬动 2K 影音全模态输出,附避坑指南
人工智能·aigc
2601_9637491036 分钟前
越华环保集团|河湖工况下数字化污水治理云边协同采集架构实现
人工智能·架构
闪学it41 分钟前
小滴课堂-AI大模型小龙虾-OpenClaw-0基础从入门到实战
人工智能
代码方舟41 分钟前
零信任架构实战:基于天远手机携号转网V即时版构建自动化营销风控网关
人工智能·智能手机·架构·自动化
会周易的程序员41 分钟前
企业私有 AI 算力服务器架构设计:异构四节点 + QUIC 微服务
运维·服务器·c++·人工智能·微服务·架构