RAG和Agent学习

pip install openai -i Simple Indexhttps://pypi.tuna.tsinghua.edu.cn/simple

提示词工程

是指在不更新模型权重的情况下如何与大模型交互以引导其行为以获得所需结果的方法

prompt是指用户给大型语言模型发出的指令

技巧一:详细描述

技巧二:让模型充当某个角色

技巧三:使用分隔符标明输入的不同部分

技巧四:对任务指定步骤

技巧五:提供例子

技巧六:基于文本文档,辅助大模型问答,降低模型幻觉问题

Zeor-shot思想

在训练阶段不存在与测试阶段完全相同的类别,但是模型可以使用训练过的知识来推广到测试集中的新类别上,这种能力被称为零样本学习,因为模型在训练时从未见过测试集中的新类别,在模型训练和提示词优化中均有体现

few-shot思想

少样本学习,当模型在学习了一定类别的大量数据后,对于新的类别,只需要少量的样本就能快速学习,对应的有one-shot learning,单样本学习,也算样本少到为1的情况下的一种few-shot learning

LangChain

是围绕大语言模型建立的一个框架,自身并不开发LLMs,核心理念是为各种LLMs实现通用的接口,把LLMs相关的组件链接在一起,简化LLMs应用的开发难度,方便开发者快速地开发复杂的LLMs应用

下载相关依赖

模型支持

LangChain目前支持三种类型的模型:

LLMs:是技术范畴的统称,指基于大参数量、海量文本训练的Transformer架构模型,核心能力是理解和生成自然语言,主要服务于文本生成场景

聊天模型:是应用范畴的细分,是专为对话场景优化的LLMs,核心能力是模拟人类对话的轮次交互,主要服务于聊天场景

文本嵌入模型:文本嵌入模型接收文本作文输入,得到文本的向量

聊天模型包含下面几种类型:AIMessage:就是ai输出的消息,可以是针对问题的回答

HumanMessage:人类消息就是用户消息,由人给出的信息发送给LLMs的提示信息,比如“实现一个快速排序方法”(OpenAI库中的uesr角色)

SystemMessage:可以用于制定模型具体所处的环境和背景,如角色扮演等。你可以在这里给出具体的指示,比如“作为一个代码专家”,或者“返回json格式”

消息的简写形式

提示词优化

LangChain提供了PromptTemplate类,用来协助优化提示词,PromptTemplate表示提示词模板,可以构建一个自定义的基础提示词模板,支持变量的注入,最终生成所需的提示词

zero-shot思想下,可以基于PromptTemplate直接完成,few-shot思想下,需要更换为FewShotPromptTemplate

使用Template模板类,支持LangChain框架的链式调用,后续可以实现Runnable接口

chain链

「将组件串联,上一个组件的输出作为下一个组件的输入」是 LangChain 链(尤其是管道链)的核心工作原理,这也是链式调用的核心价值:实现数据的自动化流转与组件的协同工作。

核心前提:即 Runnable 子类对象才能入链(以及 Callable、Mapping 接口子类对象也可加入)。

通过stream或者invoke触发整个链的执行

RAG

通用大模型存在问题

1.LLM知识不是实时的,模型训练好后不具备自动更新知识的能力,会导致部分信息滞后

2.LLM领域知识缺乏,大模型的知识来源于训练数据,这些数据主要来自公开的互联网和开源数据集,无法覆盖特定领域或高度专业化的内部知识

3.幻觉问题,LLM有时会在回答中生成看似合理但实际上是错误的信息

4.数据安全性

RAG架构

RAG检索增强生成,为大模型提供了从特定数据源检索到的信息,以此来修正和补充生成的答案。

RAG=检索技术+LLM提示

在用户将问题交给模型前,会现在数据库中进行检索,将相关信息一起交给大模型

线上用户提问从数据库检索数据

离线不断的获取数据,向量化,然后存入数据库中

RAG流程

索引阶段:通过处理多种来源多种格式的文档提取其中文本,将其切分为标准长度的文本块,并进行嵌入向量化,向量存储在向量数据库中

检索阶段:用户输入的查询被转化为向量表示,通过相似度匹配从向量数据库中检索出最相关的文本块

生成阶段:检索到的相关文本与原始查询共同构成提示词,输入大语言模型,生成精确且具备上下文关联的回答。

模型本质上就是用户输入,模型输出,用户能做的就是在输入上下功夫

RAG就是在向模型提问前基于已有的知识库或文档内容做检索,确保向模型提问的内容更精准以及包含足够的信息量用以提供给模型

RAG核心价值

解决知识时效性问题

降低模型幻觉

无需重新训练模型

向量

向量就是文本的数字身份证,它把一段文字的语义信息,转换成一串固定长度的数字列表,让计算机能看懂文字的含义并做相似度计算

文本嵌入模型通过深度学习等技术,从文本提取语义特征并映射为固定长度的数字序列

text-embedding-v1模型将文本映射到1536个维度上

向量匹配通过算法实现,如余弦相似度

向量的维度表示一段文本在多个抽象语意特征方面的强度,维度代表模型用多少个抽象语义特征来描述文本,维度越多,语义匹配越精准,但性能压力也会增大

余弦相似度

两个向量的点积比两个向量的模长的乘积

Agent

智能体是一种能够自主规划、决策、执行任务的组件,核心是让大语言模型根据任务需求,选择并调用工具,完成单靠模型自身无法解决的复杂问题

没有agent时,llm只能基于自身训练数据回答问题,遇到需要实时数据、复杂计算、外部工具调用的场景就会卡壳

有了agent后,llm就像一个“指挥官”,能思考任务步骤,选择合适工具,执行工具调用,根据结果调整策略,直到完成任务

agent智能体=大语言模型(大脑)+工具集(手脚)+决策逻辑(思维)

能让大模型从只会回答升级为会做事的智能助手

agent样例

输出:

ReAct架构

Agent ReAct是大模型智能体的核心思考与行动框架,全称Reasoning + Acting(推理 + 行动),是让Agent像人类一样「思考问题→制定策略→执行行动→验证结果」的关键逻辑。

简单来说:ReAct让Agent不再是“直接回答问题”,而是通过“自然语言思考过程”指导工具调用,一步步解决复杂问题,完美适配需要多步推理、工具协作的场景(如智能客服、报告生成、任务规划等)。

MiddleWare中间件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值