LangChain 目前不太可能被淘汰。它是 LLM 应用程序编排框架中的领导者,在提示链细节抽象、与外部 API 接口、上下文数据检索以及维持内存等方面表现出色,为业余爱好者和初创公司广泛使用,并已开始有构建的应用转入生产。
虽然 LangChain 仍是相对新的项目,一些开发者特别是 LLM 的早期采用者,更愿意在生产中切换到原生 Python 以消除额外的依赖性,但预计这种自行制作的方法在大多数用例中的使用会随时间减少,这与传统的 web 应用堆栈情况类似。
同时,高级提示词工程技术的普及促进了一系列工具和框架的发展,LangChain 已成为提示词工程工具包景观中的基石,最初专注于链条,后扩展到支持包括智能体和网络浏览功能在内的更广泛功能,其全面的功能套件使其成为开发复杂 LLM 应用的宝贵资源。
促进LLM和整合上下文数据的策略正变得越来越复杂,并且作为产品差异化的来源越来越重要。大多数开发人员通过尝试简单的提示来开始新项目,这些提示包括直接说明(零样本提示)或可能的一些示例输出(少样本提示)。这些提示通常会产生良好的结果,但达不到生产部署所需的准确性水平。下一级的提示技巧旨在将模型响应根据一些事实来源,并提供模型未被训练的外部上下文。[《](https://www.promptingguide.ai/techniques)[提示工程指南](https://www.promptingguide.ai/techniques)[》](https://www.promptingguide.ai/techniques)列出了不少于12(!)种更高级的提示策略,包括思维链、自洽性、生成的知识、思维树、方向刺激以及许多其他策略。这些策略也可以一起使用,以支持文档问题回答,聊天机器人等不同的LLM使用案例。这就是LangChain和LlamaIndex等编排框架大放异彩的地方。它们抽象出许多提示链的细节;与外部API的接口(包括确定何时需要API调用);从向量数据库检索上下文数据;并在多个LLM调用中维持内存。它们还为上述许多常见应用提供了模板。它们的输出是要提交给语言模型的一个提示或一系列提示。这些框架在想要启动应用的业余爱好者和初创公司中被广泛使用,其中LangChain是领导者。LangChain仍然是一个相对新的项目(目前版本为0.0.201),但我们已经开始看到用它构建的应用正在转入生产。一些开发者,特别是LLM的早期采用者,更愿意在生产中切换到原生Python以消除额外的依赖性。但是我们预计,这种自行制作的方法会随着时间的推移,在大多数用例中的使用会减少,这与传统的web应用堆栈有着类似的情况。
此参考架构中缺少的最重要组件是AI代理框架。[AutoGPT](https://github.com/Significant-Gravitas/Auto-GPT)被描述为“使GPT-4完全自主的实验性开源尝试”,是今年春天[历史上增长最快的Github项目](https://twitter.com/OfficialLoganK/status/1647757809654562816),实际上今天的每个AI项目或初创公司都包含某种形式的代理。与我们交谈的大多数开发人员都对代理的潜力感到非常兴奋。我们在这篇文章中描述的上下文学习模式可有效解决幻觉和数据新鲜度问题,以便更好地支持内容生成任务。另一方面,代理为人工智能应用程序提供了一组全新的功能:解决复杂的问题,解决复杂问题,对外界采取行动,以及在部署后从经验中学习。他们通过高级推理/规划、工具使用、记忆/递归/自我反思的组合来实现这一点。因此,代理有可能成为LLM应用程序架构的核心部分(如果您相信递归自我改进,甚至可以接管整个堆栈)。像LangChain这样的现有框架已经包含了一些代理概念。只有一个问题:代理还没有真正起作用。今天的大多数代理框架都处于概念验证阶段——能够进行令人难以置信的演示,但还不能可靠、可重现地完成任务。我们正在密切关注它们在不久的将来会如何发展。[heading2]展望未来[content]预训练的AI模型代表了自互联网以来软件架构的最重要的变化。他们使得个人开发者能够在几天内构建出令人难以置信的AI应用,这些应用超过了大团队花费几个月时间构建的监督机器学习项目。我们在此处列出的工具和模式可能是集成LLM的起点,而不是终点。我们将在发生重大变化时更新此信息(例如,转向模型训练)并在有意义的地方发布新的参考架构。如果您有任何反馈或建议,请联系我们。
高级提示词工程技术的普及促进了一系列工具和框架的发展,每个工具都旨在简化这些方法的实施并增强其能力。这些资源在将理论方法与实际应用之间的差距弥合方面至关重要,使研究人员和实践者能够更有效地利用提示词工程。Langchain已经成为提示词工程工具包景观中的基石,最初专注于链条,但扩展到支持包括智能体和网络浏览功能在内的更广泛的功能。它的全面功能套件使其成为开发复杂LLM应用的宝贵资源。由Microsoft提供的Semantic Kernel,提供了一个强大的技能开发和规划工具包,扩展了其实用性,包括链条、索引和内存访问。它支持多种编程语言的多功能性增强了其对广泛用户基础的吸引力。同样来自Microsoft的Guidance库,引入了一种针对提示词工程的现代模板语言,提供了与该领域最新进展对齐的解决方案。它专注于现代技术,使其成为尖端提示词工程应用的首选资源。NVidia的Nemo Guardrails专门设计用于构建Rails,确保LLM在预定义的指导方针内运行,从而增强了LLM输出的安全性和可靠性。LlamaIndex专门从事LLM应用的数据管理,为这些模型所需的数据流入提供必要的工具,简化了数据集成过程。来自Intel的FastRAG扩展了基本的RAG方法,与本文讨论的复杂技术紧密对齐,并为检索增强任务提供了优化解决方案。Auto-GPT专注于设计LLM智能体,通过其用户友好的界面和全面的功能,简化了复杂AI智能体的开发。同样,Microsoft的AutoGen因其在智能体和多智能体系统设计中的能力而受到关注,进一步丰富了提示词工程可用工具的生态系统。这些工具和框架在提示词工程的持续发展中起着重要作用,提供了从基础提示词管理到复杂AI智能体构建的一系列解决方案。随着该领域的不断扩展,新工具的开发和现有工具的增强将仍然是解锁LLM在各种应用中全部潜力的关键。