使用生成式人工智能构建无服务器 Web 应用程序
教程
模块四:部署后端 API
在本模块中,您将使用 AWS Amplify 配置自定义数据查询,以将 Amazon Bedrock 作为数据来源。
概述
在本模块中,您将配置一个自定义查询,该查询将引用您在先前模型中定义的数据来源和解析器,从而根据成分清单生成配方。此查询将使用自定义类型构造来自 Amazon Bedrock 的响应。
您将学到的内容
- 定义一个接受字符串数组的 GraphQL Query
- 定义用于构造查询响应的自定义类型
实施
完成时间
5 分钟
获取帮助
-
设置 Amplify Data
1.在本地计算机上,导航到 ai-recipe-generator/amplify/data/resource.ts 文件,然后使用以下代码对其进行更新。然后,保存文件。
- 以下代码定义了 askBedrock 查询,该查询采用一个名为 ingredents 的字符串数组并返回 BedrockResponse。 .handler(a.handler.custom({ entry: "./bedrock.js", dataSource: "bedrockDS" })) 行使用 bedrockDS 作为其数据来源,为这个在 bedrock.js 中定义的查询设置自定义处理程序。
import { type ClientSchema, a, defineData } from "@aws-amplify/backend"; const schema = a.schema({ BedrockResponse: a.customType({ body: a.string(), error: a.string(), }), askBedrock: a .query() .arguments({ ingredients: a.string().array() }) .returns(a.ref("BedrockResponse")) .authorization((allow) => [allow.authenticated()]) .handler( a.handler.custom({ entry: "./bedrock.js", dataSource: "bedrockDS" }) ), }); export type Schema = ClientSchema<typeof schema>; export const data = defineData({ schema, authorizationModes: { defaultAuthorizationMode: "apiKey", apiKeyAuthorizationMode: { expiresInDays: 30, }, }, });
2.打开一个新的终端窗口,导航到您的应用程序项目文件夹 (ai-recipe-generator),然后运行以下命令将云资源部署到隔离的开发空间中,以便快速迭代。
npx ampx sandbox
3.完全部署云沙盒后,您的终端将显示一条确认消息,amplify_outputs.json 文件会生成,并添加到您的项目中。
结论
您已经配置了 GraphQL API 来定义自定义查询,以连接到 Amazon Bedrock 并根据成分清单生成配方。