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

相关推荐
Baihai_IDP3 小时前
「DeepSeek-V3 技术解析」:无辅助损失函数的负载均衡
人工智能·llm·deepseek
山青花欲燃3104 小时前
React 对接流式接口实现
前端·llm
货拉拉技术1 天前
LLM 驱动前端创新:AI 赋能营销合规实践
前端·程序员·llm
xidianjiapei0011 天前
LLM架构解析:词嵌入模型 Word Embeddings(第二部分)—— 从基础原理到实践应用的深度探索
llm·bert·word2vec·elmo·cbow·llm架构·词嵌入模型
xidianjiapei0011 天前
构建大语言模型应用:句子转换器(Sentence Transformers)(第三部分)
人工智能·语言模型·自然语言处理·llm·transformer
白云千载尽1 天前
AI时代下的编程——matlib与blender快捷编程化、初始MCP
java·人工智能·大模型·llm·blender
浪漫程序1 天前
OWL 简明指南:快速上手
人工智能·llm·aigc
Aaaaaaaaaaayou2 天前
浅玩一下,基于 Appium 的自动化测试 AI Agent
llm·测试
爱听歌的周童鞋2 天前
理解llama.cpp如何进行LLM推理
llm·llama·llama.cpp·inference
Golinie2 天前
使用Ollama+Langchaingo+Gin通过定义prompt模版实现翻译功能
llm·prompt·gin·langchaingo