AI从头开始-黑马LongChain-RAG开发3

通用提示词模板(ZeroShot)

有了这个模板只需要定义一次,然后套格式就行,就是一套简洁模板。相比于直接使用字符串的好处就是可以组成chain链,可以询问的时候直接套用模板添加参数,很简洁。



FewShot提示词模板



字段名一定要写对,我的example_prompt,就报错了。
还有一个错误就是下面这个例子构建的时候,其实都是写的对应的参数以及值的字典,而不是前面的中文文字

下面的才是对的


有一个比较有意思的现象就是去掉to_String也可以显示,这个函数是将LangChain 返回的PromptValue 对象转换成字符串

完整代码

模板类的format和invoke方法




ChatPromptTemplate




接上输入依然正确,这里的invoke其实和前面的传参数是一样的操作,只不过这个参数是从MessagesPlaceholder中定义的,然后也是将这个参数传输给MessagesPlaceholder

需要注意的一点就是,如果我们输出最终结果的类型你会发现他其实是一个AIMessage的对象,因此这个对象如果转变格式以后拼接到history_data中就可以实现上下文的更新了

chain链



上面需要比较注意的一点就是这个'chain:RunnableSerializable =' 这一个部分,以往都是直接用chain接收chain链,但是这里给这个变量chain规定了对应的对象类型,也就是RunnableSerializable(Runnable序列化)类,这个类是Runnable类的一个子类。但是这里只是一个展示,实际写代码不需要加上这个RunnableSerializable

扩展:或运算符重写


Runnable接口

StrOutputParser字符串输出解析器


错误原因


实现

添加解释器以后可以正常运行

又因为最后model数据结果还是一个AIMessage类型,因此不能直接输出而是要调用content来提取内容。但是如果我们嫌麻烦,可以再添加一个解释器,将其转换成string就可以了

下面是我根据之前的古诗进行的修改

JsonOutputParser和多模型执行链



这个json格式其实和python字典合适是非常相近的


本节最需要注意的点有两个:第一个链中的输入输出要严格对应。第二点就是这个链中可以换用不同的模型,这样就可以实现最终的多模型

自定义函数加入链

有了这个自定义方法,我们就可以构建各种各样的自定义操作,比如各种的结果处理,以及各种的输入处理等等。





相关推荐
九硕智慧建筑一体化厂家5 分钟前
智慧建筑高效管控!楼宇自控系统赋能新能源园区智能运维
运维·人工智能·笔记·智慧城市
2601_954526751 小时前
2026 生成式搜索引擎底层技术演进与 GEO优化服务商推荐:大模型检索增强(RAG)管道与语义对齐工程实战
大数据·人工智能·搜索引擎
我有满天星辰1 小时前
Spring AI Prompt 实战:System Prompt、User Prompt 与 PromptTemplate
人工智能·spring·prompt
A15362551 小时前
WMS 仓储管理系统推荐:企业如何选适配的仓储管理系统
大数据·人工智能
学习中.........1 小时前
Transformer 训练资源估算:以 CS336 GPT-2 XL 配置为例
人工智能·python·算法·机器学习·自然语言处理
Setsuna_F_Seiei5 小时前
前端的 AI 学习之路 02 之 Provider 与 Structured Output - 规范化模型输入输出
人工智能·agent·ai编程
JavaPub-rodert6 小时前
王仕宇RAG 实战教程(二):从 0 搭建一个可运行的 RAG 知识库——Embedding、Qdrant 与问答实战
人工智能·embedding
Setsuna_F_Seiei6 小时前
前端的 AI 学习之路 01 之 Agent API 调用 - 和 Agent 的基础对话
前端·人工智能·ai编程
咔咔学姐kk7 小时前
小白程序员必收藏:轻松入门AI Agent开发,大厂校招新风口!
人工智能·深度学习·ai·程序员·大模型·就业·大模型学习
2601_967097227 小时前
园区巡检机器人推荐:4项评估维度与主流产品横评
大数据·人工智能·信息可视化