在 n8n 中构建一个由 GraphQL 驱动的 TODO 列表 AI 代理(完整教程)
社区文章 发布于 2024 年 10 月 31 日

在本教程中,我们将构建一个由 GraphQL 驱动的待办事项列表,你可以通过聊天与之交互,创建和分析你的待办事项。
我们将使用 n8n(一个类似于 make.com 的开源自托管替代方案)和 OpenAI (gpt-4-0-mini)。
但在我们深入之前
为什么选择 GraphQL
如果你之前使用过 n8n 或 make.com,并在你的工作流程中使用了 API,你通常需要为每个端点向工作流程添加一个 API 组件——例如,一个用于获取待办事项,一个用于删除,等等。
但是,如果我们能一次性添加整个 API 并将其暴露给一个 API 代理,该代理将根据用户的请求自动找出正确的参数,那岂不是太棒了?
当然,在真实场景中,你需要添加适当的防护措施,以防止它做任何事情(至少它应该限制在用户数据范围内,并允许回滚等)。
但让我们以一个待办事项列表为例,看看一个配备了 GraphQL 驱动的 API 的代理能做些什么。
#1 构建 NextJS 待办事项列表应用程序
我使用 GraphQL 构建了一个简单的 Next.js 待办事项列表应用程序。以下是可用于初始化应用程序的代码:
https://gist.github.com/deepmtch/b86990721e449e48ea3c0bd9bc4b727d
在您喜欢的环境中运行此脚本(我使用 Docker,但您也可以在主机环境中运行)。
待办事项应用程序的架构非常简单
type todo {
id: Int!
title: String!
completed: Boolean!
createdAt: String!
updatedAt: String!
}
type query {
todos: [Todo!]!
todo(id: Int!): Todo
}
type mutation {
createTodo(title: String!): Todo!
updateTodo(id: Int!, completed: Boolean!): Todo!
deleteTodo(id: Int!): Todo!
}