老铁们,今天咱们聊聊关于迁移从RetrievalQA
到LCEL
这个新技术栈的实战经验。随着AI的快速发展,我们的工具也需要不断革新和优化,那么说白了,就是为了让我们在应用中能有更好的表现和更高的灵活性。
技术背景介绍
RetrievalQA
链是在一个数据源上使用增强型生成的自然语言问答系统。这个老方法已经在许多项目中得到应用,但为了实现更高的定制化和更高效的操作,我们考虑迁移到LCEL
实现。
迁移到LCEL
的几个优势包括:
- 更易于定制化:通过特定的参数,我们可以在细节上进行更深度的定制。
- 返回源文件更简单:能更方便地获取问题答案所用的数据源。
- 支持可运行的方法:包含流式传输和异步操作,这波操作可以说是相当丝滑。
原理深度解析
在使用LCEL
时,我们需要理解内部的工作机制,比如如何检索、格式化文档并通过提示发给LLM(大语言模型)。虽然LCEL实现更为详尽,但它提供了一个灵活的架构。我们可以利用这个灵活性构建自己的辅助函数或采用更高级别的工具方法,如create_retrieval_chain
和create_stuff_documents_chain
。
实战代码演示
下面的代码展示了如何在两个方法中实现相同的问答功能。