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后再回来填。

相关推荐
爱喝白开水a3 小时前
关于大模型在企业生产环境中的独立部署问题
人工智能·深度学习·llm·大语言模型·ai大模型·计算机技术·本地部署大模型
Langchain4 小时前
不可错过!CMU最新《生成式人工智能大模型》课程:从文本、图像到多模态大模型
人工智能·自然语言处理·langchain·大模型·llm·大语言模型·多模态大模型
幽影相随5 小时前
构建llama.cpp并在linux上使用gpu
llm·llama.cpp
AAI机器之心6 小时前
LLM大模型:开源RAG框架汇总
人工智能·chatgpt·开源·大模型·llm·大语言模型·rag
网安-搬运工12 小时前
RAG再总结之如何使大模型更好使用外部数据:四个不同层级及查询-文档对齐策略
人工智能·自然语言处理·大模型·llm·大语言模型·ai大模型·rag
大模型八哥12 小时前
大模型扫盲系列——大模型实用技术介绍(上)
人工智能·程序人生·ai·大模型·llm·llama·ai大模型
我爱学Python!1 天前
基于 LangChain 的自动化测试用例的生成与执行
人工智能·自然语言处理·langchain·自动化·llm·测试用例·大语言模型
牛右刀薛面2 天前
launcher.py: error: the following arguments are required: --output_dir
llm·sft·llamafactory
JasonLiu19192 天前
论文推荐 |【Agent】自动化Agent设计系统
人工智能·自动化·llm·agent·智能体