使用 Winglang 和 LangChain 构建云原生电子表格 Copilot
人们对打造“人工智能副驾驶”的兴趣比以往任何时候都高:
注意:Copilot 是一款 AI 应用,用户可以使用自然语言提问,并获得针对其具体情境的回复。具体情境可以是仪表板中的详细信息、编辑器中的代码等等。
几乎每家科技公司都希望将人工智能融入到自己的产品中。
因此,了解这些应用程序的构建工作流程以及支持它们的常用技术变得至关重要。
因此,在本文中,我们将构建一个具有用户交互功能的 AI 驱动的电子表格副驾驶。
这是我们将要使用的工具堆栈:
我们将使用 React 框架 Next.js 构建电子表格聊天机器人应用程序的 UI。
我们将使用 WingLang 的云功能。
我们将使用 LangChain 与 LLM 提供商进行互动。
让我们开始吧!
使用 LangChain + Winglang 的应用程序工作流程
上图提供了应用程序工作流程的高级概述:
- 用户将在聊天机器人界面输入提示,例如:
- 为 Sara 添加一行,其年龄为 29 岁,从事销售工作。
- 为年龄 25 岁、从事市场营销工作的 Arya 添加一行。
- 该提示将作为 LLM 模型的输入通过 LangChain 发送到 LLM 提供商,例如 OpenAI 的 GPT-3.5 或 GPT-4,在那里它将执行函数调用。
- 该模型将提供 JSON 响应,该响应将显示在应用程序的前端给用户。
- 此外,LLM 的响应对象也将存储在带有 Wing 的云存储桶中,这样我们就不会局限于单个云提供商,并且可以在需要时迁移到其中任何一个。
完毕!
LangChain 集成演练
现在,让我们看一下将 LangChain 可运行对象和链集成为 REST API 功能的实现。
首先,从 long-chain/runnable/remote 导入远程可运行程序。
接下来,我们定义remoteChainToAction
如下所示的函数,它允许我们将使用 LangChain 构建的 LLM 链部署为服务器端的 REST API,并在客户端作为远程可运行对象调用。
以下是上述代码的细分:
- 该函数接受一个 LangChain 链对象作为参数。
- 它使用链 URL 和处理程序函数创建一个可运行的程序,如第 5 行所示。
- 在第 13 行,如果未提供参数,它会推断并设置参数。
接下来,从第 14 至 28 行(如下所示),它将链对象转换为后端操作对象,该对象将使用提供的输入调用 LangChain 服务。
快完成了!
最后,我们使用 Winglang 将从 LLM 收到的输出存储在存储桶中,如下所示:
首先,Winglang 是一种开源编程语言,它通过定义标准基础设施 API 来消除云提供商之间的差异。
换句话说,Winglang 提供了所有提供商通用的 API。
例如,在 Winglang 中定义数据存储桶时,我们不会专门针对应用程序代码使用“S3 Bucket”或“Blob 存储”或“Google Cloud Storage”之类的名称。
相反,我们有一个通用的抽象概念,叫做“Bucket”,我们针对这个“Bucket”类实现了特定的应用程序代码。这些代码可以被编译并部署到任何云提供商。
相同的抽象适用于所有特定于云的实体,如功能、队列、计算单元等。
在 Winglang 中开发应用程序后,我们定义的整个应用程序代码和基础设施可以通过一行命令编译到任何云提供商,Winglang 负责所有后端程序。
这样,人们就可以只关注应用程序逻辑以及他们的应用程序如何与基础设施资源交互,而不是云平台的特性。
我们已经完成了高层实施细节。
回顾一下,我们将 LangChain 链对象转换为一个动作对象,以便后端可以使用该对象集成远程 LangChain 进程,进而调用远程服务来处理输入数据并返回结果。最后,我们将 LLM 的响应存储到 Winglang 中定义的云存储桶中。
电子表格副驾驶演示
这部分我们来做一个AI副驾驶的demo。
这是我们使用 Next.js 框架构建的电子表格聊天机器人,我们可以通过在聊天中输入提示来执行多项操作,例如添加行、删除行、乘以值或在日期后添加月份,类似于 Excel。
让我们输入这个提示:“为 Sara 添加一行,年龄为 29 岁,从事销售工作。 ”

我们在几秒钟内就得到了期望的结果。
接下来,我们输入这个提示:“删除包含 Sara 信息的行。 ”

如上所示,包含 Sara 信息的行已被删除。
就是这样!
这就是我们如何利用上述底层架构在 LLM 之上构建我们的 AI 驱动的应用程序。
结论
至此,我们来到了本文的结尾,我们学习了如何构建由 Winglang 和 LangChain 驱动的 AI 副驾驶。
回顾一下:
- 我们使用 React 框架 Next.js 构建了电子表格聊天机器人应用程序的 UI。
- 我们使用 WingLang 来实现云功能。
- 我们使用 LangChain 与 LLM 提供商进行互动。
...所有这些只需几行代码即可实现。
请继续关注人工智能和云计算方面的更多见解和发展。
感谢阅读!
鏂囩珷鏉ユ簮锛�https://dev.to/winglang/building-a-cloud-native-spreadsheet-copilot-with-winglang-and-langchain-68h