当独立的API相互连接时,它们变得极为强大。无论是与外部客户的互动、内部使用还是常规的端到端测试,几乎所有的在线交互实际上都是由相互连接的API网络构成的“流程”。这种相互连接是数字产品体验的核心。
与API的强大能力相提并论,大型语言模型(LLMs)展现出了令人瞩目的推理能力,它们在解决问题时的迭代思维过程与人类非常相似。LLMs在进行重复迭代时展现出的能力,使其成为计算推理中的强大工具,特别是在形成“流程”的重复迭代中。
认识FlowTestAI
FlowTestAI的创新核心是将这两个强大领域结合起来。FlowTestAI是世界上首个由GenAI驱动的开源集成开发环境(IDE),专为设计、可视化和管理API优先的工作流而设计。它以快速、轻量级和本地操作为特点,在促进API优先工作流的无缝整合的同时,也保护了用户隐私。
解决测试难题
测试是产品开发中一个至关重要但分散的环节。缺乏全面和强大的端到端测试会严重影响产品的质量,并减缓开发速度。
端到端测试本质上是基于API的工作流。理想的框架应该允许快速、直接地生成这些工作流,并能够高效地管理它们。然而,目前的做法常常因为过多的样板代码、繁琐的管理层次和与实际开发实践的脱节而受到影响。这导致了缓慢且复杂的端到端测试,严重影响了开发速度。
有效的测试还需要安全地访问和管理敏感信息,比如访问ID和密钥。遗憾的是,目前还没有工具能够确保这一领域的安全性。使用像Postman这样的传统平台输入凭据可能会使它们面临风险。此外,缺乏一个专门的环境让开发者能够安全地测试开发中或私有API,将这些API引入常用在线工具可能会无意中导致信息泄露。这一问题凸显了对一种提供安全、本地沙箱测试解决方案的需求。
FlowTestAI的解决方案
FlowTestAI利用LLMs的推理能力、git(或任何版本控制系统)的组织优势以及图数据表示的结构优势,旨在彻底改变API优先工作流的生成和管理方式。
未来展望
将端到端测试视为API优先的工作流只是开始。这个工具被设计得非常通用,可以创建任何API优先的工作流,并可以设置为定期自动运行。例如,可以创建一个工作流,它检查JIRA中的前10个客户支持票据,将其发送给ChatGPT进行总结,并每天自动发布到工程团队的slack频道。
由于这个项目是免费和开源的,任何人都可以创建并提交带有自定义逻辑的自定义节点,并与社区分享。你也可以创建自定义流程并提交给其他人使用。例如,一个自定义流程可以使用LLM的输出作为输入,将其发送到AWS或Azure上托管的情感分析工具的API,检查输出的正面得分是否大于0.7,然后只有当得分高于0.7时,才将该输入转发到图中的其余部分或最终用户。
每个工作流都可以视为一个可以被使用并嵌套在其他工作流中的实用工具。
FlowTestAI如何运作
FlowTestAI主要由以下两部分组成:
体验
对于用户体验,我们提供了一个集成开发体验(IDE),类似于VS Code、IntelliJ等,作为一个electron应用程序。所有操作都在本地进行,就像传统的IDE一样,实现双向通信。你在IDE中执行的任何CRUD操作都会实时更新到本地磁盘,反之亦然。
它是这样工作的
AI管道包含三个主要阶段:
预处理
LangChain在这里对我们非常有帮助。首先,我们来理解问题。OpenAPI规范可能非常庞大,包含数千个API(也称为函数),而现有的LLMs只能处理有限数量的函数作为参考输入,例如OpenAI GPT 3.5 turbo只能处理128个函数。
我们首先从规范中提取每个API的{API_NAME, API_DESCRIPTION},构建一个大文档。然后,使用LangChain的文本分割器,根据LLM的容量将文档分割成多个小块。例如,对于GPT 3.5 turbo,我们将文档分成32个函数的小块。接着,我们使用LangChain对OPENAI嵌入API的封装,将每个小块嵌入并存储在LangChain提供的内存中向量数据库中。
通过这种方式,我们实际上是在为结构化函数重构RAG的解决方案,这通常用于文本输入。
处理
接下来,我们取用户提示,对LangChain支持的内存向量数据库进行相似性搜索,提取满足LLM输入限制的m个文档。例如,如果我们以前面的32个函数为例,我们会提取4个文档,以满足32 x 4 = 128的限制。
然后,我们将这些函数和用户指令作为输入提供给LLM。我们迭代地执行这个过程,直到确定没有更多的操作要执行。每次迭代都会输出一个函数调用。
后处理
在前一步输出的函数调用集上执行后处理。我们设置了适当的护栏,以确保LLM在任何步骤中产生幻觉时,我们会过滤掉这部分输出,避免误导用户。然后,我们将每个有效的函数调用解析并转换为我们的内部图节点,为API调用所需的查询参数、请求体等分配适当的值。最后,我们将它们链接起来,形成一个可运行的工作流。
一些关键点:
演示
步骤1:选择OPENAI模型并添加你的指令
步骤2:点击生成,一个可运行的图将输出,其中API请求被链接在一起,每个请求都预填了正确的请求参数和请求体。
步骤3:点击运行,查看每个请求的日志以及流程结束时的总时间。
步骤4:添加额外的逻辑节点,使图更加丰富。
结论
FlowTestAI将让端到端测试进化为可视化API工作流,这些工作流快速生成、无缝管理,并且比传统测试快得多,从而实现高开发速度。
项目链接: