RAG与Agent智能体
一.大模型prompt工程指南
提示工程(Prompt Engineering),也称为 In-Context Prompting,是指在不更新模型权重的情况下如何与大模型交互以引导其行为以获得所需结果的方法。
在人工智能领域,Prompt指的是用户给大型语言模型发出的指令
1.提示词技巧
技巧1:详细的描述
技巧2:让模型充当某个角色
技巧3:使用分隔符标明输入的不同部分(中括号、XML标签、三引号等分隔符可以帮助划分要区别对待的文本,也可以帮助模型更好的理解文本内容。常用''''''把内容框起来)
技巧4:对任务指定步骤
技巧5:提供例子
技巧6 : 基于文本文档,辅助大模型问答,降低模型"幻觉"(一本正经的胡说八道)问题。 即使用参考文本作答 经典的知识库用法,让大模型使用我们提供的信息来组成答案。
2.提示词实战案例介绍
大模型选择:Qwen在线大模型(阿里云通义千问 qwen3-max)
采用方法:基于Few-Shot + Zero-Shot的思想,设计prompt(提示词), 进而应用大模型完成相应的任务
Zero-shot思想:
Zero-shot学习(Zero-shot Learning)是指在训练阶段不存在与测试阶段完全相同的类别,但是模型可以使用训练过的知识来推广到测试集中的新类别上。 这种能力被称为“零样本”学习,因为模型在训练时从未见过测试集中的新类别,在模型训练和提示词优化中均有体现
在提示词优化中: Zero-shot思想用于基于已训练的能力,不提供任何示例,仅通过语言去描述任务的要求、目标和约束,让模型直接生成结果。 简单来说就是“用语言定义任务,解放(信任)模型的预训练知识”
Few-shot思想:
Few-shot学习(Few-shot Learning)是指少样本学习,当模型在学习了一定类别的大量数据后,对于新的类别,只需要少量的样本就能快速学习,对应的有one-shot learning,单样本学习,也算样本少到为一的情况下的一种few-shot learning。
在提示词优化中: Few-shot主要用于基于少量示例,让模型参考示例回答。 简单来说就是“用示例定义任务,在模型的预训练知识的基础上,提升模型回答的对齐精度(比如参考示例的格式)”
二.Json数据格式
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。 Json是带有格式的字符串,主要用于数据交换,即程序和程序之间的信息互传,使用Json会更加方便

json.dumps(字典或列表, ensure_ascii=False):将字典或列表转换为Json字符串
ensure_ascii参数确保中文能正常显示
返回值:Json字符串
json.loads(json字符串):将Json字符串转换为Python字典或列表
返回值:Python字典 或 Python列表
三.RAG介绍
通⽤的基础⼤模型存在一些问题:
- LLM的知识不是实时的,模型训练好后不具备自动更新知识的能力,会导致部分信息滞后
- LLM领域知识是缺乏的,大模型的知识来源于训练数据,这些数据主要来自公开的互联网和开源数据集,无法覆盖特定领域或高度专业化的内部知识
- 幻觉问题,LLM有时会在回答中⽣成看似合理但实际上是错误的信息
- 数据安全性
RAG(Retrieval-Augmented Generation)即检索增强生成,为大模型提供了从特定数据源检索到的信息,以此来修正和补充生成的答案。可以总结为一个公式:RAG = 检索技术 + LLM 提示

简单来说,RAG工作分为两条线: 离线准备线 / 在线服务线

RAG 标准流程由索引(Indexing)、检索(Retriever)和生成(Generation)三个核心阶段组成。
- 索引阶段,通过处理多种来源多种格式的文档提取其中文本,将其切分为标准长度的文本块(chunk),并进行嵌入向量化(embedding),向量存储在向量数据库(vector database)中。
- 加载文件
- 内容提取
- 文本分割 ,形成chunk
- 文本向量化
- 存向量数据库
- 检索阶段,用户输入的查询(query)被转化为向量表示,通过相似度匹配从向量数据库中检索出最相关的文本块
- query向量化
- 在文本向量中匹配出与问句向量相似的top_k个
- 生成阶段,检索到的相关文本与原始查询共同构成提示词(Prompt),输入大语言模型(LLM),生成精确且具备上下文关联的回答。
- 匹配出的文本作为上下文和问题一起添加到prompt中
- 提交给LLM生成答案
四.向量的基础概念
向量(Vector)就是文本的 “数学身份证”:它把一段文字的语义信息,转换成一串固定长度的数字列表,让计算机能 “看懂” 文字的含义并做相似度计算。 简单来说,就是让计算机更方便的理解不同的文本内容,是否表述的是一个意思。
在向量匹配的过程中,如何识别2段文本是否表述相似的含义,主要可以通过如余弦相似度等算法来完成。
余弦相似度主要匹配的就是:同向(无所谓长度)
余弦相似度 两个向量的点积 ÷ 两个向量模长的乘积
如何更为精准的完成语义匹配,生成向量的维度是一个很重要的指标。
- 生成向量的维度越多,就更好的记录文本的语义特征,做语义匹配会更加精准。
- 更多的向量会在计算、存储和匹配过程中,带来更大的压力。 选择合适的向量维度需要在精确和性能之间做平衡。 一般1536维算是比较好的选择。
更多推荐



所有评论(0)