LangChain 和 Dify 都是在 LLM 应用开发领域具有特点和优势的工具,难以简单地判断哪个更有发展前景。
LangChain 是一个编排框架,在提示链细节抽象、与外部 API 接口、从向量数据库检索上下文数据以及在多个 LLM 调用中维持内存等方面表现出色,为多种常见应用提供模板,在业余爱好者和初创公司中被广泛使用。但它目前仍是相对新的项目,且一些开发者在生产中更愿意切换到原生 Python 以消除额外依赖性。
Dify 是一个开源的 LLM 应用开发平台,具有快速部署、创意文档生成、长文档摘要、自定义 API、连接全球 LLM、更接近生产环境等优势。它允许用户编排从代理到复杂 AI 工作流的 LLM 应用,并配备了 RAG 引擎,旨在为特定行业提供聊天机器人和 AI 助手。
两者的发展前景取决于多种因素,如技术创新、市场需求、社区支持等。在不同的应用场景和需求下,它们各自都有发挥作用的空间和潜力。
LLM应用程序的上下文数据包括文本文档、PDF,甚至包括CSV或SQL表等结构化格式。这些数据的数据加载和转换解决方案在我们采访过的开发人员之间差异很大。大多数使用传统的ETL工具,如Databricks或Airflow。有些还使用编排框架中内置的文档加载器,例如LangChain(由Unstructed提供支持)和LlamaIndex(由Llama Hub提供支持)。不过,我们认为该堆栈的这一部分相对不发达,并且有机会专门为LLM应用程序构建数据复制解决方案。对于嵌入,大多数开发人员使用OpenAI API,特别是text-embedding-ada-002模型。它很容易使用(特别是如果你已经在使用其他OpenAI API),可以提供相当好的结果,并且变得越来越便宜。一些较大的企业也在探索Cohere,他们的产品工作更专注于嵌入,并且在某些场景下具有更好的性能。对于喜欢开源的开发人员来说,Hugging Face的Sentence Transformers库是一个标准。还可以根据不同的用例[创建不同类型的嵌入](https://github.com/openai/openai-cookbook/blob/main/examples/Customizing_embeddings.ipynb);这是当今的一种小众实践,但却是一个有前途的研究领域。从系统的角度来看,预处理管道中最重要的部分是向量数据库。它负责高效存储、比较和检索多达数十亿的嵌入(即向量)。我们在市场上看到的最常见的选择是[Pinecone](https://www.pinecone.io/)。它是默认设置,因为它完全由云托管,因此很容易上手,并且具有大型企业在生产中所需的许多功能(例如,良好的规模性能、SSO和正常运行时间SLA)。不过,有大量可用的向量数据库。尤其:
促进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应用堆栈有着类似的情况。
以下实例,依赖环境:CPU:Intel 13th Gen 13900KFRAM:64GB显卡:nVidia RTX 4900 24GBOS:win11 pro+WSL2+Ubuntu 20.04DifyDify.AI是一个开源的大规模语言模型(LLM)应用开发平台,它允许用户编排从代理到复杂AI工作流的LLM应用,并且配备了一个RAG引擎(Retrieval-Augmented Generation)。Dify.AI旨在为特定行业提供聊天机器人和AI助手,这些助手可以嵌入领域知识,以促进人与AI的合作。以下是Dify.AI的一些关键特性和优势:1.快速部署:用户可以在5分钟内部署定制化的聊天机器人或AI助手。2.创意文档生成:Dify.AI能够从知识库生成清晰、逻辑性强的文档,并且没有长度限制。3.长文档摘要:它能够轻松地对长文档进行摘要。4.自定义API:Dify.AI提供自定义API,可以安全地连接业务知识,解锁更深层次的LLM洞察。5.连接全球LLM:它能够连接到全球的LLM(Large Language Models)。6.生产就绪:Dify.AI比LangChain更接近生产环境。7.开源:Dify.AI是一个开源项目,这意味着它可以被社区广泛地使用和改进。可以从Dify.AI的GitHub仓库https://github.com/langgenius/dify.gi t和https://docs.dify.ai/获取开发者和用户可以找到项目的源代码、文档、安装指南、使用说明和贡献指南等资源。