95 // POST stream endpoint
96 if (request.method === "POST" && new URL(request.url).pathname === "/stream") {
97 const { OpenAI } = await import("https://esm.town/v/std/openai");
98 const openai = new OpenAI();
99 const { question } = await request.json();
100
103 const season = getSeason(currentDate);
104
105 const stream = await openai.chat.completions.create({
106 messages: [
107 {
1// OpenAI provided by val town
2import { OpenAI } from "https://esm.town/v/std/openai";
3// Email provided by val town
4import { email } from "https://esm.town/v/std/email";
28
29 // Now ask the AI to invent something
30 const openai = new OpenAI();
31 const completion = await openai.chat.completions.create({
32 messages: [
33 {
1import { OpenAI } from "https://esm.town/v/std/openai";
2
3export default async function(req: Request): Promise<Response> {
11 });
12 }
13 const openai = new OpenAI();
14
15 try {
28 }
29
30 const stream = await openai.chat.completions.create(body);
31
32 if (!body.stream) {
1import { email } from "https://esm.town/v/std/email";
2import { OpenAI } from "https://esm.town/v/std/openai";
3
4// Configuration object for customizing the sassy message generation
10 },
11
12 // Prompt configuration for OpenAI
13 prompts: {
14 // Array of different prompt styles to rotate through
32
33export default async function() {
34 const openai = new OpenAI();
35
36 // Randomly select a prompt style
39 ];
40
41 const completion = await openai.chat.completions.create({
42 messages: [
43 {
287
288 try {
289 const { OpenAI } = await import("https://esm.town/v/std/openai");
290 const openai = new OpenAI();
291
292 const completion = await openai.chat.completions.create({
293 messages: [
294 {
307 });
308 } catch (error) {
309 console.error("OpenAI error:", error);
310 return c.json({ response: "Neural networks malfunctioning. Try again, human." });
311 }
1# OpenAI Structured Output Demo
2
3Ensure responses follow JSON Schema for structured outputs
5The following demo uses zod to describe and parse the response to JSON.
6
7Learn more in the [OpenAI Structured outputs
8 docs](https://platform.openai.com/docs/guides/structured-outputs/introduction).
9
1import { zodResponseFormat } from "https://esm.sh/openai/helpers/zod";
2import { z } from "https://esm.sh/zod";
3import { OpenAI } from "https://esm.town/v/std/openai";
4
5const openai = new OpenAI();
6
7const CalendarEvent = z.object({
11});
12
13const completion = await openai.beta.chat.completions.parse({
14 model: "gpt-4o-mini",
15 messages: [
1import { OpenAI } from "https://esm.town/v/std/openai";
2
3const openai = new OpenAI();
4const completion = await openai.chat.completions.create({
5 "messages": [
6 { "role": "user", "content": "Say hello in a creative way" },
241export default async function server(request: Request): Promise<Response> {
242 if (request.method === "POST" && new URL(request.url).pathname === "/recipes") {
243 const { OpenAI } = await import("https://esm.town/v/std/openai");
244 const openai = new OpenAI();
245
246 const { numPeople, numRecipes, difficulty, cuisine, ingredients, unit, dietaryRestrictions } = await request.json();
255
256 try {
257 const completion = await openai.chat.completions.create({
258 messages: [{ role: "user", content: prompt }],
259 model: "gpt-4o-mini",
743 }
744
745 const { OpenAI } = await import("https://esm.town/v/std/openai");
746 const regenerateKey = request.headers.get("Regenerate-Key") || "0";
747 const openai = new OpenAI();
748
749 const { sport, skillLevel, ageGroup, groupSize, selectedSkills, sessionDuration } = await request.json();
790 Ensure that the conclusion ties together all the main concepts covered in the training, reinforces the learning objectives, and provides clear takeaways for both participants and coaches. The questions in the conclusion should prompt critical thinking about the skills practiced and their application in the sport.`;
791
792 const completion = await openai.chat.completions.create({
793 messages: [{ role: "user", content: prompt + `\n\nRegenerate key: ${regenerateKey}` }],
794 model: "gpt-4o-mini",