Empowering Development with FlowTestAI: Bridging APIs and LLMs for Enhanced Testing and Privacy

利用 FlowTestAI 赋能开发:连接 API 和 LLM,增强测试和隐私保护

7 分钟阅读

编者按:我们很高兴重点介绍 FlowTestAI 的这篇博客。FlowTestAI 是一家基于 LangChain 构建的令人兴奋的初创公司。具体来说,他们致力于实现通过 LLM 轻松访问 API。通过 LLM 与 API 交互是 LangChain 的一个重要用例,因此我们很高兴展示这在生产应用程序中的应用情况。

当独立的 API 连接在一起时,它们会变得非常强大。几乎每一次在线互动,无论是涉及外部客户、内部使用还是例行的端到端测试,本质上都构成了一个由相互连接的 API 组成的流程。这种互联性构成了数字产品体验的支柱。

与 API 的能力并行,大型语言模型 (LLM) 展现出卓越的推理能力,与人类在解决问题时的迭代思维过程非常相似。这种迭代改进理解和响应的能力,使 LLM 成为计算推理中强大的工具,尤其是在参与作为流程的重复迭代时。

FlowTestAI 介绍:

我们创新的核心在于协同这两个强大领域的使命。FlowTestAI 是世界上首个 GenAI 驱动的开源集成开发环境 (IDE),专为创建、可视化和管理 API 优先工作流程而设计。FlowTestAI 以其速度快、轻量级架构和本地操作为特点,在促进 API 优先工作流程的无缝集成同时,保障隐私。

解决测试难题

测试仍然是产品开发中至关重要但又分散的环节。缺乏全面而强大的端到端测试会严重危害产品的完整性,减慢开发速度。

从根本上说,端到端测试不过是 API 优先工作流程。理想的框架应允许快速、直接地生成这些工作流程,并对其进行无缝管理,同时不牺牲效率。然而,目前的实践却充斥着过多的样板代码、繁琐的管理层,并且与实际的开发实践脱节。这导致了缓慢而复杂的端到端测试,严重阻碍了开发速度。

高效的测试还需要安全地访问和管理敏感信息,例如访问 ID 和密钥。不幸的是,目前的状况缺乏一种能够确保此领域安全的工具。使用 Postman 等传统平台输入凭据会使它们面临潜在风险。更糟糕的是,缺少一个专门的环境供开发人员安全地测试开发中或私有 API。与凭据一样,将这些 API 引入常用的在线工具会无意中带来泄露风险。这种差距突显了对一种解决方案的需求,该解决方案需要提供一个安全的本地沙箱用于测试,避免与当前方法相关的漏洞。

FlowTestAI 的方法

FlowTestAI 旨在利用 LLM 的推理能力、git(或任何版本控制系统)的组织效用以及图数据表示的结构优势,彻底革新 API 优先工作流程的生成和管理。

  1. 生成:用自然语言描述您的工作流程,我们的平台将在几秒钟内将其转换为可运行的 API 优先工作流程。或者,使用来自 OpenAPI 规范的节点拖放功能来构建您的工作流程。
  2. 管理:FlowTestAI 模仿传统 IDE 的功能,将所有内容存储和管理在您的本地文件系统中。组织可以进一步使用任何与 git 兼容的工具或版本控制系统进行协作。
  3. 隐私:由于所有内容都本地化到您的文件系统,FlowTestAI 能够安全地使用私有或开发中的 API 端点,而没有风险。该平台在本地安全地存储凭据,确保它们免受外部威胁。
  4. 可视化:通过提供 API 优先工作流程的无代码图形化表示,FlowTestAI 消除了测试团队和开发团队之间的脱节,为整个组织培养了统一的观点或单一的事实来源,从而有助于加快开发速度。
  5. 速度:FlowTestAI 输出的 API 优先工作流程不包含任何样板代码或不必要的代码。这缩短了执行时间,从而提高了开发速度。

未来展望

将端到端测试(重新)构想为 API 优先工作流程仅仅触及了表面。该工具的设计尽可能通用。人们可以创建任何 API 优先工作流程,并可以自动化该流程以定期运行。例如,想象一下这样一个工作流程:在 JIRA 中检查前 10 个客户支持工单,将其发送给 ChatGPT 进行总结,并每天发布到 Slack 频道中,供工程团队确定优先级。

由于这个项目是免费和开源的,任何人都可以创建和提交具有自定义逻辑的自定义节点,您认为这很有用,并与社区分享。您还可以创建自定义流程并提交供他人使用。例如,一个自定义流程可以将 LLM 输出作为输入,将其发送到 AWS 或 Azure 上托管的情感分析工具的 API,检查输出的正面评分是否大于 0.7,然后才将该输入转发到图的其余部分或最终用户。

将每个工作流程想象成一个实用程序,可以被使用并嵌套在其他工作流程中。

FlowTestAI 的工作原理

FlowTestAI 主要由两部分组成:

体验

对于体验,我们提供集成开发体验 (IDE),就像 VS Code、IntelliJ 等一样,以 Electron 应用程序的形式提供。一切都在本地工作,双向通信就像传统的 IDE 一样。您在我们的 IDE 中执行的任何 CRUD 操作都会在本地磁盘上更新,类似地,本地磁盘的更改也会反映在我们的 IDE 中。以下是它的外观:

以下是它的工作原理:

AI

我们的管道中有三个主要阶段:

预处理

这就是 LangChain 对我们来说是一个福音的地方。让我们首先了解问题。OpenAPI 规范非常庞大,包含数千个 API(也称为函数),而目前的 LLM 只能将有限数量的函数作为参考输入,例如 OpenAI GPT 3.5 Turbo 只能接受 128 个函数作为输入。

因此,我们首先解析出规范中定义的每个 API 的 {API_NAME, API_DESCRIPTION},并构建这个大型文档。使用 LangChain 开箱即用的文本分割器,我们将此文档分割成 n 个大小的块,具体取决于 LLM 的容量。如果我们以上述 GPT 3.5 Turbo 为例,我们将其分成 32 个大小的块,即每个块包含 32 个函数。接下来,我们使用 LangChain 对 OPENAI 嵌入 API 的封装器来嵌入每个块,并将所有这些块存储在 LangChain 开箱即用提供的内存向量数据库中。

通过执行上述操作,我们基本上重新构想了 RAG 问题,该问题主要用于文本输入,现在用于结构化函数。

处理

接下来,我们获取用户提示,并针对 LangChain 驱动的内存向量数据库执行相似性搜索,我们在其中存储了所有小块。我们提取 m 个文档,使得 n x m 满足 LLM 的输入限制。因此,以前面的示例为例,我们将提取 4 个文档,使得 32 x 4 = 128。

接下来,我们将这 n x m 个函数和用户指令作为输入提供给 LLM。我们迭代地执行此过程,直到确定不再需要执行进一步的操作。每次迭代都会输出一个函数调用。

后处理

接下来,我们获取上一步中输出的函数调用集并执行后处理。我们设置了适当的 GUARDRAIL,以确定 LLM 是否在流程的任何步骤中产生幻觉,如果产生幻觉,我们会过滤掉输出的该部分,以免误导用户。然后,我们获取每个有效的函数调用,解析它,并将其转换为我们的内部图节点,为 API 调用所需的查询参数、请求体等分配适当的值。最后,我们将它们链接起来以形成可运行的工作流程。

需要注意的一些要点:

  1. Langchain 开箱即用地提供了如此广泛的 LLM 管道构建领域,这使得只需几行代码即可轻松地在内存向量数据库中分割、嵌入、存储和搜索数据。🖖
  2. 我们向 LLM 传递非常有限但足够的信息,以避免向 LLM 泄露过多信息,尤其是在不希望过多暴露其 API 规范的用户的情况下。
  3. 一旦我们从 LLM 获得输出,它将被解析、链接并呈现为用户可运行的图,其中每个节点代表带有预填充查询或路径参数或请求体的 API 请求,每条边代表下一个操作。用户现在可以运行、修改和保存它。
  4. LLM 有时会产生幻觉,我们设置了适当的保护措施,以确保如果 LLM 产生幻觉,我们会过滤掉输出的该部分。
  5. 我们正在努力集成其他 LLM,如 Gemini 等。
  6. 我们很快将推出 AI 驱动的生成日志摘要功能,当您运行工作流程时,可以轻松发现流程中断的位置。

演示

步骤 1:选择模型为 OPENAI 并添加您的指令

步骤 2:点击“生成”,将输出一个可运行的图,其中 API 请求链接在一起,并注意每个请求都预先填充了正确的请求参数和请求体

步骤 3:点击“运行”,查看每个请求的日志,并在最后显示流程的总时间。

步骤 4:添加额外的逻辑节点,使图更加丰富

结论:

FlowTestAI 将您的端到端测试可视化为 API 优先工作流程,这些工作流程生成速度快、管理无缝且运行速度比传统测试快得多,所有这些都提高了开发速度。

我们才刚刚开始,我们的目标是培养一种文化,就像开发人员可以使用其他 IDE 来编写代码一样,也应该提供类似的集成体验,以便以零成本轻松生成、管理和运行 API 优先工作流程。

有关如何在日常活动中利用此工具、将其集成到您当前的堆栈中,或进行任何其他咨询的更多信息,请随时通过我们的社交媒体平台联系我们,或直接发送电子邮件至 jsajal1993@gmail.com