HuggingFists-低代码玩转LLM RAG(2) --Query(2)

继上一篇文章我们介绍合并检索语料,使用简单Prompt实现LLM RAG的查询后。HuggingFists又增加了对通义千问的会话访问模式(注:这功能需要等下周发版后才能试用了)。如我们在上篇文章中提到的,当文本非常大时,通过简单Prompt处理检索结果回答问题的方案就无法胜任了。在此,我们给出一个会话模式的检索解决方案。下面是多轮会话模式的实现流程:

问题检索流程图

该流程由7个算子组成,比简单Prompt的流程少了一个聚合算子。其前五步与简单Prompt流程一致,在此我们就不赘述了。下面我们着重介绍一下第6、7两步。

6.大文本大语言模型提示: 该算子支持复杂提示模板,能够将输入的数据流分成多段输出到大语言模型。以下是我们预先预置到HuggingFists提示库中的提示模板,见下图:

复杂提示模板

复杂提示模板分成三段,分别是"前置提示"、"提示"与"后置提示"。当算子从输入端口接到第一条记录时,会用记录中的信息替换"前置提示"中的变量,然后将其作为Prompt输出给大语言模型。同时,会继续使用该记录替换"提示"中的变量,并将其输出给大语言模型;随后,其继续读取输入的记录,替换"提示"中的变量,输出到大语言模型;持续以上过程,直到最后一条记录输入时,算子用这条记录替换"后置提示"中的变量,并将其输出。该算子的变量替换方式与配置方式与上篇文章介绍到的"大语言模型提示"算子一致。配置界面如下图:

大文本大语言模型提示

检索结果

流程执行时,流入该算子的检索结果如上图。根据我们描述的算子工作机制,这两条输入信息最终会生成三条Prompt输出到大语言模型。下面我们看看步骤7的算子,如何接收Prompt,并按我们的预期给出问题答案的。

阿里会话大模型

7.阿里会话大模型:该算子支持了通义千问大模型的多轮会话接口,即每次调用接口时,会将会话过程中的交互记录同步传输给大模型,大模型使用这种短期记忆模式回答相关的问题。很明显,该模式会大量的消耗tokens额度,会超越我们的第一个技术方案,因为每次调用接口都会加上前一次的会话内容,使得请求越来越大。但我们也看到业界有一些缩减会话大小的技巧,在此我们不展开讨论,有兴趣的朋友可以自行查阅。其配置界面如上图,一般情况下只要为其设置通义千问访问账号即可,其它参数缺省不用调整。下面我们看一下其结果输出。

提示与回答

API请求参数

如"提示与回答"图所示,流程输出给通义千问三个Prompt,前两个Prompt大模型按照预期没有回答问题,并确认收到信息。在第三个提示输入后,其按照记忆给出了问题的答案,答案与方案一执行时获得的答案一致,回答成功。那么算子是如何提交会话信息,帮助通义千问实现短期记忆的呢?通过"API请求参数"的图片我们能够看到,历史的会话信息按照API接口的约定,每次都通过messages参数传递给了大模型。每次请求都会多一组上一轮的对话信息。

至此,我们基本介绍完了如何使用HuggingFists落地RAG的场景。留下的如何通过外部调用驱动流程执行的坑,我们将在介绍完如何使用HuggingFists实现Agent后再回来填。

相关推荐
数据智能老司机7 小时前
Spring AI 实战——提交用于生成的提示词
spring·llm·ai编程
数据智能老司机8 小时前
Spring AI 实战——评估生成结果
spring·llm·ai编程
大模型教程10 小时前
从 RAG 到 CAG:AI 正在超越“检索”,学会“融会贯通”!
程序员·llm·agent
大模型教程10 小时前
传统RAG的局限被打破!三个轻量级智能体分工协作,如何让问答系统更精准?
程序员·llm·agent
AI大模型10 小时前
大模型入门第一课:彻底搞懂Token!
程序员·llm·agent
AI大模型10 小时前
大模型入门第二课:初识Embedding——让文字拥有"位置"的魔法
程序员·llm·agent
一 铭10 小时前
Claude Agent Skills:一种基于 Prompt 扩展的元工具架构
人工智能·大模型·llm·prompt
常先森11 小时前
【解密源码】 RAGFlow 切分最佳实践- naive parser 语义切块(markdown 篇)
架构·llm·agent
大千AI助手11 小时前
SPT:选择性提示调优——让模型自动学习最佳提示插入策略
人工智能·神经网络·llm·提示词·大千ai助手·spt·选择性提示调优
智泊AI14 小时前
一文讲清:Embedding向量嵌入是什么?
llm