跳转到主要内容

【LLM】LangChain整合Gradio和LLM代理

编者按:这是Gradio的软件工程师Freddy Boulton的一篇客座博客文章。我们很高兴能分享这篇文章,因为它为生态系统带来了大量令人兴奋的新工具。代理在很大程度上是由他们所拥有的工具定义的,所以能够为他们配备所有这些gradio_tools对我们来说是非常令人兴奋的!

重要链接:

大型语言模型(LLM)给人留下了深刻的印象,但如果我们能赋予它们完成专门任务的技能,它们可以变得更加强大。

【LLM】RecAlign-社交媒体订阅源的智能内容过滤器

【编者按】这是田进的客串文章。我们强调这个应用程序,因为我们认为它是一个新颖的用例。具体而言,我们认为推荐系统在我们的日常生活中具有难以置信的影响力,关于LLM将如何影响这些系统,目前还没有大量的讨论。

我们都经历过使用推荐系统的痛苦:你注册了推特来跟上最新的人工智能研究,但点击一个有趣的模因会让你的时间线充满类似的分心。这些系统的作用是最大限度地提高所有者的利润,而不是你的福利。在这里,我们概述了我们以LangChain为动力的解决方案背后的基本原理,以解决其核心问题。

透明度和可配置性

在布莱恩·克里斯蒂安(Brian Christian)的《结盟问题》(the Alignment Problem)一书中,他分享了一则轶事:他的朋友正在从酒精成瘾中恢复,但推荐系统可能有点太了解他对酒精的热爱,并在他的推送中充斥着酒精广告。这一集生动地说明了一个反复出现的问题——推荐系统善于迎合我们今天的样子,但几乎没有给我们留下什么自由来决定我们想要成为什么样的人。目前的推荐系统缺乏透明度和可配置性。因此,我们很难识别推荐系统对我们的偏好做出的任何有问题的推断,更不用说修改它们了。

【LLM】LangChain 利用上下文压缩改进文档检索

注意:这篇文章假设你对LangChain有一定的熟悉程度,并且是适度的技术性文章。

💡 TL;DR:我们引入了新的抽象和新的文档检索器,以便于对检索到的文档进行后处理。具体来说,新的抽象使得获取一组检索到的文档并仅从中提取与给定查询相关的信息变得容易。

介绍

许多LLM支持的应用程序需要一些可查询的文档存储,以便检索尚未烘焙到LLM中的特定于应用程序的信息。

假设你想创建一个聊天机器人,可以回答有关你个人笔记的问题。一种简单的方法是将笔记嵌入大小相等的块中,并将嵌入的内容存储在向量存储中。当你问系统一个问题时,它会嵌入你的问题,在向量存储中执行相似性搜索,检索最相关的文档(文本块),并将它们附加到LLM提示中。

langchain

A simple retrieval Q&A system

【LLM】LangChain 自治代理和代理模拟

在过去的两周里,以代理方式使用LLM的人数大幅增加。具体来说,像AutoGPT、BabyAGI、CAMEL和Generative Agents这样的项目已经出现。LangChain社区现在已经在LangChain框架中实施了所有这些项目的一些部分。在研究和实施这些项目时,我们试图最好地了解它们之间的区别以及每个项目的新颖之处。这个博客是对我们所学知识的解释。

注意:这是一个相当技术性的博客。它假设对LangChain和这些相关项目有一定的熟悉程度。如果你不熟悉这些项目,读一篇更具介绍性的文章(比如索菲亚·杨的这篇精彩的文章)可能会有所帮助。

TL;DR:

  • “自主代理”项目(BabyAGI、AutoGPT)的长期目标在很大程度上是新颖的,这需要新型的规划技术和不同的内存使用。
  • “代理模拟”项目(CAMEL,Generative Agents)在很大程度上是新颖的,因为它们的模拟环境和基于事件反映和调整的长期内存。

我们还讨论了我们在LangChain框架中复制的每个项目的哪些部分,以及我们为什么选择这些部分。在LangChain框架中实现这些功能有以下好处:

【LLM】人工智能驱动的医学知识:罕见疾病护理的革命性变革

[编者按]:这是杰克·西蒙的客串帖子,他最近参加了威廉姆斯学院的黑客马拉松。他构建了一个由LangChain驱动的聊天机器人,重点关注阑尾癌症,旨在让有需要的人更容易获得专业知识。如果你有兴趣为另一种罕见的情况构建聊天机器人,请联系jms9@williams.edu.

我们之所以强调这一点,是因为我们认为这是问答系统的一个极好且不受重视的用例。虽然底层技术可能与其他问答应用程序类似,但我们发现这种用例对社会的影响特别大。

上周,我参加了威廉姆斯学院的一场黑客马拉松,在那里我建立了一个聊天机器人,它改变了我们获取罕见疾病信息的方式。通过结合文献综述、临床试验数据和学术论文,我创建了一个由LangChain驱动的聊天机器人,它可以提供有关一种特殊罕见疾病——阑尾癌症的宝贵信息。

 


虽然这个演示侧重于一种罕见的疾病,但我计划通过添加尽可能多的罕见疾病信息来扩展聊天机器人的知识库。最终愿景是创建一个人工智能驱动的应用程序,为患者和医疗保健专业人员提供可靠的信息来源。

【LLM】用LangChain进行问答任务的自动评估

上下文

LLM操作平台,如LangChain,可以很容易地将LLM组件(例如,模型、文档检索器、数据加载器)组装到链中。问答是这些链中最受欢迎的应用之一。但是,确定哪些参数(例如,块大小)或组件(例如,模型选择、VectorDB)产生最佳QA性能通常并不总是显而易见的。

在这里,我们介绍了一种用于评估QA链的简单工具(请参阅此处的代码),称为自动评估器

【LLM】宣布LangChainJS支持多种JS环境

TLDR:我们宣布支持在浏览器、Cloudflare Workers、Vercel/Next.js、Deno、Supadase Edge Functions中运行LangChain.js,同时支持Node.js ESM和CJS。请参阅安装/升级文档和中断更改列表。

上下文

最初,我们将LangChain.js设计为在Node.js中运行,Node.js是长期存在的服务器端JavaScript运行时。早在二月份(时间过得很快!),我们就开始从社区收集关于我们应该支持哪些其他JS运行时的反馈,并从那时起收到了大量关于让LangChain在浏览器、Deno、Cloudflare Workers、Vercel/Next.JS、Vite、Supadase Edge Functions等上运行的请求。

更改以启用多个环境

从那以后,我们一直在与社区贡献者一起,为尽可能多的JS环境提供支持,这一过程中有一些亮点

【LLM】LangChain 支持 Supabase

Suabase本周将举办一场人工智能黑客马拉松。在LangChain,我们是Suabase和黑客马拉松的忠实粉丝,所以我们认为这将是一个完美的时机来强调您可以同时使用LangChain和Suabase的多种方式。

我们之所以如此喜欢Supadase,是因为它在多种不同方面都很有用。构建有趣的人工智能应用程序的一个重要部分是将GPT-3等模型与您的个人数据连接起来。因此,通过这种方式,Suabase支持的不同类型的数据库非常有用。但是,在您构建了应用程序之后,您还需要一种与世界共享应用程序的方式——Suabase也可以提供帮助。

Suabase矢量存储

人们一直在构建的人工智能应用程序的主要类型之一是与文档数据“聊天”的方式。基本上是ChatGPT,但它知道特定数据的信息,无论是你的个人写作还是一个深奥的网站。有关这种类型的应用程序的深入教程,请参阅此博客。这个应用程序的很大一部分是将文档的嵌入存储在向量库中。苏巴斯可以做到!有关如何执行此操作的演练,请参阅此处的文档。

【LLM】LangChain自定义代理

我们听到的最常见的要求之一是为创建自定义代理提供更好的功能和文档。这一直有点棘手,因为在我们看来,实际上还不清楚“代理”到底是什么,因此它们的“正确”抽象可能是什么。最近,我们感觉到一些抽象开始融合在一起,所以我们在Python和TypeScript模块上做了一个大的努力,以更好地执行和记录这些抽象。请参阅下面的技术文档链接,然后是我们介绍的抽象和未来方向的描述。