大语言模型(Large Language Model,LLM,也称为大模型)以卓越的自然语言处理能力,正引领着人工智能(Artificial Intelligence,AI)技术变革的新浪潮。作为大模型应用的一个重要分支与形态,检索增强生成(Retrieval-Augmented Generation,RAG)在智能搜索、智能问答、智能客服、数据分析及AI智能体等多个领域展现出了巨大的应用前景。
RAG可以很简单。RAG的基础技术原理可以用几句简单的话描述。你可以使用低代码开发平台或者成熟的大模型应用开发框架在几分钟之内开发出一个可以演示的原型应用。RAG也可以很复杂。当把一个RAG应用真正投入生产,特别是在企业级应用环境中业务需求与数据复杂性都有了数量级的提升,面临着更高的准确性与可用性等工程化要求时,你可能会发现原型应用与生产应用之间有巨大的鸿沟,会面临诸如数据形态多样、检索不够准确、模型输出时好时坏、用户提问千奇百怪、端到端响应性能不足等各种在原型应用演示中不会出现的问题。
所以,对于广大开发者而言,如何高效地设计、开发、部署并优化“生产就绪”的企业级RAG应用仍然充满挑战。因此,我衷心地希望本书为有志于探索大模型应用世界并充满热情的开发者抛砖引玉,提供一份较为详尽的开发 RAG应用的指南,助力他们在这次技术变革中乘风破浪。
本书的内容基于AI开发的首选语言Python,并选择侧重于RAG领域的主流开发框架LlamaIndex作为基础框架。两者丰富的工具资源和强大的社区支持,为RAG应用开发提供了得天独厚的条件,大大减少了“重复造轮子”的时间。需要说明的是,尽管我们的开发技术与样例是基于Python与LlamaIndex框架介绍的,但书中绝大部分关于RAG的思想、原理、架构与优化方法都是通用的,你完全可以使用其他语言与框架实现相同的功能。
当然,随着技术的不断进步和应用的深入拓展,新理论、新方法、新技术层出不穷。我衷心希望本书能够作为一个起点,激发你对大模型应用开发技术的兴趣与探索欲,也期待未来能够有更多的学者、专家从事这一领域的研究,共同推动大模型应用的落地与演进,为人工智能的未来贡献更多的智慧与力量。