Back to jobs

Generate a joke using OpenAI

Trigger: eventTrigger

Generates a random joke using OpenAI GPT 3.5.

Integrations:

/src/openAITellMeAJoke

AI

1
import { TriggerClient, eventTrigger } from "@trigger.dev/sdk";
2
import { OpenAI } from "@trigger.dev/openai";
3
import { z } from "zod";
4
5
const client = new TriggerClient({ id: "jobs-showcase" });
6
7
const openai = new OpenAI({
8
id: "openai",
9
apiKey: process.env.OPENAI_API_KEY!,
10
});
11
12
// This Job will use OpenAI GPT-3.5 Turbo to tell you a joke
13
client.defineJob({
14
id: "openai-tell-me-a-joke",
15
name: "OpenAI: tell me a joke",
16
version: "1.0.0",
17
trigger: eventTrigger({
18
name: "openai.tasks",
19
schema: z.object({
20
jokePrompt: z.string(),
21
}),
22
}),
23
integrations: {
24
openai,
25
},
26
run: async (payload, io, ctx) => {
27
await io.openai.retrieveModel("get-model", {
28
model: "gpt-3.5-turbo",
29
});
30
31
const models = await io.openai.listModels("list-models");
32
33
const jokeResult = await io.openai.backgroundCreateChatCompletion(
34
"background-chat-completion",
35
{
36
model: "gpt-3.5-turbo",
37
messages: [
38
{
39
role: "user",
40
content: payload.jokePrompt,
41
},
42
],
43
}
44
);
45
46
return {
47
joke: jokeResult.choices[0]?.message?.content,
48
};
49
},
50
});
51
52
// These lines can be removed if you don't want to use express
53
import { createExpressServer } from "@trigger.dev/express";
54
createExpressServer(client);