我正在使用NextJS和页面路由器。我有一个表单,用户可以在其中启动一个过程,该过程需要大约30秒。处理是由我无法控制的外部API完成的。外部API在处理完成时调用webhook。我想将用户从表单页面重定向到显示结果的结果页面。
我有一个数据库,其中存储了用户id沿着相应的进程id,可以在webhook处理程序中检索。
import { NextApiRequest, NextApiResponse } from "next";
export default async function handler(
req: NextApiRequest,
res: NextApiResponse
) {
const query = req.query;
const user_id = query.user_id;
const generation_id = query.generation_id;
const original_image = query.original_image;
const webhookData = req.body;
console.log("Received webhook:", webhookData);
res.status(200).end();
}
字符串
工作流的工作方式为:
- 用户1单击表单页面上的按钮
- 进程在外部API的后台启动
- 过程完成
- 我的webhook处理程序与用户ID一起被沿着调用
如何将User 1重定向到结果页面?
我使用复制API从SDXL模型生成图像。
我尝试在webhook处理程序中发送重定向响应
import { NextApiRequest, NextApiResponse } from "next";
export default async function handler(
req: NextApiRequest,
res: NextApiResponse
) {
const query = req.query;
const user_id = query.user_id;
const generation_id = query.generation_id;
const original_image = query.original_image;
const webhookData = req.body;
console.log("Received webhook:", webhookData);
res.redirect("/results");
}
型
但这个响应显然是传递给外部API的,而不是传递给单击按钮的用户的。
1条答案
按热度按时间gk7wooem1#
如果我理解正确的话,你正在使用
predictions.create
来创建预测,然后添加一个webhook url。Webhook是用来作为一个单独的操作从当前用户会话,它不链接到您的用户当前会话。你可以用Webhook例如,是发送一封电子邮件给用户的结果。
但是如果我是正确的,那么API将立即响应预测ID,您可以使用它来调用复制API以获取状态。
从文档:在成功的情况下,输出将是一个包含模型输出的对象。任何文件都将表示为HTTPS URL。
我将添加到复制文档的链接:https://replicate.com/docs/reference/http#predictions.get