尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

15天学会AI应用开发(十三)上下文与RAG的阶段性总结

15天学会AI应用开发(十三)上下文与RAG的阶段性总结
📅 发布时间:2026/7/15 5:02:02

搭建应用开发环境
正所谓磨刀不误砍柴工,要想后续顺利进行AI应用编程,务必正确搭建电脑的Python开发环境,这样可以避免代码编译时出现奇奇怪怪的错误,才能心无旁骛地钻研AI应用技能。

首先是安装哪个Python版本。AI开发环境的Python版本推荐Python 3.10.x,该版本兼容所有 AI 库(torch、llama-index、langchain、langgraph、ollama),也没有新版本的奇怪Bug。

其次是安装哪个PyCharm版本。Python代码的开发工具PyCharm可以选择社区版的PyCharm 2024.1 / 2023.3 / 2022.2 ,PyCharm版本过低会不支持Python 3.10,版本过高会很消耗电脑资源。

再次是安装 Ollama ,AI应用在加载离线大模型时经常用到它。

二、上下文(提示词)
要让AI干活,先得丢个问题或者指令给它。这个问题或者指令就叫做“提示词”,意思是提示AI要干什么。

一边是大模型要求准确的提示词,另一边是用户千奇百怪的命令,夹在中间的AI应用开发者就得想办法连通这两者。
AI应用搭建的提示词转换桥梁,又被称作“提示词工程”,它要把用户的各种命令和提问转换为大模型容易理解的提示词。

为了让AI在不同的语境中准确理解用户的意图,在开启新会话时有必要把之前的历史对话记录发给AI,以便AI理解当前对话所处的上下文环境,才好做出有针对性的回答。

可是历史对话记录一方面数量很多,另一方面存在大量冗余,而每次发给AI大模型的提示词都会消耗宝贵的Token,于是AI应用开发者就得想办法精简历史对话记录,以得到提炼了主要意思的上下文信息。
历史对话的提炼方式经历了下列的优化过程:

1、按照某种规则截断历史对话
历史对话虽多,但关联度高的记录只有最近的几条,因此可保留最新的几条对话记录形成下次会话的上下文。对话记录的截断规则有下列两种:

(1)按照消息数量来截断历史对话;
(2)按照Token长度来截断历史对话;

其中在计算文本的Token长度时,给出了两种分词器及其使用说明。一种分词器是国外的tiktoken,另一种是国产的jieba,对中文段落分词推荐使用jieba库。

2、提取历史对话的摘要文字
精简历史对话的文字内容,提炼出紧凑的摘要文本,可提高上下文的信息密度,有效降低Token消耗。对话记录的摘要办法有下列几种:

(1)使用第三方的摘要库(如snownlp和sumy)进行文字摘要;
(2)使用在线大模型(如火山引擎)对原始文本输出摘要;
(3)使用离线大模型(如千问的文本大模型)对原始文本生成摘要;

在上下文部分的系列文章末尾,给出了一个使用离线大模型对文本生成摘要的实战例子。
先通过modelscope下载离线大模型Qwen1.5-1.8B-Chat,再通过transformers加载本地离线大模型,输出原始文本经过压缩后的摘要文字。实战演示过程发现,离线大模型支持设置返回内容的Token长度,并且离线处理不消耗在线Token,适合初学者练习AI应用开发。

三、RAG(知识库)
大模型虽智能,却存在下列两个短板:

(1)知识有截止日期,不懂新知识
(2)会幻觉、爱胡说八道

为弥补大模型的上述两处缺陷,就引入了RAG知识库。
RAG是一种结合检索和生成技术的模型,它通过引用外部知识库的信息来生成回答,外部知识库通常来源用户提供的文档资料。

RAG的使用流程包含下列五个步骤:

(1)加载文档资料
(2)对文本分块
(3)向量化文本
(4)存入向量数据库
(5)在用户提问时,检索向量数据库,并把结果反馈给大模型

以下简要说明各步骤的处理手段:

1、向量数据库
在RAG第4步的“向量数据库”,分别介绍了运行于内存的FAISS,以及运行于磁盘的Chroma。
其中FAISS速度快,适合一次性使用;而Chroma可持久保存数据,适合多次反复使用。

2、向量化文本
在RAG第3步的“向量化文本”,介绍了两种文本嵌入模型,一种是国外的all-MiniLM-L6-v2,另一种是国产的BGE-small。
其中,国产Embedding模型的优势是在处理中文时更加精准,能够给出更准确的检索结果。

3、对文本分块
在RAG第2步的“对文本分块”,要把一大段文本拆分为多个句子,基本要求如下:

(1)读取文档资料的所有文本内容。
(2)按照句号分割文本。
(3)每条知识设定字数下限,比如不得少于50个汉字;如果某条知识小于这个长度,就要跟下一条知识合并。
(4)处理过程注意去除无效字符,例如剔除空行、删除空格等等。

4、加载文档资料
在RAG第1步的“加载文档资料”,分别介绍了对TXT、PDF、DOCX、网页等文档格式的加载处理,各文档的解析过程简述如下:

(1)对于TXT格式,可直接打开并读取文本内容,注意兼容UTF-8与GBK这两种字符编码集。
(2)对于PDF格式,可通过三方库pdfplumber读取文本内容。
(3)对于DOCX格式,可通过三方库python-docx读取文本内容。
(4)对于网页格式,可通过三方库trafilatura读取文本内容。

在知识库部分的系列文章末尾,给出了一个使用BGE-small与FAISS,通过解析网页实现在线RAG的实战例子。

相关新闻

  • 清华AI教程实战指南:从零掌握深度学习与OpenCV核心技能
  • Flutter与Unity集成Vuforia AR:跨平台混合开发实战与避坑指南
  • C++算法实践:哈希表与摩尔投票法高效求解众数问题

最新新闻

  • C++宏定义完全指南:从常量定义到条件编译与高级元编程
  • 2026年和美乡村建设公司哪家评价好 实用服务选型参考 - 热点品牌推荐
  • 2026 年现阶段兴海优秀的耐候钢板花池制造商全面解析与选购指南,千万别把锈铁当垃圾,它竟让烂尾庭院瞬间高级十倍 - 领域鉴赏官
  • 华为Sound X5音频芯片与鸿蒙生态开发实战解析
  • 解锁unittest:从核心组件到企业级数据驱动实战
  • 第13章:Memory Region内存区域

日新闻

  • 告别启动盘残留:用Diskpart彻底清除U盘EFI分区与恢复完整空间
  • 2026 年宜春诚信的塑料缠绕膜厂家哪个好,缠绕膜背后的秘密:你不知道的成本陷阱 - 领域鉴赏官
  • Arch ECS 入门指南:10分钟掌握C#高性能数据驱动架构

周新闻

  • IX9104 PCIe5.0 高速交换芯片@ACP#完整规格 + 应用场景总结
  • Unity游戏集成Coze智能体:实现NPC智能对话与知识库联动
  • SAP EPIC 建行回单查询:从标准类CL_EPIC_EXAMPLE_CN_CCB_GHTD到Z类的5处关键修改

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号