This Next.js app (with app directory) leverages Defer using GitHub data as a prompt for OpenAI completion API.
yarn
Make sure to get a GitHub personal access token and an OpenAI API Key.
Then, configure the application on Defer and Vercel.
The Next.js API Route /api/gitHubProfile/[usernameOrExecID]
is used as follow:
- Trigger a new generation:
POST /api/gitHubProfile/charlypoly
- Get the status and result of a profile text generation:
GET /api/gitHubProfile/2MeNNf2OTVZP0MUrs1ghwXaUtm4
The generateGitHubProfile()
Defer background function handles fetching data from GitHub and forwarding the proper prompt to OpenAI.
Triggering an execution of generateGitHubProfile()
is achieved by simply calling it from the Next.js API Route:
import { NextRequest } from "next/server";
import generateGitHubProfile from "@/defer/generateGitHubProfile";
export async function POST(
_request: NextRequest,
{ params }: { params: { usernameOrExecId: string } }
) {
const ret = await generateGitHubProfile(params.usernameOrExecId);
return new Response(JSON.stringify(ret), {
status: 200,
headers: { "Content-type": "application/json" },
});
}