LangChain存在的问题
LangChain是一个用于开发利用大型语言模型的应用程序的强大工具。它的功能包括链接提示、利用强大的代理和将LLM与数据连接起来。
然而,在我使用LangChain的经验中,我发现直接使用OpenAI API更简单。有时,使用LangChain的过程似乎不必要地复杂和费解,使得直接与OpenAI API交互成为更有吸引力的选择。
显然,我并不是唯一有这种感受的人,在使用LangChain构建后,我在HackerNews上发现了一篇深入讨论该工具问题的帖子。
LangChain的支持者认为它有望成为基础模型的Streamlit。Streamlit是一个用于机器学习和数据科学任务的开源应用程序框架。同样,LangChain可以让工程师快速创建概念验证(POC)的演示或投资者演示。此外,如果开发人员想进一步深入,他们可以选择构建自己的堆栈,增强LangChain的实用性。
尽管有这些好处,人们也提出了一些关切。有些用户批评LangChain的不透明性,在需要深入理解一种方法时,这成为一个重要问题。此外,一行代码的使用,在能够工作时很有帮助,但当不能工作时就会成为一个相当大的障碍。
LangChain是围绕OpenAI堆栈构建的,它使用随机过程来处理一些被认为应该是确定性的任务。一个例子是LangChain使用语言模型来提供检索QA的源,而不是最接近的匹配嵌入。这种方法有时会引入不必要的复杂性。
同样,当开发人员超越原型阶段时,LangChain似乎失去了它的效力。它变得越来越抽象和主观,缺乏足够的文档来加剧这些挑战。因此,对一些人来说,LangChain有可能变成负担而不是帮助。
尽管存在这些批评,一些人认为这些问题可以迅速解决或修复。改进文档和工具的调试能力可以缓解其中一些问题。此外,虽然LangChain的Python封装可能不适用于所有项目,但它提供了许多开发人员所赞赏的便利。
我决定尝试帖子中提出的更简单的替代方案simpleaichat,并发现它非常吸引人。在接下来的几节中,我将阐述为什么我认为这个更简单的替代方案如此吸引人。
评估 SimpleAIChat
快速查看其文档后,我发现SimpleAIChat非常用户友好。为了评估其功能,我决定构建一个能够在国际象棋中与Stockfish引擎竞争的AI代理。我选择这个项目是因为我之前尝试过使用LangChain实现,结果发现它不必要地复杂。通过使用SimpleAIChat重新创建这个项目,我希望能够快速评估它的用户友好性和效率。
构建一个使用simpleaichat与Stockfish引擎对弈的AI国际象棋代理的概念确实是一个引人入胜的项目。在之前尝试使用LangChain构建它后,我决定着手进行这个项目,这是一个更具挑战性的尝试。使用simpleaichat实现它似乎是更合理的一步,以更深入地了解其用户友好性。
为了开始这个项目,有一个Stockfish引擎作为我的AI国际象棋代理的对手是至关重要的。我决定利用GPT-4作为AI的大脑,感谢它先进的语言学习模型(LLM)能力。
与之前的尝试相比,使用SimpleAIChat实现这个目标的过程非常轻松。该工具框架的透明度和简单性以及所需的代码与我使用过的其他模型形成了鲜明对比。
这是我实现的应用演示:
基于 ChatGPT 实现的国际象棋AI应用
源码下载:https://download.youkuaiyun.com/download/jkol12/88307226
这段代码实现了AI代理与Stockfish引擎之间的国际象棋对局。它收集并显示双方的走法,允许AI评估和选择走法,并评估游戏的状态以确定胜者。
多次运行这段代码产生了有趣的结果,这些结果被存储并在最后输出。
总之,这个实践表明SimpleAIChat确实是一个更易于使用和简单的开发AI应用程序的工具。通过减少与AI开发常常相关的障碍和复杂性,它实现了更简化和愉悦的项目开发。